Ich habe grad meinen ersten sourcecode geschrieben. Da mein Programmer noch nicht geht (in arbeit) wollte ich einfach kurz fragen, ob das so richtig ist oder ob es da was zu ändern gibt. Das ganze soll, wenn es funktioniert einen Wechselblinker darstellen.
Thomas S. schrieb: > Das ganze soll, wenn es funktioniert einen Wechselblinker darstellen. Aber erst wenn es funktioniert. So macht das gar nichts. Und schon gar keinen Sinn. Thomas S. schrieb: > Ich habe grad meinen ersten sourcecode geschrieben. Dann sei dir das mal verziehn. Lies' dir das durch, dann kannst du das: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Zugriff_auf_IO-Ports mfg.
> Ich habe grad meinen ersten sourcecode geschrieben.
Der Weg ist noch weit.
10 ist nicht 3,
250 nicht 500,
PORTD0 und PORTD1
wird so auch nicht gehen.
Wobei sich in diesem speziellen Fall dann auch noch die Frage aufdrängt, welchen Sinn es haben soll, von einem Source Code ein Bild zu posten. Source Code ist Text! Den kann man auch einfach so posten, bzw. das Quellcodefile einfach anhängen.
Naja, spontan fällt mir ein, dass du einen Pin auch einfach toggeln kannst:
1 | PIN ^= 1; |
Damit exklusiv-verorderst du den Zustand des Portes mit sich selbst, sprich: Aus einer 1 wird eine 0, aus einer 0 eine 1. Gleicher Effekt wie
1 | PIN = 1 - PIN; |
wenn PIN mit 1 oder 0 initialisiert wurde. Aber die erste Methode ist besser. Gruß Jens
Hi >Naja, spontan fällt mir ein, dass du einen Pin auch einfach toggeln >kannst: >PIN ^= 1; >Damit exklusiv-verorderst du den Zustand des Portes mit sich selbst, >sprich: Aus einer 1 wird eine 0, aus einer 0 eine 1. Gleicher Effekt wie Wenn schon, das ganze mit PortXn. Allerdings lässt sich bei neueren AVRs ein Pin mit dem Schreiben einer 1 in das Pin-Register togglen. MfG Spess
Jens schrieb: > Damit exklusiv-verorderst du den Zustand des Portes mit sich selbst, > sprich: Aus einer 1 wird eine 0, aus einer 0 eine 1. Also sozusagen invertieren?
1 | #include <avr/io.h> |
2 | |
3 | #define F-CPU 8000000UL // 8 MHz Taktfrequenz
|
4 | #include <until/delay.h> |
5 | |
6 | int main(void){ |
7 | DDRD = 10; //PIN0 und PIN1 als Ausgang |
8 | |
9 | while(1){ |
10 | |
11 | |
12 | PIND0 = 1 // PIND0 = High |
13 | PIND1 = 0 // PIND1 = Low |
14 | _delay_ms(500); // Pause 500ms |
15 | PIND0 = 0 // PIND0 = Low |
16 | PIND1 = 1 // PIND0 = High |
17 | _delay_ms(500); // Pause 500ms |
18 | |
19 | }
|
20 | |
21 | return 0; |
22 | }
|
Ja ich weiß, meine Kentnisse sind grauenvoll. Und ich bin etwas verwirrt, was jetzt PIN und PORT ist und wie man jetzt mit einem von beiden die pull up Widerstände aktivieren. DDRx ist klar und so ist klar.
Thomas S. schrieb: > Ja ich weiß, meine Kentnisse sind grauenvoll. Dann lies bitte erst mal die Tutorien. Du kannst auch mit dem Assembler AVR-Tutorial anfangen. Dort sind einige Grundlagendinge etwas anders erklärt, vielleicht hilft dir dieses 'Vorwissen' dann weiter, wenn du auf das AVR-GCC-Tutorial überwechselst. Im Speziellen würde ich dir aus dem AVR-Tutorial das Kapitel "I/O Grundlagen" sehr ans Herz legen. Vieles von dort wird dir beim AVR-GCC-Tutorial im Kapitel 11 wieder begegnen, wo es im Grunde um das Gleiche geht, nur dann eben in typischer C-Schreibweise. Bestimmte Dinge, wie zb: wie funktioniert das mit den Pins, wie werden sie eingestellt, was bedeuten die Zahlen - das sind alles Grundlagen ohne die du nicht weiter arbeiten kannst. Und es hat jetzt auch keinen Sinn, dir das alles hier noch mal vorzukauen. Denn ausführlicher als in den Tutorien wird dir das hier im Forum auch keiner erklären können/wollen. Wenn du danach noch spezielle Fragen hast: gerne. Aber erst mal nachlesen, wie die Dinge wirklich funktionieren.
So der "wechselblinker" ist fertig :D http://www.youtube.com/watch?v=_IQcDTm8_UE Danke für Eure Hilfe.
Ja, das ist so ein innovatives Projekt, dass man davon ein Video machen muss. Stimmt.
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.