Programmbeispiel in C für den ATmega8

Gast #2249421
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
Gast #2249427
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.
Gast #2249438
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"?
Gast #2249445
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
Gast #2249446
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...
Gast #2249485
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?
#2249494
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
Gast #2249498
Ja ich will über den seriellen Anschluss programmieren. Naja mal hoffen 
obs klappt. Werde dann AVRDUDE benutzen. Und danke für die schnelle 
Hilfe!
#2249538
> 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.
#2249609
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
Gast #2250466
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.