Forum: Mikrocontroller und Digitale Elektronik Wiedereinstieg in die Programmierung


von Jannes B. (janpabo)


Lesenswert?

Moin Leute,

ich habe folgendes Problem, ich habe vor zwei Jahren schoneinmal in der 
ausbildung mehrfach µCs programmiert, nur sitze ich jetz seit Stunden 
und versuche einfach mal wieder reinzukommen. Habe seit längerem ein 
STK-500 liegen und nen Atmega8515. Verbindung steht, er lässt sich auch 
programmieren.
Jetz wollte ich damit anfangen einfach nur LEDs mit den Tastern auf dem 
Board zu steuern, aber das will mir irgendwie nicht gelingen.
Ich hab bisher schon einige Dinge ausprobiert und mich dabei an das 
hiesige Tutorial gehalten. 
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Kann mir mal jemand unterstützung zum Einstieg bieten? Bzw. ein kurzes 
und knappes programm empfehlen, damit ich meine fehler erkennen kann?

greetz Jannes

: Verschoben durch User
von Michael D. (etzen_michi)


Lesenswert?

Lade mal dein bisheriges Programm hoch.

von Udo S. (urschmitt)


Lesenswert?

Jannes Borchers schrieb:
> Kann mir mal jemand unterstützung zum Einstieg bieten? Bzw. ein kurzes
> und knappes programm empfehlen, damit ich meine fehler erkennen kann?

Programmieren lernst du nur indem du selbst was machst.
Das Tutorial sollte dir dazu genügend Infos für den Anfang 
bereitstellen.
Ein anderes Programm in deinen Controller zu flashen wird dir nichts an 
Erkenntnis bringen.
Die Programme zum Fehler erkennen nennen sich compiler / debugger 
/simulator.

Wenn du ein konkretes Problem hast poste es.
Du hast ja noch nicht mal geschrieben welche Programmiersprache du 
verwenden willst.

von Jannes B. (janpabo)


Lesenswert?

Also programmieren will ich in C, da ich mich da schon etwas auskenne. 
Hiermal ein programmbeispiel.

#include <stdio.h>
#include <avr/io.h>


uint8_t set;  //Variable deklarieren

int main(void)

{
 DDRB = 0xFF;  //PortB als Ausgang definieren
 DDRD = 0x00;  //PortD als Eingang definieren
 set = PIND;  //Porteingangsregister in Variable set laden
 PORTB = set;  //Variable set an PortB übergeben
}

Nur leider passiert an den ausgängen nichts, habe auch schon ein paar 
andere Codes ausprobiert, aber komm grade leider einfach nich dahinter. 
Normalerweise probiere ich solange, bis ich den Fehler selbst finde nur 
geht mir langsam echt die Motivation aus...

von dfgh (Gast)


Lesenswert?

setz die zuweisung mal in eine while(1){ ...} Schleife

von Benjamin K. (benjamin92)


Lesenswert?

Genau, er braucht eine Endlosschleife, in der das Programm ausgeführt 
wird, sonst steht der Prozessor nach dem ersten Programmdurchlauf.

von Gustav (Gast)


Lesenswert?

Jannes Borchers schrieb:
> set = PIND;  //Porteingangsregister in Variable set laden

Was stellst du dir denn unter PIND vor?

von Jannes B. (janpabo)


Lesenswert?

Jo danke, das Programm läuft. Ich hatte viel zu kompliziert gedacht ;)

Gustav schrieb:
> Was stellst du dir denn unter PIND vor?

Unter PIND stelle ich mir da zu Port D gehörige Regiter zum einlesen der 
Zustände an den Pins vor, sofern der Port als Eingang definiert is, oder 
verstehe ich da was falsch?

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.