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
Weiß nicht genau, wo's hakt, aber schau mal hier: Beitrag "ATmega32 und PORTC" Vielleicht in dieser Richtung suchen?
Hi ich weiß zwar nicht ob es daran liegt aber so wie man immer wieder liest hängt es oft an den FUSE BITS.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.