pic24 und MPLAB mit C30

Gast #603168
Lesenswert?

Hallo

Ich versuche mein Glück gerade mit dem PIC24 (p24FJ32GA002.h) und C30.
Ein einfaches Programm...RA1 und RA2 auf high schalten.
In der Simulation kann man die einzelnen Bits beobachten.
TRISA wird korrekt geändert. Aber mit PORTAbits.RA0=1; ändert sich nur 
das Bit in LATA. Wieso tut sich bei PORTA nichts?

int main(void)
{
  _ADON=0;
  _C1EN=0;
  _C2EN=0;
  _C2OUTEN=0;
  _C1OUTEN=0;
  TRISB=2047;
  TRISA=65532;
  a=0;
  b=4;
  c=a+b;
  PORTAbits.RA0=1;
  PORTA=0b0000000000000011;
  c=b-a;
  PORTAbits.RA1=1;
  while(1==1);
  return 0;

}

Config: Adress 57FC...FFFF
        Adress 57EE...7FFF

In der Hardware funktioniert es auch nicht...doch dort suche ich einen 
eventuellen Fehler erst, wenns in der Software funkt =). Deshalb 
versuche ich es erst mit der Simulation.
Ich werde demnächst einen Versuch mit dem Assembler starten. Vielleicht 
klappts mit dem besser. Aber jetzt mal Gute Nacht =)

mfg
Gast #603217
Lesenswert?

Hi

Probier mal in die LAT-Register selbst zu schreiben. Im grunde sollte 
man immer in die LAT-Register schreiben, dann umgeht man den 
read-modify-write Problematik.

Du kannst statt:
1
while(1==1);
einfach
1
while(1);
schreiben.

mfg Schoasch

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren