Hi! Bin gerade dabei so eine Propeller Clock für einen Fahrradreifen zu bauen. Schaltung besteht aus einem atmega 8 mit 8 leds an PORTD und einem Reedkontakt an PORTB0, HIGH aktiv. Dazu noch Spannungsregler, etc.. Hab schon bisschen Grundlagenforschung betrieben. Das heisst ich kann meine 8 Leds so steuern dass bei etwas längeren Verschlusszeiten (~0,5 sec.) einer Kamera und gleichzeitigem vorbeischwenken der LEDs ein Text, etc. entsteht. Soweit so gut. Hier schreibe ich einfach das erste Byte aus dem Array des entsprechenden Buchstaben in den PORTD. Passt so? PORTD deswegen, weil es ja am atmega 8 keinen anderen Port gibt, der komplett herausgeführt wird und nicht fürs ISP, etc. verwendet wird. Nun habe ich aber mit dem Timing ein kleines Problem: Ich müsste ja eigentlich die Dauer eines umlaufes messen, aber wie stelle ich das ohne Interrupts an? Wenn ich den INT0 Pin für den Taster verwenden würde, kann ich nicht mehr einfach mein Byte in PORTD schieben. Wie würdet ihr das machen? Grüße, Matze
Hi, nimm doch den PORTB für deine LEDs. Den ISP interessieren deine paar LEDs recht wenig. Heißt ja nicht umsonst InSystem. Oder du trennst softwareseitig die zwei PD2,PD3 vom PORTD ab und gibst sie auf dem PORTC aus. [c] PORTD = Ausgabe & 0b11110011; PORTC = Ausgabe & 0b00001100; [\c]
Für die Messung der Umlaufdauer bietet sich der ICP (Input Capture) an. Der liegt auf PB0.
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.