Forum: Compiler & IDEs hello world in C fuer ATmega163 ?


von Szabo (Gast)


Lesenswert?

hello forum,

ich suche schon seit langem ein simples testprogramm fuer meinen 
ATmega163 chip, der sich auf einer platine befindet die 8 leds zur 
datenausgabe auf sich drauf hat. die buchstaben des "hello world" 
sollten nacheinander byte fuer byte an die leds kopiert werden und das 
programm muss in C sein. ich hatte bisher immer probleme mit den 
includes, daher sollte das programm nur mit den garantiert vorhandenen 
includes auskommen. den pfad muss man mir aber evtl noch sagen, dann 
trage ich ihn ein.

danke,
gruesse
Andreas Szabo

von Szabo (Gast)


Lesenswert?

bevor ich es vergesse, als entwicklungsumgebugn benutze ich AVR Studio 4 
und als Compiler WinAVR (glaub ich :-).

von Oliver (Gast)


Lesenswert?

Fertig wird es so etwas nicht geben. Ein einfaches "hello world", 
welches nur eine LED zum blinken bringt, findet sich hier:

http://www.roboternetz.de/wissen/index.php/Hallo_Welt_f%C3%BCr_AVR_%28LED_blinken%29

Wenn das läuft, kannst du auf der Basis selber weiter programmieren.

Oliver

von Christian (Gast)


Lesenswert?

Schau' Dir mal folgendes "Programm" an:
1
#include <avr/io.h>
2
3
int main(void) {
4
  uint8_t array[] = "hello world";
5
  uint8_t i;
6
7
  DDRC = 0xff;
8
9
  while (1) {
10
    for (i = 0; i < 11; i++) {
11
      PORTC = array[i];
12
    }
13
  }
14
}

Ob es das tut, was Du möchtest, glaub' ich kaum, zumindest compiliert 
es. (Falls die LEDs nicht an PORT C hängen, Code entsprechend ändern.)

Viel Erfolg!

von Der T. (Gast)


Lesenswert?

..und bau noch ein delay ein, sonst siehst du "alle LEDs leuchten".. ;)

von Simon K. (simon) Benutzerseite


Lesenswert?

Oliver wrote:
> Fertig wird es so etwas nicht geben. Ein einfaches "hello world",
> welches nur eine LED zum blinken bringt, findet sich hier:
>
> 
http://www.roboternetz.de/wissen/index.php/Hallo_Welt_f%C3%BCr_AVR_%28LED_blinken%29
>
> Wenn das läuft, kannst du auf der Basis selber weiter programmieren.
>
> Oliver

Sorry, aber: LOL

Das soll ein "Hallo-Welt" Programm sein?
Natürlich. Fangen wir direkt mit dem ganzen Makrogetue, Interrupts, 
wilden Formeln, die für die Timer benötigt werden und so sachen wie 
static/volatile an.

Versteht doch jeder Anfänger! Klar...

Sorry, aber das hat schon etwas ironisches.

von Oliver (Gast)


Lesenswert?

Natürlich ist das ein fieses Beispiel.

Aber:
Entweder ist Szabos Problem eigentlich eine Hausaufgabe für irgendwas 
(denn ich glaube einfach nicht, daß jemand, der noch nie was mit 
irgendeinem Compiler zu tun hatte, alleine auf solch eine 
Aufgabestellung kommt), und Szabo will es auf die bequeme Tour lösen, 
oder er möchte zwar jetzt nur ein einfaches Programm haben, aber danach 
was richtiges mit dem Mikrocontroller anfangen.

Für beide Fälle finde ich das Beispiel ganz passend :-)

Oliver

von Szabo (Gast)


Lesenswert?

Der Szabo macht gerade ein Praktikum in einer Computerfirma und hat vom 
Chef die Aufgabe bekommen etwas in c auf dem chip und änlichen chips zum 
laufen zu bringen. Szabo bedankt sich fuer alle einsendungen. Ich habe 
bisher so gut wie nie C programmiert und bei den mitgelieferten sourcen 
hat immer etwas nicht gepasst. Ich schreibe spaeter ob der thread jetzt 
was genuetzt hat. danke nochmal, gruesse, Andreas

von Szabo (Gast)


Lesenswert?

lieber christian,

ich habe dein prog ausprobiert. es compiliert! ich habe noch eine 
200-fache warteschleife eingebaut und sehe aber an den leds garnix. muss 
ich mehr warten oder stimmt was anders nicht? ich habe natuerlich 
geprueft ob alles am richtigen port haengt...

von Szabo (Gast)


Lesenswert?

ok, ich habe es geschafft es zum flimmern zu bringen. DDRC musste DDRB 
werden. keine weiteren fragen mehr.

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.