Hallo Leute, ich hab ein kleines Problem beim umstieg vom m16c62a auf den p. Ich hab ein Programm das auf dem uart0 ständig Daten erhält und diese dann verarbeitet. Beim m16c62a funktioniert das auch über Tage einwandfrei. Beim Umstieg auf die P Version hab ich aber das Problem dass der Uart nach ca. 10 Minuten den Empfang einstellt. Er nimmt einfach keine Daten mehr entgegen, bzw löst den Interrupt nicht mehr aus. Ein reinitialisieren der Schnittstelle bringt auch keinen Erfolg. Lediglich ein Reset bringt ihn dazu für weitere 10-15 Minuten Daten entgegenzunehmen (Das Programm selbst läuft einwandfrei weiter, konnte auch nicht festellen das es mir irgenwas zerschießt, da der zweite Uart auch noch was empfängt, und printf auf dem dritten auch noch geht). Die sfr62p.h hatte ich anfänglich verwendet, enbenso die anderen startupfiles für die P-Version. Nach dem das Problem aufgetreten ist bin ich Stück für Stück zurück auf die Konfiguration für die A-Version, hat aber nichts geändert. Auf A läuft es auf P hört er irgenwann auf. Gibt es irgenwelche gravierenden Unterschiede zwischen den Prozessoren die ich da übersehen habe? Ich komme da grad echt nicht weiter, wenn es gar nicht funktionieren würde, ok, aber so? Am µC liegt es auch nicht, hab mehrere ausprobiert und bei allen das Gleiche. Vieleicht kann mir ja einer von euch weiterhelfen.. :) Gruß Peter noch meine init-routine void init_uart0(void){ asm("FCLR I") u0brg = CPU_CLK_FREQ/16/9600 -1; u0mr = 0x5; /* no parity, 8 data-bits, 1 stop-bit, internal clock */ u0c0 = 0x10; /* no cts/rts -> 0x10 b00010000 , prescaler = F1 */ u0c1 = 0x5; /* 00000101 enable receiver and transmitter */ u0irs = 1; /* TX INT on complete */ s0tic |= 0x1; /* Set UART0 transmit interrupt priority */ s0ric |= 0x5; /* Set UART0 receive interrupt priority */ pd6_3 = 1; /* TxD0 Pin->Input */ pd6_2 = 0; /* RxD0 Pin->Output */ asm("FSET I") }
Schau mal alle Register durch, ob du nicht irgendein Bit auf 1 gesetzt hast, das im Datenblatt mit "must not be set" beschrieben ist. Ich hatte da einige Probleme, als ich von der P auf eine billigere Version des uC umgestiegen bin.
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.