PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : atmega32 lässt sich nicht richtig Programmieren



skybreaker
06.07.2006, 12:39
Hallo,
Bin Anfänger auf diesem Gebiet und weiss im Moment nicht mehr weiter.
Hab das RN-Control 1.4 fertig aufgebaut gekauft mit dem passenden Prog kabel und dem RS232 Kabel . Hab das Set jetzt schon ca. 3 Monate und konnte schon bißchen ausprobieren bin im moment dabei eine Verbrausanzeige für ein Motorboot zu bauen, die den Momentan und den Gesamtverbrauch anzeigen soll. Das ganze hat auch schon funktioniert aber im moment lässt sich der Atmega32 aus unerklärlichen Gründen nicht mehr richtig Programmieren. Kleiner Programme wie zB. Led blinken lassen gehen problemlos aber bei größeren kommt immer der Fehler Difference at XXX und das Programm funktioniert nicht. Hab mittlerweile 2 Atmega32 gehen aber beide nicht richtig, hab jetzt auch schon paar mal probiert die fusebits umzustellen (also zwischen internen und externen Takt) aber ohne Erfolg. Hoffe ihr könnt mir helfen. Hier mal das Prog das ich schonmal am laufen hatte jetzt aber nicht mehr funzt :



$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000
$baud = 9600



Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4
Config Lcdbus = 4
Config Lcd = 16 * 2
Cls
Initlcd


Config Timer1 = Timer , Prescale = 1024
Enable Timer1
On Timer1 Isr_von_timer1
Timer1 = 37410




Enable Int2
Enable Interrupts
Config Int2 = Falling
On Int2 Int2_int

Dim Gesamt1 As Long
Dim Moment1 As Long
Dim Moment2 As Single
Dim Gesamt2 As Long
Dim Wandler1 As Single
Dim Ausgabe1 As String * 4
Dim Ausgabe2 As String * 4
Moment1 = 0
Readeeprom Gesamt1 , 1

Do


Writeeeprom Gesamt1 , 1
Gesamt2 = 250000 - Gesamt1
Wandler1 = Gesamt2 / 2500
Ausgabe1 = Fusing(wandler1 , "#.#")



Cursor Off
Upperline
Locate 1 , 1
Lcd " "
Locate 1 , 1
Lcd "Tank " ; Ausgabe1 ; " %"

Loop


Int2_int:
Incr Gesamt1
Incr Moment1
Return



Isr_von_timer1:


Moment2 = Moment1 / 5
Ausgabe2 = Fusing(moment2 , "#.#")
Locate 2 , 1
Lcd " "
Locate 2 , 1
Lcd "Verbr. " ; Ausgabe2 ; " l/h"

Moment1 = 0
Timer1 = 37410

Return

Frank
06.07.2006, 12:59
Mögliche ursachen, siehe:
https://www.roboternetz.de/wissen/index.php/RN-Board_FAQ-Seite

Zudem aufpassen das möglichst andere Programme auf dem PC geschlossen werden. Es gibt einige Programm die das ISP Timing oder den Druckerport stören.

Marco78
06.07.2006, 17:16
Dei Seite von Frank listet ja schon alles aus, was es gibt was nicht stimmen könnte.

Ich will da nur nochmal auf den Punkt 5.8 (Quarz) hinweisen.
Beim ersten mal Fusebits setzen hatte ich auch diese Meldung.
Das Problem was das was viele schon hatten und viele noch haben werden.
AVR ist gekauft, ISP gebaut, Programm geschrieben, jetzt mal schnell ein Erfolg sehen wollen.
Dazu erstmal Fusebits einstellen (JTAG aus, Quarz an, ...)
Bei Quarz an habe ich die Einstellung für einen externen Quarzoszilator gewählt. Es war aber nur ein normaler Quarz angeschlossen :(

Soll auch nur bedeuten, das diese Meldung auch mit einem defekten Quarz zu tun haben kann, oder mit den Kondensatoren für den Quarz (idR 22pF oder 15pF).
Vielleicht schwingt der Quarz nicht richtig an. Quarz tauschen, evtl Kondensatoren tauschen oder erstmal nur die Spannungsversorgung neu anlegen.

skybreaker
06.07.2006, 17:21
Vielen Danke für eure schnelle Hilfe! Bin grad am durcharbeiten vom FAQ hoffe das, dass passende dabei.

Gruß

skybreaker
06.07.2006, 17:59
Hab den Fehler gefunden wäre vieleicht auch ein Punkt fürs FAQ.
Hab vor geraumerzeit mal einen Drucker am Parallelport installiert, solang der Drucker im Windows eingerichtet ist, kommt es zu den oben geschilderten Problem. Hab das ganze an meinem Zweitrechner ausprobiert der auch einen Drucker am parallelport installiert hat dort trat das selbe Problem auf.


Gruß

Hanni
06.07.2006, 21:45
Hmm, das Problem tritt im übrigen nur bei primitiven ISP Adaptern auf, welche nur funktionieren können, da die parallele Schnittstelle von programmen ala Ponyprog & Co vergewaltigt wird.

Die besseren ISP Adapter, welche mit der ATMEL Appnote 910 / 911 kompatibel sind haben dieses Problem im übrigen nicht.
Des weiteren bieten diese Adapter den Vorteil den Mikrocontroller mit der standartsoftware (AVR Studio) programmieren zu können.
Mit dieser ist die Programmierung der Fusebits im übrigen ein Kinderspiel ... sprich Selbsterklärend.

PS: Das sollte jetzt nicht abwertend gegenüber diversen Programmierdongles sein.

Grüße,

da Hanni.

Frank
10.07.2006, 10:20
Das mit dem Drucker hab ich noch in die FAQ reingenommen, war aber bei mir noch nie aufgetreten.