Hallo! Ich wollte mich gerade an UART ransetzen. Ich wollte eine kleine Status-LED blinken lassen mit meiner simpleprog lib. (Funktionen wie bei Arduino) Im Anhang ist der Gesamte Ordner. Ich kann ddie LED nicht mit meiner Lib blinken lassen (Funktionen davon sind kommentiert) aber mit dem Standard-C. Woran liegt das? Gruß, Jochen
1 | > void pinMode(uint8_t ddr, uint8_t pin, uint8_t data); |
2 | [..] |
3 | > pinMode(DDRB, PB1, 1); |
..sicher dass das (und digWrite) jemals funktioniert hat?
> was genau soll falsch sein?
Die Behauptung, dass das funktioniert hat. Oder wir haben
grundverschiedene Verständnisse von 'funktionieren'. Die Funktionen
void pinMode(uint8_t, uint8_t, uint8_t)
und
void digWrite(uint8_t, uint8_t, uint8_t)
sind komplett wirkungsfrei und können so wie sie hier sind nie und
nimmer jemals so funktioniert habe, wie der Funktionen Namen eine
Wirkung erwarten lassen würde.
Ich hoffe das waren jetzt genug Hinweise.
"Falsch" sind sie nicht, sie sind syntaktisch korrekt und lassen sich daher auch ohne Fehlermeldungen übersetzen. Nur sind sie völlig sinnlos, weil sie genau das, was sie tun sollen, nicht tun. So als kleine Ansatzpunkte: Was ist eine Adresse? Was ist ein Wert? Und was ist ein I/O-Port?
Sorry ich bin gerade verwirrt und verstehe gar nichts mehr? Wieso machen sie nicht das was sie sollen? Kannst du bitt eetwas präziser sein, ich weiß grade echt nicht wieso das net klappt.
Soweit ich das überflogen habe, übergibst du einfach Kopien der Register (wie immer bei Funktionen). Du brauchst in den Funktionendeklarationen volatile Zeiger auf die Register. Also: void PinMode (volatile uint8_t *Register...) Und beim Aufruf dann: PinMode(&DDRB...)
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.