sind die I/O nun i.O. oder defekt oder was spinnt?

Postby mr. teflon » Sat Jan 29, 2011 12:00 am

Hallo,

ich habe Probleme mit der LCD Anzeige und bin jetzt mal ganz an den Anfang um die Ports zu testen. Mit folgenden simplen Zeilen.

Am Anfang beim setzen der Register funktionieren alle Pins mit dem kurzen 250ms Ein/Aus blinken. Danach wo alle in der Endlosschleife mit 500ms blinken sollen, bleibt P1.4 permanent auf ein und P1.5 bleibt permanent aus. Das sind die beiden Pins von TXD0/RXD0.

Warum funktionieren die nur kurz und dann nicht mehr? Ich kann mir das nicht erklären.

void main(void){   unsigned long int cnt;         // Frequenz   uint              len;    uint              range;           // Torbereich 0 ... 6     uchar             tast;             // Taster    uchar             mode;                       asm("FCLR I");              // Interrupt verhindern    OSC_Ext_20Mhz();        // ext. Oszillator mit 20 MHz   p0 = 0xfd;                    // Port 0 setzen   prc2 = 1;                      // Protect 2 aus     pd0 = 0b11111001;       // LCD an P0.2 bis P0.7 Ausgang,                                       // AN6 an P0.1 AD Kanal 6                                        // Protect 2 geht von selbst wieder an         pd1 = 0b11111111;     // Port 1.0 bis 1.7 Ausgang   p1  = 0b11111111;      // Port 1.0 bis 1.7 einschalten   wait_ms(250);   p1  = 0b00000000;      // Port 1 alles aus      pd3 = 0b00001111;     // Port 3.0 bis 3.3 Ausgang   p3  = 0b00001111;     // Port 3.0 bis 3.3 einschalten   wait_ms(250);   p3  = 0b00000000;     // Port 3 alles aus         pur1=2;                   // Pullup on 4.5      com_init();               // COM mit 9600 baud 8N1 initialisieren      txic = 5;                  // Interrupt Ebene 5 fuer Timer X (Y und Z sind                                 // Ebene 0 d.h. nicht freigegeben)   asm("FSET I");       // Interrupt erlauben    while (1)//  Loop  \\{p1 = 0b11111111;p3 = 0b00001111;       wait_ms(500);p1 = 0b00000000;p3 = 0b00000000;wait_ms(500);} }



Tschau
Mr. Teflon


Edit:
okay, Tagelang gerätselt und nun nach dem Posting Fehler selbst entdeckt. Der Befehl com_init(); störte noch.
mr. teflon
 
Posts: 146
Joined: Fri Jan 03, 2014 1:48 pm

Postby herch » Sat Jan 29, 2011 12:00 am

Hallo Mr. Teflon,

ich habe Dein Stück Software compiliert.
Der HEW verlangt
unsigned int len;
unsigned int range; // Torbereich 0 ... 6
unsigned char tast; // Taster
unsigned char mode;
nicht "uint" oder "uchar".

Die Ports 1 und 3 blinken bei meinem Board.

Allerdings habe ich "com_init();" auskommentiert.
Ich vermute hier liegt der Fehler, denn die Ports gehören zur seriellen Schnittstelle.

P1.4 TXD0
P1.5 RXD0

Gruß
herch
Attachments
Test---Teflon.txt
(2.37 KiB) Downloaded 29 times
herch
 
Posts: 52
Joined: Fri Jan 03, 2014 1:48 pm

Postby mr. teflon » Wed Feb 02, 2011 12:00 am

Hallo,

ja, ist alles klar, funktioniert bei mir, die Funktion com_init(); hat sich mit den Ports der LCD Anzeige gebissen.

Die kurzform uint / uchar ist weiter oben deklariert. Habe ich aus anderen Bsp. von anderen Usern einfach übernommen und nun daran gewöhnt das es mir normal erscheint.

Danke fürs drüber gucken.
mr. teflon
 
Posts: 146
Joined: Fri Jan 03, 2014 1:48 pm


Return to Das R8C-Projekt

Who is online

Users browsing this forum: No registered users and 1 guest