mit deiner a987 sieht ja falsch aus . hier mal ein screenshot
Liebe Forummitglieder,
vielleicht könnt ihr mir helfen!?
Und zwar habe ich gerade meinen µC programmiert:
'===Blinkende LED===
$regfile = "m32def.dat"
$crystal = 1000000
$baud = 9600
Config Pinc.3 = Output
Led Alias Portc.3 'Für ein Port wird ein Name verwendet.
Dim I As Byte 'Eine Variable wird als ein Byte abgespeichert.
I = 250
Do
Led = 1 'Led leuchtet
Waitms I
Led = 0 'Led leuchtet nicht
Waitms I
Print "I" ; I
Loop
End
- Mit einem Oszi messe ich nicht 500 ms Periodendauer, sondern 60 ms.
Die High und Low Pegeln sind idendisch. Sauberer Rechtecksignal.
- Im Terminal werden nur solche Buchstaben geschrieben "ù".
- Der Fusebit A987. 0100: Int RC oscillator, BOD enabled.
- In den Optionen ist die Baudrate und die Frequenz richtig eingestellt.
- Im Programm auch, naja und im µC ist sie 1 MHz. Hoffe ich zumindest!
Weiß jemand woran es liegen könnte?
mit deiner a987 sieht ja falsch aus . hier mal ein screenshot
Hallo,
Ich denke auch das du die Fusebits nicht richtig eingestellt hast.
Da ich mich aber bei Bascom mit den Fusebits nicht auskenne, probiere ich mal dir zu Erklären wie ich mir das Vorstelle.
Du hast 4 Zeichen zur verfügung (0000) jede dieser Einstellungen entspricht einer Zahl zur Basis 2.
Also von links gelesen 2³,2²,2^1,2^0 das entspricht dann 8,4,2,1 (wenn mit 1 gesetzt).
Du hast also nach dieser Theorie 4 MHz eingestellt und deine gemessenen 60ms x 4 ~ 250ms.
Stelle also die Fuses mal so ein wie bereits gepostet.
Eine Frage stellt sich mir dabei allerdings, der µC kann ja nicht einfach 4MHz Intern erzeugen. Hast du einen Externen Quarz am µC??
Hallo
Ich habe einen 16 MHz Quarz angeschlossen, aber wenn ich den internen Takt nutze, spielt das doch keine Rolle. Andere Quarze habe ich.
Seltsam ist auch, wenn ich den Low Fusebit A987 auf 1111 stelle, also auf den Quarz, dann funktioniert überhaupt nichts mehr. Außer das ich diesen Fusebit wieder zurück stellen kann, was nicht sein darf !!!
Sorry kolisson, dein screenshot wurde beim ersten mal nicht angezeigt.
Ich habe jetzt meine Fuses geändert, aber konnte keine Veränderung feststellen.
also ... so wie ich das sehe:
1 ich hab wohl ne andere version von bascom. bei meinem ersten screenshot steht da ja KLA987. dise postition hast du ja nicht. durch vergleichen der screenshots konnte ich sehen, dass bei dir KL und A987 schlichtweg auf zwei positionen verteilt sind.
interessant ist ja jetzt nur mal die A987, die du auf 0100 stehen hast. dies würde ich mit internem rc mit 8mhz interpretieren. für 1mhz muss man laut meiner version aber 0001 haben. also in die csel eine 0001.
Bei mir ist der Fusebit A987. 0001: Ext Clock, BOD enable.
Dann habe ich zufällig den Fusebit KL auf 6CK, 65mS slow rising enable eingestellt. Jetzt funktioniert alles wie es soll!
Weiß jemand wo man im Datenblatt von ATmega32 finden kann, wie die Fusebits ganz am Anfang eingestellt waren bzw. ob es da so eine Liste gibt? Wo diese erklärt werden weiß ich.
Es könnten ja noch mehr Fuses verstellt sein.
Danke euch allen.
Einen mehr oder weniger wichtige Frage:
Wo sind denn die Screenshots?
Also da bin ich mal wieder.
Leider funktionierte es nur einmal, dann wieder nicht.
Wenn ich den Fusebit A987. 0100 nutze, und überall 8 MHz einstelle, dann wird sogar der Wert I im Terminal richtig angezeigt.
Wieso klappt es mit dem Quarz nicht?
Kann es sein, siehe hier: https://www.roboternetz.de/phpBB2/viewtopic.php?t=30555
dass der M32 den Quarz nicht mehr richtig anregen kann?
Mir fällt einfach nichts mehr ein.
Benutzt du denn nu den Internen oder einen Externen Quarz??
Falls du dir bei dem Externen nicht sicher bist ob dieser richtig Arbeitet,
wechsele Ihn doch einfach und guck ob es was gebracht hat.
intern gibts keinen Quarz, schön währs
Vor den Erfolg haben die Götter den Schweiß gesetzt
Lesezeichen