skybreaker
06.07.2006, 13: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
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