Hallo Roger,
Bei Deiner Konfiguration ist unter der Annahme dass "Checked items means programmed (bit = 0)" richtig ist:
HighByte = 11000000 = 0xC0
LowByte = 11111111 = 0xFF
Also....
HighByte:
RSTDISBL = OFF da Bit = 1
WTDON = OFF da Bit = 1
SPEIN = ON da Bit = 0
CKOPT = ON da Bit = 0
EESAVE = ON da Bit = 0
BOOTSZ1 = ON da Bit = 0
BOOTSZ0 = ON da Bit = 0
BOOTRST = ON da Bit = 0
Hmmmm....
BOOTRST bestimmt an welche Adresse nach einem Reset gesprungen wird. Unprogrammiert (1) springt der Con-troller nach einem Reset an Adresse $0000. Wird das Fusebit programmiert springt der Controller nach einem Reset an den Beginn des Bootloaders. Die Adresse hängt vom Controller und von den Einstellungen der BOOTSZ Fusebits ab.
Mit BOOTSZ wird die Größe des Speicherbereiches bestimmt der für den Bootloader reserviert wird. Die Größe ist abhängig vom Controllertyp. Dieser Speicherbereich befindet sich immer am Ende des Flash Adressraumes.
Ich verstehe nicht, warum Du die Bootloader-Funktionalität aktiv geschaltet hast. Ist das gewollt? So jedenfalls interpretiere ich Deine Fuses.
Weiter...
LowByte:
BODLEVEL = OFF da Bit = 1
BODEN = OFF da Bit = 1
SUT1 = OFF da Bit = 1
SUT0 = OFF da Bit = 1
CKSEL3 = OFF da Bit = 1
CKSEL2 = OFF da Bit = 1
CKSEL1 = OFF da Bit = 1
CKSEL0 = OFF da Bit = 1
Bedeutet, Du hast Brown-Out aus und die detection auf 2,7V.
Bedeutet weiter, Du läufst auf "Ext. Crystal/Resonator High Freq.; Start-up time: 16K CK + 64 ms"
Soooo....
Prinzipiell sollte der Mega auch mit Deiner Einstellung anlaufen, da CKSEL3..0 = 1 sind. Ich würde prüfen ob Du den Bootloader benötigst.
Weiter würde ich eher mal prüfen, ob Du die Jumper auf dem Pollin-Bord richtig gesetzt hat. Mir scheint es nach Analyse so, da Du den Mega mit 8 MHz konfiguriert hast (das hast Du in BASCOM eingestellt mit $chrystal denn Fuses dazu gibt es nicht), dass der Mega aber mit 16 MHz taktet. Das würde für die halbierte Zeit sprechen bei dem Timer sprechen.
Anyway; unter der Annahme, dass Du den externen 8 MHz Quarz aktiv hast würde ich die Fuses so setzen:
Fuse HighByte = 0xEF = 0b11101111 (Achtung invertierte Logik)
Fuxe LowByte = 0x3F = 0b00111111 (Achtung invertierte Logik)
Bedeutet...
HighByte:
RSTDISBL = Off, also Bit = 1
WTDON = Off, also Bit = 1
SPIEN = ON, also Bit = 0
CKOPT = ON, also Bit = 0
EESAVE = Off, also Bit = 1 (es sei denn Du brauchst EESAVE)
BOOTSZ1 = Off, also Bit = 1
BOOTSZ0 = Off, also Bit = 1
BOOTRST = Off, also Bit = 1
LowByte:
BODLEVEL = ON, also Bit = 0
BODEN = ON, also Bit = 0
SUT1 = Off, also Bit = 1
SUT0 = Off, also Bit = 1
CKSEL3 = Off, also Bit = 1
CKSEL2 = Off, also Bit = 1
CKSEL1 = Off, also Bit = 1
CKSEL0 = Off, also Bit = 1
Ich würde aber jetzt eher mal prüfen, ob Du die Jumper auf dem Pollin-Board richtig gesetzt sind und der Mega mit dem takt läuft wie er laufen soll. Ggf. schalte die Fuses doch mal auf internen 8MHz Clock um und schaue Dir die SW dann nochmals an.
Mir scheint es ansonsten so, dass Du den Mega mit 8 MHz konfiguriert hast, Ihn aber mit 16 MHz taktest. Das würde für die halbierte Zeit sprechen.
Intern kann der Mega nur 8 MHz, damit läufst Du nicht in die gefahr auf 16 MHz zu rutschen
Ich hoffe das hilft Dir weiter!
Grüße,
Markus