Forum: Compiler & IDEs Anfängerprobleme mit Inbetriebnahme


von heiri (Gast)


Lesenswert?

Ich hab grössere Startschwierigkeiten. Ich wollte meinen ersten AVR, 
einen ATMega48 in betrieb nehmen. Dazu schrieb ich folgendes 
Test“programm“:

#include<avr/io.h>
int main(void)
{
DDRB=0xff;
  DDRD=0xff;
  PORTD=0x03;
  PORTB=0xff;
  while(1)
    {
    }
  return 0;
}

Meines Wissens sollte dies die ersten beiden D-Pins und alle B-Pins auf 
High setzen, doch liegen die Spannungen an allen Pins bei etwa 1.2V 
(Betriebsspannung 4.8V)
Programmiert hab ich den AVR über einen mySmartUSB und dem Verbinden der 
ISP-Kontakte in der Buchse mit den entsprechenden Pins am uC (nach 
Datenblatt). Als Software zum brennen der HEX Datei verwendete ich den 
zum Programmer mitgelieferten myAVRquickProg. Dieser zeigte an dass das 
Programmieren des AVR funktioniert habe.
Kann mir jemand erklären was ich falsch mache?

vielen Dank bereits im Voraus für jegliche Antworten

von Andreas Paulin (Gast)


Lesenswert?

Weiß nicht genau, wo's hakt, aber schau mal hier:

Beitrag "ATmega32 und PORTC"

Vielleicht in dieser Richtung suchen?

von Gast (Gast)


Lesenswert?

Hi

ich weiß zwar nicht ob es daran liegt aber so wie man immer wieder liest 
hängt es oft an den FUSE BITS.

von Stefan (Gast)


Lesenswert?

Ist im makefile (bei WinAVR allein) bzw. in AVR Studio (bei AVR 
Studio+WinAVR als Entwicklungsumgebung) auch eingestellt, dass du für 
einen Atmega48 übersetzen willst?

DDRD, PORTD, ... sind symbolische Namen für spezielle Adressen im µC und 
die können von µC- zu µC-Typ verschieden sein. Die Symbole werden in 
io.h auf die Adressen des jeweiligen µC-Typ abgebildet. Dazu muss die 
Entwicklungsumgebung wissen, welchen µC du verwendest.

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.