Forum: Mikrocontroller und Digitale Elektronik Programmbeispiel in C für den ATmega8


von Johannes (Gast)


Lesenswert?

Hallo,
Ich suche schon seit nach langem ein Programmbeispiel für einen Atmega8 
in C, um einmal mein neues Evaluationsboard von Pollin zu testen 
(selbstgelötet)
und um einen kleinen Einstieg in das Programmieren von Microcontroller 
zu bekommen. Eine blinkende Led z.B. würde mir als Test und Beispiel 
reichen. Bin nicht ganz unerfahren in der C Programmierung aber bekomm 
das mit den Ports under Library noch nicht so ganz hin.
Über Beispiele oder Hilfe würd ich mich sehr freuen
Johannes

von Stefan E. (sternst)


Lesenswert?


von Johannes (Gast)


Lesenswert?

Das tutorial hab ich schon oft versucht zu verstehen aber ich versteh 
das einfach nicht wie ich dem controller die ports zuweise etc. komm 
einfach nicht weiter.

von coder (Gast)


Lesenswert?

Also einfacher als das Einführungsbeispiel im AVR-Tutorial geht es kaum. 
Da mußt Du schon genauer sein, wo es bei Dir scheitert...

von Meister Lampe (Gast)


Lesenswert?

Dann lies halt das Datenblatt. Da steht alles drin, was du wissen musst, 
sogar ohne Ballast.

von coder (Gast)


Lesenswert?

Zumindest ist das Einführungsbeispiel erklärt, stelle Ich mir Frage, wo 
es hakt...

von Johannes (Gast)


Lesenswert?

Naja ich find es wird nicht erklärt was z.B. "Datenrichtungsregister" 
ist oder wie man auf "DDRB=0xff" kommt. Ich weiß, dass damit alle 
Anschlüsse des B Ports auf Ausgang gesetzt werden aber kann man sich das 
irgendwo herleiten? Also wofür steht z.B. "DDRB"?

von Purzel H. (hacky)


Lesenswert?

DDRB = Datenrichtungsregister des Port B.
Im datenblatt.

von Johannes (Gast)


Lesenswert?

Ok danke erstmal für die Hilfe,
anscheinend muss ich dann nochmal das Datenblatt studieren und ich 
versuche danach mit dem Tutorial Fortschritte zu machen

von coder (Gast)


Lesenswert?

Wie weit hast Du das Tutorial gelesen? Es wird schon erklärt, Kapitel 12 
Zugriff auf IO-Ports im Tutorial.

Ansonsten, da gibts ein PDF, sprich Datenblatt.
Bevor man loslegt: viel Lesen und genau Lesen und zu Ende Lesen

War zumindest bei mir so, als ich angefangen habe...

von Johannes (Gast)


Lesenswert?

Ok danke werde ich befolgen

von Johannes (Gast)


Lesenswert?

Hey,
ich bin im Tutorial gerade bei den Makefiles angelangt aber frage mich, 
wie kann ich das Evaluationsboard von Pollin als Programmiergerät 
einstellen? Kann ich als Software AVRDUDE benutzen?

von neuer gast (Gast)


Lesenswert?

Im zweifel mal die Suchmaschine verwenden. Du bist bestimmt nicht der 
erste, der das möchte....

von Klaus W. (mfgkw)


Lesenswert?

Johannes schrieb:
> wie kann ich das Evaluationsboard von Pollin als Programmiergerät
> einstellen?

Da stellst du nicht das pollin-Board ein, sondern den ISP-Programmer, 
den du anschließst.
Welchen nimmst du denn?

Bei einem rein seriellen Anschluß mit der Schaltung auf dem Pollin-Board 
(hat bei mir nie vernünftig funktioniert), ist das bei avrdude der 
Parameter:
1
... -c siprog  -P /dev/ttyS0 ...
unter Linux oder wahrscheinlich etwas ähnliches wie
1
... -c siprog  -P COM1 ...
unter Windows.

Es gibt auch andere, z.B. AVRISPmkII an einem USB-Port, dann wäre es 
unter Linux:
1
... -c avrispmkii -P usb ...

Andere ISP-Programmer entsprechend.


Johannes schrieb:
> Kann ich als Software AVRDUDE benutzen?

ja, sehr zu empfehlen

von Johannes (Gast)


Lesenswert?

Ja ich will über den seriellen Anschluss programmieren. Naja mal hoffen 
obs klappt. Werde dann AVRDUDE benutzen. Und danke für die schnelle 
Hilfe!

von Karl H. (kbuchegg)


Lesenswert?

> Naja ich find es wird nicht erklärt was z.B.
> "Datenrichtungsregister" ist oder wie man auf "DDRB=0xff" kommt.


Du kannst auch mal im AVR-Tutorial anfangen zu lesen. Das ist zwar für 
Assembler und nicht C, aber die Grundlagen, was was bedeutet und wozu es 
gut ist, ist auch dort beschrieben une erklärt. Manchmal ergänzen sich 
eben 2 Tutorien. Was man im einen nicht versteht, wird im anderen (mit 
anderen Worten) plötzlich klar.

von Codeumgebung (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Manchmal ergänzen sich eben 2 Tutorien.

Und nochmal ein Drittes (ist zwar in Bascom aber wie bereits gesagt 
schnurz ):
http://www.rn-wissen.de/index.php/AVR-Einstieg_leicht_gemacht

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

DDRB=0xff;

DDRB      Data Direction Register von port B
=         Zuweisung an DDRB
0xff      0x Kenzeichner für hexadezimal Interpretation des FF
          also binär 11111111
          gesetztes Bit bedeutet Datenausgangsrichung am jeweiligen
          Port B 7..0, Wert des Ausgangs mit PORTB-Bits beeinflußbar.
;         Befehlszeilenende

von Fritz M. (fritz111)


Lesenswert?

Johannes schrieb:
> Ich suche schon seit nach langem ein Programmbeispiel für einen Atmega8
> in C, um einmal mein neues Evaluationsboard von Pollin zu testen

Die Beispiele für das Funk-AVR-Evaluationboard von Pollin können auch 
für das Atmel-Evaluation-Board von Pollin verwendet werden. Lediglich 
der Taster und die LED sind an unterschiedlichen Ports angeschlossen und 
müßen gegebenenfalls im Code angepasst werden.

          Funk Eval.Board     Eval.Board
Taster 1       PB1               PD2
Taster 2       ---               PD3
Taster 3       ---               PD4
LED 1          PD6               PD5
LED 2          PD5               PD6
Summer         ---               PD7

http://www.mikrocontroller.net/articles/Pollin_Funk-AVR-Evaluationsboard

von bl (Gast)


Lesenswert?

Johannes schrieb:
> Naja ich find es wird nicht erklärt was z.B. "Datenrichtungsregister"
> ist oder wie man auf "DDRB=0xff" kommt. Ich weiß, dass damit alle
> Anschlüsse des B Ports auf Ausgang gesetzt werden aber kann man sich das
> irgendwo herleiten? Also wofür steht z.B. "DDRB"?

Die Definitionen findest Du in den ioXX.h für den jeweiligen µC.
Diese findest Du im WinAVR-Verzeichnis unter avr/include/avr/.
Eigentlich nichts anderes, als ein komfortables Mapping auf die Adressen 
der Hardwareregister, die je nach Typ schon mal an andere Stelle liegen 
können.

Eine detaillierte Beschreibung findest Du in den Datenblättern des 
Herstellers
(bspw. ATmega8):
http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf

Also ran an das forumeigene GCC-Tutorial, die Headerdatei und das 
Datenblatt.

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.