Forum: Mikrocontroller und Digitale Elektronik Würde mein Wechselblinker funktionieren?


von Thomas S. (thomas_s74)


Angehängte Dateien:

Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?

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.

von leerer (Gast)


Lesenswert?


von MaWin (Gast)


Lesenswert?

> 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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Jens (Gast)


Lesenswert?

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

von spess53 (Gast)


Lesenswert?

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

von Thomas S. (thomas_s74)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas S. (thomas_s74)


Lesenswert?

So der "wechselblinker" ist fertig :D

http://www.youtube.com/watch?v=_IQcDTm8_UE

Danke für Eure Hilfe.

von Simon K. (simon) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.