Windgeschwindigkeit messen

Hi Roger,

schick mir mal Deine Beschaltung und Deine Fuse-Einstellungen. Ich habe nun wirklich das Gefühl, dass es an den Fuses liegen könnte.

Grüße,
Ma
 
Hallo Markus,

das hab ich bein dem Fusebits bei mir ausgelesen:

Jetzt wo ich das so sehe kommt mir das aber auch komisch vor. Müssten da nicht ein paar Haken mehr gesetzt sein. Ich hab ein Screenshot wo die SUT0, SUT1 und CKSEL3 auch einen Haken haben. Hab ich vielleicht aus versehen einen neuen in die Fassung gesteckt :banghead: . Wie müssten den die Fuses bei externem Quartz sitzen?

Danke schon mal :)

Gruß
Roger
 

Anhänge

  • fuse.TIF
    73 KB · Aufrufe: 15
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
 
Hi,

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.
auf dem Pollin-Board ist Q1 ein 8MHz-Quarz und für den 20pol-Sockel (Tiny2313)
zuständig. Q2+Q3 sind 16MHz und für den 28pol+40pol-Sockel da. Also für den
Mega8 und Mega16/32.

Gruß
Dino
 
Dino hat Recht :).

Er läuft tatsächlich mit 16Mhz und deshalb natürlich auch die 4 Sekunden zwischen den Overflow Interrupts statt 8 Sekunden. Hab den Baustein auf dem Steckbrett mit 8 Mhz laufen und schon geht's. Ich muß jetzt nur mal prüfen warum ich das bei dem Timing für die 7 Segment Anzeigen nicht bemerkt habe.

So als nächstes werd ich dann mal das Ding mit 7 Segmentanzeige am Rad testen da kommen dann bestimmt wieder fragen ;) .

Danke vorerst ....

Gruß
Roger
 
Ha, kaum macht "Mann" es richtig, schon funktioniert es :)

Aber hatten wir es Dr nicht schon gesagt und auch im Code bewiesen ....

Grüße,
Markus
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)