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:
Code:
$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)