PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Bascom $initmicro und $noramclear zusammen geht nicht



Hans_K
25.04.2010, 19:33
Hallo,

ich habe ein Problem mit der Compilierung von folgendem kleinen Testprogramm.

'Test Initmicro

$crystal = 8000000
$regfile = "m644def.dat"
$baud = 38400

$initmicro
$noramclear

Dim A As Byte

Do
A = 1
Loop



_init_micro:

wdr

Return



Verwende ich $initmicro und $noramclear zusammen erhalte ich beim compilieren folgende Fehlermeldung:
Access Violation At Address 01001b48 In Module 'BASC-AVR.DLL'. Read of address 00080197.

Verwende ich jede Anweisung alleine klappt's.

Bitte testen. Danke

peterfido
25.04.2010, 20:58
Der Fehler kommt bei mir auch. Du kannst jedoch ganz am Anfang des Programmes per


$asm
wdr
$end asm
$crystal = 8000000
$regfile = "m644def.dat"
$baud = 38400
...
...


den Watchdog zurücksetzen.

Hans_K
26.04.2010, 18:05
Hallo,

Danke fürs Testen.

Dieses wdr wird erst nach den compilerinternen Initialisierungen, wie Initlcd eingefügt.

Dies ist jedoch beim Atmega644 zu spät. Der Controller kommt nach einem Watchdog-Reset nicht mehr zum laufen, da anscheinend der Watchdog weiterläuft.

peterfido
27.04.2010, 18:49
Das Beispiel zum Watchdog deaktivieren in den ersten 4 Taktzyklen aus dem Datenblatt läuft bei mir, wenn ich den Code ganz an den Anfang setze. Evtl den WD etwas "träger" konfigurieren...

Hans_K
28.04.2010, 17:58
Hallo,

wenn ich $noramclear weglasse wird automatisch ein wdr am Anfang des Codes eingefügt und das Programm läuft problemlos an.

Ein wdr am Anfang meines Programm wird aber erst nach den Initialierungen(LCD) eingefügt und das Programm läuft nach einem Watchdogreset nich mehr an.

Da ich aber $noramclear nutzen möchte, benötige ich auch $initmicro.