SDCC och PIC 16f690 i linux

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
rusv0927
Inlägg: 10
Blev medlem: 3 februari 2011, 10:23:23

SDCC och PIC 16f690 i linux

Inlägg av rusv0927 »

Jag har precis börjat leka med PIC och har kommit så långt att jag tänkte kompillera ett exempelprogram men stöder genast på problem!

Har efter lite sökande kommit fram till att kompilleringen kan genomföras med kommandot

Kod: Markera allt

 sdcc -mpic14 -p16f690 helloled.c 
där helloled ser ut såhär

Kod: Markera allt

 
/* helloled.c  PICkit 2 Lesson 1 Light up a LED */

/*    Low pin count demo board               J1
         ___________  ___________           1 RA5
        |           \/           |          2 RA4
  +5V---|Vdd     16F690       Vss|---GND    3 RA3
     ---|RA5        RA0/AN0/(PGD)|-<-RP1    4 RC5
     ---|RA4            RA1/(PGC)|---       5 RC4
  SW1---|RA3/!MCLR/(Vpp)  RA2/INT|---       6 RC3
     ---|RC5/CCP              RC0|->-DS1    7 RA0
     ---|RC4                  RC1|->-DS2    8 RA1
  DS4-<-|RC3                  RC2|->-DS3    9 RA2
        |RC6                  RB4|         10 RC0
        |RC7               RB5/Rx|         11 RC1
        |RB7/Tx               RB6|         12 RC2
        |________________________|         13 +5V
                                           14 GND
*/

/* B Knudsen Cc5x C-compiler - not ANSI-C */
#include "16F690.h"
#pragma config |= 0x00D4

void main( void)
{
  TRISC.0 = 0;
  PORTC.0 = 1;

  while(1)
    {
      nop();
    }
}
När jag kör kompilleringen händer följande:

Kod: Markera allt

$ sdcc -mpic14 -p16f690 helloled.c 
helloled.c:21:20: error: 16F690.h: No such file or directory
helloled.c:22: warning 115: unknown or unsupported #pragma directive 'config |= 0x00D4'

helloled.c:26: syntax error: token -> '.0' ; column 9
helloled.c:31: warning 112: function 'nop' implicit declaration
Min fråga är då var kan jag få tag på filen 16f690.h eftersom jag inte har den på datorn. Kan jag anta att när jag hittar filen så löses alla problem?

Tack för hjälpen
Användarvisningsbild
Icecap
Inlägg: 26611
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: SDCC och PIC 16f690 i linux

Inlägg av Icecap »

Du antar fel!

Första steg jag ser är att det står "B Knudsen Cc5x C-compiler - not ANSI-C".

Sedan kan du kanske hitta en "p16F690.h" någonstans (finns nog i MPLAB...) men koden är fel till att börja med då den inte använder standard ANSI C. Detta går dock att göra så att det fungerar men inte "out of the box".
GFEF
Inlägg: 2381
Blev medlem: 4 december 2004, 18:44:04

Re: SDCC och PIC 16f690 i linux

Inlägg av GFEF »

Icecap
>Sedan kan du kanske hitta en "p16F690.h" någonstans
>(finns nog i MPLAB...)

En foo.h file är en C-include fil
Från SDCC i detta fall.

Se: http://sdcc.sourceforge.net/doc/sdccman.html/
bearing
Inlägg: 11653
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: SDCC och PIC 16f690 i linux

Inlägg av bearing »

Du bör inte som första projekt använda program skrivna för CC5X-kompilatorn i en allmän C-kompilator, eftersom att CC5X-kompilatorn tillåter så mycket specialsyntax att det skulle ta långa tid att konvertera till standard C-syntax.

CC5X-kompilatorn finns som demoversion på http://www.bknd.com
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: SDCC och PIC 16f690 i linux

Inlägg av snigelen »

En snabbkoll gav följande:

Det finns ingen 16F690.h till den kompilatorn, däremot en pic16f690.h (i /usr/share/sdcc/include/pic under Ubuntu).

Den förstår inte konstruktioner av typen PORTC.0

Den förstår inte #pragma config |= 0x00D4.

Det blir nog lättare att utgå från exempel skrivna för sdcc i stället.
rusv0927
Inlägg: 10
Blev medlem: 3 februari 2011, 10:23:23

Re: SDCC och PIC 16f690 i linux

Inlägg av rusv0927 »

E man dum så är man... Jag tror att jag börjar om och kör på exempel för SDCC och är noga med att kolla upp detta i fortsättningen.
Användarvisningsbild
Icecap
Inlägg: 26611
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: SDCC och PIC 16f690 i linux

Inlägg av Icecap »

Låter som en bra väg att gå!
Skriv svar