Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega32 führt testprogramm nicht aus
hallo,
ich verwende den atmega32u2 und flip3.41 zum schreiben (usb).
mit dem avrstudio kriege ich led´s problemlos zum leuchten jedoch mit bascom nicht.
ich habe folgenden quellcode versucht.
$regfile = "m32def.dat"
$crystal = 16000000
Config Pinb.0 = Output
Do
Portb.0 = 1
Loop
end
die hex datei habe ich danach auf den atmega32 gebracht aber die led leuchtet einfach nicht auf...
wo liegt mein problem?
grüße
hardware.bas
31.01.2011, 19:14
...
DDRB.0 = 1 Port auf Ausgang setzten
PORTB.0 = 1 Port auf H setzen
...
Vorsicht: Bei BASCOM wird der Ausdruck "PIN...."
in Verbindung mit dem Auslesen benutzt, also als Eingang. VG Micha
$regfile = "m32def.dat"
$crystal = 16000000
Ddrb.0 = 1
Do
Portb.0 = 1
Loop
End
geht auch nicht:(
hardware.bas
01.02.2011, 06:56
Für Deinen Test brauchst Du keine Schleife.
Alternativ wäre:
...
DDRB = &B00000001 :Portpin B.0 auf Ausgang, B.1-B.7 auf Eingang
PORTB = &B11111111 :B.0 auf High, B.1-B.7 PullUp ein (Strom sparen)
END
ich versuche das gleich mal, danke
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 20
$swstack = 20
Config Pinb.0 = Output
Do
Portb.0 = 1
Loop
end
sollte gehen.
Gento
led leuchtet ebenfalls nicht.
ich denke ich mache einfach was beim bespielen falsch.
kann ich denn die von bascom erzeugte .hex einfach per flip auf den atmega32u2 aufspielen?
@gento mit deinem code leuchtet die led ebenfalls nicht...
ähhhmmm
Der sollte aber laufen.
Ich teste den mal Heute Nachmittags.
Gento
hardware.bas
01.02.2011, 07:22
Da ich ausschliesslich mit einen Eigenbau-Dongle auf Basis des
Tri-State-Treiber-ICs 74HC125 in Verbindung mit der LPT-Schnittstelle
arbeite, kenne ich andere (kompliziertere und teurere) Programmierum-
gebungen nicht (ausser myAVR-LPT, die ist nach o.g. Prinzip aufgebaut ist). Daher jetzt nur meine Erfahrungen. Auf Grund der Einfachheit des
Programmes vermute ich, dass es erst gar nicht in den AVR kommt.
Dass Du das erst mit einen einfachen Testprogramm versuchst (ich fahre
in neue Schaltungen auch erst meist ein Blinkprogramm) ist ok.
Bei meinem Programmer wird das Programm geladen, wieder ausgelesen
und verifiziert. Alles über die SPI. Checke mal alles andere erst ab.
Ist der Atmega richtig gefust, bei vielen ist erst nur der interne
RC-Oszillatot aktiv. Quäle Dich nicht mit HEX.Daten ab. Am besten
poste mal Deine Schaltung. VG Micha
mein board ist das u2dil.
http://re.reworld.eu/de/produkte/u2dil/index.htm
mit avr-studio kriege ich die leds ja zum blinken.. nur mit bascom nicht:(
MagicWSmoke
01.02.2011, 09:45
Atmega32u2 <> Atmega32, andere Registerbelegung, ähnlich dem ATMega32U4.
Für das einfache Testprogramm wird m32U4def.dat gehen, alles andere könnte kompliziert werden, da dem U2 einiges an HW des U4 fehlt.
Atmega32u2 <> Atmega32, andere Registerbelegung, ähnlich dem ATMega32U4.
Für das einfache Testprogramm wird m32U4def.dat gehen, alles andere könnte kompliziert werden, da dem U2 einiges an HW des U4 fehlt.
kann ich damit denn ganz normal programmieren, solange ich nur die hardware benutze die im u2 auch vorhanden ist?
das testprogramm funktioniert aufjedenfall
edit:
Soeben habe ich gelesen dass der 32u2 genauso zu programmieren ist wie der AT90USB162.
Stimmt das?
grüße
MagicWSmoke
01.02.2011, 10:52
kann ich damit denn ganz normal programmieren, solange ich nur die hardware benutze die im u2 auch vorhanden ist?
Man kann's versuchen, Datenblätter von Atmel runterladen und vergleichen.
Soeben habe ich gelesen dass der 32u2 genauso zu programmieren ist wie der AT90USB162.
Wenn man die Register-Summary im Datenblatt anschaut, sehen die außer kleiner Unterschiede sehr ähnlich aus, auch Interruptvektoren sind gleich, könnte also klappen. Nur hat der 162 weniger Flash, SRam und EEprom. Wenn man den U2 also ausnutzen möchte, müsste man eine Kopie der usb162.dat umschreiben und die größeren Speicher eintragen.
kann es vielleicht auch daran liegen, dass du die Fuses nicht richtig gesetzt hast? Wenn du nämlich versucht mit 16 MHZ zu arbeiten, brauchst du ja irgendwo den Takt her. Naja und wenn der nicht da ist, kann das schon mal fehler geben. Mach einfach mal folgendes:
$crystal = 1000000
$regfile = "m32def.dat"
Config PORTB.0 = Output
Do
Toggle PORTB.0
Waitms 100
Loop
Einfach copy past machen und ausprobieren, wennns nicht klappt, dann kannste dir sicher sein, dass es irgendwo an der Hardware liegt. Benutzt du ein Board oder selbstgelötete schaltung?
Gruß Hunni
das thema ist erledigt danke
oh... merkt man das ich nicht immer bis zum Ende lese?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.