Gast
#2571078
Hallo, ich raffe es nicht.
Ich habe ein recht langes, komplexes Programm in BASCOM geschrieben.
Ich habe Stunden nach unerklärlichem Gesucht ....
So ähnlich habe ich auf MEGA8 schon oft gemacht.
Nun soll es ein MEGA16 sein.
Es sah so aus, als mache der 16er nach zufällig 8 bis 120 empfangenen
Zeichen einen RESET.
Tatsäclich verlässt er
DO
...
LOOP
Main:
...
GOTO MAIN
macht weiter bis zum Ende und kommt über den RESET wieder ???
Ich habe nun alles rausgenommen und xMale verschiedene 16er geflashed.
Im BASCOM Simulator läuft das, im 16er nicht.
Weder die double.lbx noch die TWI.lbx haben etwas damit zu tun.
man kann auch das auskommentieren.
Ob der UART buffered ist oder nicht, kein Unterschied...
BASCOM ist 1.11.9.0 Vollversion.
Hier der letzte Rest, der immer noch nicht geht...
$regfile = "M16def.dat" ' the used chip
' Master crystal
$crystal = 14745600
$baud = 38400 ' baud rate
$lib "double.lbx"
' We do not use software emulated I2C but the TWI.
$lib "i2c_twi.lbx"
$hwstack = 40 ' use 40 for the hardware stack
$swstack = 40 ' use 40 for the SW stack
$framesize = 40 ' use 40 for the frame space
Config Serialin = Buffered , Size = 10
Config Serialout = Buffered , SIZE = 10
Dim Command AS BYTE
Enable Interrupts
MAIN:
' scan serial port
command = inkey()
If command <> 0 Then
'Print CHR(command);
END IF
GOTO MAIN
Print "What a shit"
' before your come back in from RESET &%)/"$/&)$
' and it will print this, more or less random after receive on UART