Grüezi mitenand, Ich habe ein kleines Problem mit meinem Mikocontroller, ich besitze ein C8051F020 DEVELOPMENT KIT, nun habe ich ein kleines Programm geschrieben in welchem ich einzelne bits von Port2 setze ( damit werden später pumpen angesteuert ) Nun wenn ich das ganze arbeite lasse habe ich an allen! Ports ein undefinierbares signal :) wollte nun fragen ob das an meinem Code liegt oder ob der uP zerstört ist:( Hier der Code : #include "C8051F020.h" sbit Sensor11 = P2^0; // Definition Port sbit Sensor12 = P2^1; // Definition Port sbit Sensor21 = P2^2; // Definition Port sbit Sensor22 = P2^3; // Definition Port sbit Sensor31 = P2^4; // Definition Port sbit Sensor32 = P2^5; // Definition Port void Port_IO_Init() { P1MDIN = 0xC0; P2MDOUT = 0xFF; XBR2 = 0x40; } // Hauptprogramm void main(void) { do { Port_IO_Init(); Sensor11 = 1; Sensor12 = 1: } while(1); } Wäre recht froh für eine kleine Hilfestellung oder Anregung Grüsse Kay
Hallo Kay, verwendest du den Configuration Wizard II ? (ist dafur echt klasse). Ist die Crossbar aktiv ? Sind die Ausgänge auf Push/Pull ? Dann müsste es eigentlich gehen. Schreib mal direkt auf den Port, P2=0xXX Ist die Watchdog deaktiviert ? Halte den Chip mal auf Reset dann müssen sie alle im Tristate Mode oder Pullup Mode sein. Ich arbeite sehr viel mit Silab und Probleme habe ich damit wenig. Gruß Sascha
Ja ich verwende den Configuration Wizard II, Crossbar ist auch aktiv, Die Ausgänge sind als PushPull definiert. Du meinst P2 = 0xFF, wenn ja habe ich ausprobiert, geht leider trotzdem nix. Watchdog habe ich jetzt hinzugefügt : WDTCN = 0xDE Trotzdem geht nix auch das der Reset button bringt keine änderung. Was ich aber komisch finde ist dass die beispielprogramme funktionnieren.
Hi Kay, > Watchdog habe ich jetzt hinzugefügt : WDTCN = 0xDE Das ist aber nur die Hälfte, da fehlt noch 0xAD dahinter. > Die Ausgänge sind als PushPull definiert. Was hängt aktuell dran? Nicht dass auf dem Evalkit was angeschlossen ist, was den Ports nicht guttut, vielleicht ist ein Jumper falsch gesetzt. > Trotzdem geht nix auch das der Reset button bringt keine änderung. Der sollte auch nicht als Mittel um etwas funktionsfähig zu bekommen in Betracht gezogen werden :) > Was ich aber komisch finde ist dass die beispielprogramme > funktionnieren. Das lässt die Vermutung aufkommen dass die MCU nicht zerstört ist. Ralf
Hallo Ralf, Stimmt habe ich übersehen, hat aber leider nichts geändert. Da ich noch am ausprobieren bin, hängt noch nichts an den Ports, nur ein KO um die Pegel die eigentlich an den Ports sein sollten zu überprüfen. An den Jumpers habe ich nichts geändert sind alle so wie das Kit ausgeliefert wurden. hast du evtl. eine Ahnung welcher Jumper einen Einfluss auf die I/O's hat ? Gruss, Kay
> Stimmt habe ich übersehen, hat aber leider nichts geändert. Klar, denn die Ports sind nach einem Reset immer auf logisch 1. Da du eine 1 reinschreibst wird sich auch nichts ändern. Wenn du die Ports in der MainLoop invertierst müsstest du ein Rechtecksignal sehen. > Da ich noch am ausprobieren bin, hängt noch nichts an den Ports, nur ein > KO um die Pegel die eigentlich an den Ports sein sollten zu überprüfen. Was ist ein KO? Von wo nach wo misst du? Und was genau kommt bei der Messung raus? > An den Jumpers habe ich nichts geändert sind alle so wie das Kit > ausgeliefert wurden. hast du evtl. eine Ahnung welcher Jumper einen > Einfluss auf die I/O's hat ? Nein, nicht auswendig -> Im UserGuide zum Board ist ein Schaltplan. Ralf
Huhu
1 | #include "C8051F020.h" |
2 | |
3 | sbit Sensor11 = P2^0; // Definition Port |
4 | sbit Sensor12 = P2^1; // Definition Port |
5 | sbit Sensor21 = P2^2; // Definition Port |
6 | sbit Sensor22 = P2^3; // Definition Port |
7 | sbit Sensor31 = P2^4; // Definition Port |
8 | sbit Sensor32 = P2^5; // Definition Port |
9 | |
10 | |
11 | |
12 | void Port_IO_Init() |
13 | {
|
14 | |
15 | WDTCN = 0xDE; //Watchdog disable (ermöglicht Debugging) |
16 | WDTCN = 0xAD; |
17 | P2MDOUT = 0xFF; //Port2 als Ausgang definiert |
18 | XBR0 = 0x10; |
19 | XBR2 = 0x40; //Crossbar enable |
20 | }
|
21 | |
22 | |
23 | |
24 | void main (void) |
25 | {
|
26 | |
27 | |
28 | Port_IO_Init(); |
29 | |
30 | //Programm hier
|
31 | |
32 | |
33 | }
|
Wenn das nicht funktioniert, ist definitiv etwas nicht in Ordnung. Habe genau das gleiche Kit :-)
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.