Forum: Mikrocontroller und Digitale Elektronik Ultimative Anfängerfrage AVR ATTiny13


von Daniel B. (inox5) Benutzerseite


Lesenswert?

...und hier ist sie:
Ich bin ganz neu auf dem Gebiet der AVR Mikrocontroller. Habe zwar schon 
längere Zeit PICs programmiert, aber nun gut...Problem ist folgendes:
Eigentlich soll dieses Programm lediglich alle PINS output schalten und 
dann PIN 5,3,1 auf high schalten. Klappt aber irgendwie nicht...Warum?
1
#include <avr/io.h> 
2
3
int main (void)
4
{
5
DDRB = 0b00000000;
6
PORTB = 0b00101010;
7
start:
8
goto start;
9
}

Ich benutze AVR-Studio und WinAVR.
Bin für jede Hilfe dankbar
Inox5

von Stefan E. (sternst)


Lesenswert?

DDRx: 1 = Output

von Daniel B. (inox5) Benutzerseite


Lesenswert?

oO peinlich, hatte ich doch gerade erst das Tourtial gelesen....hm ich 
bin zu müde morgen wird es besser gehen, Danke Stefan.

von Daniel B. (inox5) Benutzerseite


Lesenswert?

Hallo
Ich habe nun das Programm verändert, aber es funktioniert immer noch 
nicht.
Ich müsste mit meinem Programm doch alle PINs auf Output und alle Pins 
auf high haben, aber auch im Simulator findet keine Veränderung der 
Register statt. Ich weiß im Moment nicht woran es liegen könnte...
1
#include <avr/io.h> 
2
3
int main (void)
4
{
5
DDRB  = 0b00111111;
6
PORTB = 0b00111111;
7
start:
8
goto start;
9
}

Danke für jede Hilfe.
Inox5

von Daniel B. (inox5) Benutzerseite


Lesenswert?

Muss man RESET immer auf 5V ziehen?

von Jochen M. (taschenbuch)


Lesenswert?

>>Muss man RESET immer auf 5V ziehen?
Ja, wenigstens über einen Pullup-Widerstand....
Ausser, Du hast den Resetpin per FUSES wegdefiniert.

Buchstabiere mal D_A_T_E_N_B_L_A_T_T ...

Jochen Müller

von Daniel B. (inox5) Benutzerseite


Lesenswert?

D_A_T_E_N_B_L_A_T_T_ Jo hab jenes eben auch gerade konsultiert und habe 
dies gelesen. Nun funktioniert auch mein Code. An welch kleinen Dingen, 
sowas schon hätte scheitern können. Danke.
Warum funktioniert es aber eigentlich nicht im Simulator?

Inox5

von ... .. (docean) Benutzerseite


Lesenswert?

brrr goto und Labels in C
1
#include <avr/io.h> 
2
3
int main (void)
4
{
5
   DDRB  = 0b00111111; //eigentlich auch unschön...versteht nicht jeder Compiler
6
   PORTB = 0b00111111;
7
8
   for(;;)
9
   {}
10
11
}

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.