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
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
Hallo. Mit LATAbits.LATA1=1 habe ich es auch schon versucht. Dabei ändert er zwar das Bit im LAT Register aber im PORTA tut sich nichts. mfg
Hallo evtl solltest du den PORTA noch für Digital-Anwendung umschalten AD1PCFG = 1; Gerhard
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.