mat-sche
30.06.2006, 23:56
Hallo und N' en guten abend,
habe ein kleines prog geschrieben welches auf einem mega32 gut läuft. Dann hatte ich versucht es auf einen Attiny2313 zum laufen zu bringen, mit der Fehlermeldung: Error 344..... Programm will overwrite bootloader!
Kann mir jemand helfen das zu verstehen?! Wie kann ich unter Bascom herausfinden wie groß mein Programm ist und ob dies mein Controller schluckt....
Sourcecode hier:
$regfile = "attiny2313.dat" ' specify the used micro
$crystal = 12000000 ' used crystal frequenz
'****Configuration LCD***********
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.0 , Rs = Portd.1
Config Lcd = 16 * 1 'configure lcd scree
Initlcd ' initialisiere LCD
Cls
'****Configuration DS1820***********
Config 1wire = Portb.7
Dim I As Byte
Dim Id1(8) As Byte
Dim Id2(8) As Byte
Dim Ar1(2) As Byte
Dim Ar2(2) As Byte
Dim Ar(2) as Byte
DIM Temperatur1 as Integer
DIM Temperatur2 as Integer
Dim Halb as Byte 'use this pin as 1wire
'****Configuration Gangzählen*********
Dim Gang As Byte , Z as word 'Gangzähler
Config Pinb.4 = Input 'Ein Pin (PA0) wird als Eingang definiert
N Alias Pinb.4
Config Pinb.6 = Input
Rauf Alias Pinb.6
Config Pinb.5 = Input
Runter Alias Pinb.5
DDRB = &B11111111
Do
if n = 1 then gang = 0
Debounce Runter , 1 , runterzahlen , sub
If Gang => 2 Then Goto Zaelen 'wenn Poti nach oben, erhöhe Seitenzähler
Zaelen:
Debounce Rauf , 1 , hochzahlen , sub
Ganganzeige:
Cursor Off
Locate 1 , 15
Lcd "G"
Locate 1 , 16
Lcd ; Gang
Incr Z
If Z > 501 then Z = 0
If Z > 500 then Goto TEMP1
Loop
End
'----------------------------------------------------------------------------------------------------------------------------
Temp1:
Id1(1) = 1wsearchfirst()
Id2(1) = 1wsearchnext()
'***Sensor 1************************************************* ***********************
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id1(1) , 8 'Id von Sensor 1
1wwrite &H44 'Convert T
Waitms 150 '300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id1(1) , 8 'id von sensor 1
1wwrite &HBE
For I = 1 To 2
Ar(i) = 1wread(1)
Next
Deflcdchar 0 , 4 , 10 , 10 , 4 , 32 , 32 , 32 , 32 ' replace ? with number (0)
Locate 1 , 1
Temperatur1 = Ar(1)
If Ar(2) > 0 Then Temperatur1 = 0 Else Shift Temperatur1 , Right
Lcd "T1" ; Temperatur1 ; ".";
Halb = Ar(1) And 1
If Halb = 1 Then Lcd "5" Else Lcd "0"
'Locate 1 , 5
'LCD ; Chr(0) ; "C"
'*****Sensor2*****
'Waitms 500
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id2(1) , 8 'Id von Sensor 2
1wwrite &H44 'Convert T
Waitms 150 ' 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id2(1) , 8 'id von sensor 2
1wwrite &HBE 'scratchpad lesen
For I = 1 To 2
Ar(i) = 1wread(1)
Next
Deflcdchar 0 , 4 , 10 , 10 , 4 , 32 , 32 , 32 , 32 ' replace ? with number (0)
Locate 1 , 8
Temperatur2 = Ar(1)
If Ar(2) > 0 Then Temperatur2 = 0 Else Shift Temperatur2 , Right
Lcd "T2" ; Temperatur2 ; ".";
Halb = Ar(1) And 1
If Halb = 1 Then Lcd "5" Else Lcd "0"
'Locate 2 , 5
'LCD ; Chr(0) ; "C"
Goto ZAELEN
'Return
'---------------------------------------------------------------------------------
runterzahlen:
if gang = 0 then gang = 1
if gang > 2 then decr GANG
return
'-------------------------------------------------------------------------------
hochzahlen:
if gang = 6 then goto ganganzeige
if gang => 2 then goto step1
gang = 2
Bitte, Code-Tags verwenden ! (PicNick)
habe ein kleines prog geschrieben welches auf einem mega32 gut läuft. Dann hatte ich versucht es auf einen Attiny2313 zum laufen zu bringen, mit der Fehlermeldung: Error 344..... Programm will overwrite bootloader!
Kann mir jemand helfen das zu verstehen?! Wie kann ich unter Bascom herausfinden wie groß mein Programm ist und ob dies mein Controller schluckt....
Sourcecode hier:
$regfile = "attiny2313.dat" ' specify the used micro
$crystal = 12000000 ' used crystal frequenz
'****Configuration LCD***********
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.0 , Rs = Portd.1
Config Lcd = 16 * 1 'configure lcd scree
Initlcd ' initialisiere LCD
Cls
'****Configuration DS1820***********
Config 1wire = Portb.7
Dim I As Byte
Dim Id1(8) As Byte
Dim Id2(8) As Byte
Dim Ar1(2) As Byte
Dim Ar2(2) As Byte
Dim Ar(2) as Byte
DIM Temperatur1 as Integer
DIM Temperatur2 as Integer
Dim Halb as Byte 'use this pin as 1wire
'****Configuration Gangzählen*********
Dim Gang As Byte , Z as word 'Gangzähler
Config Pinb.4 = Input 'Ein Pin (PA0) wird als Eingang definiert
N Alias Pinb.4
Config Pinb.6 = Input
Rauf Alias Pinb.6
Config Pinb.5 = Input
Runter Alias Pinb.5
DDRB = &B11111111
Do
if n = 1 then gang = 0
Debounce Runter , 1 , runterzahlen , sub
If Gang => 2 Then Goto Zaelen 'wenn Poti nach oben, erhöhe Seitenzähler
Zaelen:
Debounce Rauf , 1 , hochzahlen , sub
Ganganzeige:
Cursor Off
Locate 1 , 15
Lcd "G"
Locate 1 , 16
Lcd ; Gang
Incr Z
If Z > 501 then Z = 0
If Z > 500 then Goto TEMP1
Loop
End
'----------------------------------------------------------------------------------------------------------------------------
Temp1:
Id1(1) = 1wsearchfirst()
Id2(1) = 1wsearchnext()
'***Sensor 1************************************************* ***********************
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id1(1) , 8 'Id von Sensor 1
1wwrite &H44 'Convert T
Waitms 150 '300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id1(1) , 8 'id von sensor 1
1wwrite &HBE
For I = 1 To 2
Ar(i) = 1wread(1)
Next
Deflcdchar 0 , 4 , 10 , 10 , 4 , 32 , 32 , 32 , 32 ' replace ? with number (0)
Locate 1 , 1
Temperatur1 = Ar(1)
If Ar(2) > 0 Then Temperatur1 = 0 Else Shift Temperatur1 , Right
Lcd "T1" ; Temperatur1 ; ".";
Halb = Ar(1) And 1
If Halb = 1 Then Lcd "5" Else Lcd "0"
'Locate 1 , 5
'LCD ; Chr(0) ; "C"
'*****Sensor2*****
'Waitms 500
1wreset 'reset
1wwrite &H55 'Match Rom command
1wwrite Id2(1) , 8 'Id von Sensor 2
1wwrite &H44 'Convert T
Waitms 150 ' 300 'warten bis convert T fertig ist
1wreset 'reset
1wwrite &H55 'match rom command
1wwrite Id2(1) , 8 'id von sensor 2
1wwrite &HBE 'scratchpad lesen
For I = 1 To 2
Ar(i) = 1wread(1)
Next
Deflcdchar 0 , 4 , 10 , 10 , 4 , 32 , 32 , 32 , 32 ' replace ? with number (0)
Locate 1 , 8
Temperatur2 = Ar(1)
If Ar(2) > 0 Then Temperatur2 = 0 Else Shift Temperatur2 , Right
Lcd "T2" ; Temperatur2 ; ".";
Halb = Ar(1) And 1
If Halb = 1 Then Lcd "5" Else Lcd "0"
'Locate 2 , 5
'LCD ; Chr(0) ; "C"
Goto ZAELEN
'Return
'---------------------------------------------------------------------------------
runterzahlen:
if gang = 0 then gang = 1
if gang > 2 then decr GANG
return
'-------------------------------------------------------------------------------
hochzahlen:
if gang = 6 then goto ganganzeige
if gang => 2 then goto step1
gang = 2
Bitte, Code-Tags verwenden ! (PicNick)