- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: ATmega32 funktioniert nicht ganz wie ich will.

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2006
    Ort
    Datteln
    Alter
    37
    Beiträge
    149

    ATmega32 funktioniert nicht ganz wie ich will.

    Anzeige

    LiFePo4 Akku selber bauen - Video
    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?

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    mit deiner a987 sieht ja falsch aus . hier mal ein screenshot
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken fu_154.jpg  

  3. #3
    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??

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2006
    Ort
    Datteln
    Alter
    37
    Beiträge
    149
    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 !!!
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lock-_und_fusebits_632.jpg  

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2006
    Ort
    Datteln
    Alter
    37
    Beiträge
    149
    Sorry kolisson, dein screenshot wurde beim ersten mal nicht angezeigt.

    Ich habe jetzt meine Fuses geändert, aber konnte keine Veränderung feststellen.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken lock-_und_fusebits1.jpg  

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    08.11.2006
    Ort
    olargues
    Beiträge
    776
    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.

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2006
    Ort
    Datteln
    Alter
    37
    Beiträge
    149
    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?

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.08.2006
    Ort
    Datteln
    Alter
    37
    Beiträge
    149
    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.

  9. #9
    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.

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Vitis
    Registriert seit
    06.01.2005
    Ort
    Südpfalz
    Alter
    50
    Beiträge
    2.253
    intern gibts keinen Quarz, schön währs
    Vor den Erfolg haben die Götter den Schweiß gesetzt

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen