Hur tilldela värden till PIC-filregister i C?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Icecap
Inlägg: 26781
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Icecap »

Hur enkelt som helst, bara man gör det rätt!

Kod: Markera allt

  /* Introduktion */
 
#define ON  1
#define OFF 0

#define femtio PORTA.0
#define sextio PORTA.1
#define frekvens femtio,sextio
#define Hcount100Hz 0b00100111;   // 0b0010011100010000=10000
#define Lcount100Hz 0b00010000;
#define Hcount120Hz 0b00100000; // 0b0010000010001101=8333
#define Lcount120Hz 0b10001101;

void main(void)
  {
  ANSEL = 0;               // Clear ANSEL file registry
  ANSEL.ANS2 = 1;            // Configure AN2 as analog I/O
  TRISA = 0b00000111;         // Configure AN0, AN1 and AN2 as inputs, the rest as outputs.
                           // Bit TRISA<3> is a read only input pin, for MCLR (active low) input.
  TRISB = 0x00;             // Configure I/O, all available PORTB pins as outputs
  TRISC = 0;                // Configure I/O, all available PORTC pins as outputs
 
  CCPR1H = 0;             // Clear both Timer 1 holding registers
  CCPR1L = 0;
  TMR1L = 0;               // Clear both Timer 1 holding registers
  TMR1H = 0;                   

  PIE1.CCP1IE = 1;          // Enable CCP1 interrupt flag
  PIR1.CCP1IF = 0;         // Clear CCP1 interrupt flag
  PIE2.OSFIE = 1;            // Enable oscillator interrupt flag
  OSCCON = 0b01100001;      // Configure internal oscillator (HFINTOSC) to 4 MHz and to start oscillating.
  T2CON =  0b00100001;      // Set TMR2 prescaler 4, postscaler 5
  ADCON0.ADFM = 0;         // (ADFM=0) ADC "delay" look at ADRESH 8 most significant bits  */
  CCP1CON=0b00001011;         // Configure CCP1CON to trigger a special event on TMR1=CCPR match
  while(true)
    {
    if (Port A.0) while (I1);
         /* Operation XOR */
    else      while (I2);
         /* Operation XOR */
       /* A/D conversion */
       /* Delay */

    } // while true (always)
  } // main
Senast redigerad av Icecap 30 januari 2009, 13:49:44, redigerad totalt 1 gång.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av speakman »

Det borde ju stå som första exempel i första kapitlet i första boken om kompilatorn. Men prova som jag sa och se om det kompilerar. Utifrån det är det lättare att gå vidare.
sodjan
EF Sponsor
Inlägg: 43287
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av sodjan »

Skriv nya inlägg, det där var aldeles för långt för att man ska se
att det har ändrats...

> men hur svårt skall det vara att nollställa ett filregister?

Skitenkelt, sannolikt. Det är inte *jag* som har dokumentationen.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47663
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av TomasL »

Jens Gunnarsson skrev:Visst jag håller på att lära mig bäggedera, men hur svårt skall det vara att nollställa ett filregister?
skitenkelt
#asmline clrf REG ( i WIZ-C),
eller
REG=0; i samma kompilator.

Hur du skriver exakt, beror på hur det är gjiort i kompilatorn, hur register mm är namngivna och hur det är tänkt att man skall använda dem.
Det STÅR i dina manualer, gör det inte det, så byt kompilator.
Användarvisningsbild
Jens Gunnarsson
Inlägg: 17
Blev medlem: 30 januari 2009, 09:40:07
Ort: Solna

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Jens Gunnarsson »

Här är folk snabbare än jag hade väntat mig, och det är bra. Jag förstår inte varför tonen så snabbt blev ganska hätsk. Låt mig istället fråga så här:

Hur skall jag (i C) tilldela ett åttabitarstal till ett filregister C?
sodjan
EF Sponsor
Inlägg: 43287
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av sodjan »

> Hur skall jag (i C) tilldela ett åttabitarstal till ett filregister C?

Och du är 100% säker på att det inte framgår av manualen eller kodexempel
som var med kompilatorn ?

EDIT:
Förresten, vad menar du med "ett åttabitarstal" ? En konstant ?
Du har ju själv gjort det i de koder som du har postat tidigare !?
T.ex : "ANSEL = 0;".

Du kanske kan förtydliga lite...
Senast redigerad av sodjan 30 januari 2009, 14:02:57, redigerad totalt 1 gång.
Användarvisningsbild
Jens Gunnarsson
Inlägg: 17
Blev medlem: 30 januari 2009, 09:40:07
Ort: Solna

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Jens Gunnarsson »

Jovisst, men "ANSEL = 0;" ger ju ett fel.
Jag skall leta i kompilatorns dokumentation istället.

Tack ändå.
Senast redigerad av Jens Gunnarsson 30 januari 2009, 14:15:08, redigerad totalt 2 gånger.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47663
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av TomasL »

Jens Gunnarsson skrev:Här är folk snabbare än jag hade väntat mig, och det är bra. Jag förstår inte varför tonen så snabbt blev ganska hätsk. Låt mig istället fråga så här:

Hur skall jag (i C) tilldela ett åttabitarstal till ett filregister C?
suck, tja
RegName=tal; återigen beroende på din kompilator, och hur den Fungerar.
Användarvisningsbild
Icecap
Inlägg: 26781
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Icecap »

"Jovisst, men "ANSEL = 0;" ger ju ett fel."

Jovars men VILKET fel? Klippa och klistra tack!

Att "stämningen blir hätsk" beror på att du helt enkelt skiter i att svara på de frågor som ställs, detta tolkas som att du skiter i folk och när man ger ett svar och frågaställaren tydligt visar att den man försöker att åstadkomma av kommunikation totalt dissas kan man lätt bli sned eller hur?

Svara alltså på frågorna och du ska se att stämningen är mycket vänlig här...
sodjan
EF Sponsor
Inlägg: 43287
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av sodjan »

> Jag skall leta där istället. Tack ändå.

Exakt vad menar du med "istället" ?
Det förväntas nog att du letar där *först*... :-)
Användarvisningsbild
Jens Gunnarsson
Inlägg: 17
Blev medlem: 30 januari 2009, 09:40:07
Ort: Solna

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Jens Gunnarsson »

Icecap skrev:"Jovisst, men "ANSEL = 0;" ger ju ett fel."

Jovars men VILKET fel? Klippa och klistra tack!

...
Det gorde jag i 13:42-inlägget på sidan 1.

Jag inser nu att det hinner trilla in en en del svar medan man skriver. Det är inte alla forum som är så här omedelbara.

Jag skall i fortsättningen förhandsgranska mina inlägg, och förhoppningsvis bespara oss alla en del hysteriska genmälen. Vissa har valt att vara anonyma. Då kan man ju kläcka ur sig vad som helst.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 47663
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av TomasL »

Vilka är anonyma?
sodjan
EF Sponsor
Inlägg: 43287
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av sodjan »

> Jag skall i fortsättningen förhandsgranska mina inlägg,

Jag använder alltid knappen för just det, om det inte är
väldigt simpla inlägg. Av någon anledning är det mycket
enklare att se sina missar när texten "skrivs om" en gång.

> Vissa har valt att vara anonyma.

Jag har kollat tillbaka vilka som har deltagit i just denna tråden,
och den enda som är anonym för mig är du. Det är möjligt att
du har använt ditt riktiga namn, men det vet jag ju inte säkert.
Övriga har jag nog haft kontakt med direkt både via forumet och utanför.
Själv är jag knappast anonym, du kan hitta alla uppgifter här :
http://www.jescab.se/Kontakt.htm

Mitt intryck är att detta forum (till skillnad från många andra forum)
är väldigt "personligt" och de flesta känner de andra på ett eller annat
sätt, även utanför forumet.
Användarvisningsbild
Icecap
Inlägg: 26781
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Icecap »

"ANSEL = 0; // Clear ANSEL file registry
ANSEL.ANS2=1; // Configure AN2 as analog I/O
^------
Error[1] C:\Program Files\PK2proj\Work\synth5060Hz.c 19 : Syntax error
(The expression must be corrected. The marker ^------ shows
the approximate position where CC5X gives up. The documentation
should be checked if the cause is not obvious)"

Läs gärna vad det EGENTLIGEN står... det är INTE "ANSEL = 0;" som ger felet eller hur?
"ANSEL.ANS2=1;" ger däremot ett fel och det beror sannolikt på att CCX5 inte har den definition, svaret är alltså fortfarande "läs dokumentationen" och leta efter definitionen an ANSEL. Ibland kan det vara "ANSEL_ANS2" som fungerar men det beror på kompilern och dess definitioner.

Oftast finns det en fil med som är .H-filen till den valda processor, den innehåller alla registerdefinitioner osv. och den kan man kolla i (ändra dock inget!!!!) efter ANSEL och hur det är definierat.

EDIT: Att det visas raden innan beror på att det kan göra det lättare att hitta i källkoden, man får alltså mer att jämföra med och det är inte sällan att felet kan bero på raden innan, kanske man har glömt ';' eller liknande.

Och anonyma är det väl knappast någon som är, alla har ett nick, javisst, men i detta forum har vi balle nog att stå för vem vi är.
Användarvisningsbild
Jens Gunnarsson
Inlägg: 17
Blev medlem: 30 januari 2009, 09:40:07
Ort: Solna

Re: Hur tilldela värden till PIC-filregister i C?

Inlägg av Jens Gunnarsson »

Bra!
Stort tack
Skriv svar