-         
Ergebnis 1 bis 4 von 4

Thema: Colck Prescale Register

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111

    Colck Prescale Register

    Anzeige

    nabend
    wie oder anders kann man das CLKPR Register mit Bascom ändern?

    erst mal ne beschreibung worum es geht....
    -------Programm-------------
    $regfile = "attiny44.dat"
    $crystal = 8000000
    Config Porta.0 = Output
    Config Portb.2 = Output
    Clkpr = &B10000000
    R1 Alias Porta.0
    Portb.2 = 1
    Do
    R1 = 1
    Wait 1
    R1 = 0
    Wait 1
    Loop
    End-----------------------

    zu Hardware,
    die beiden Ausgänge sind extern UND verknüpft und wenn beide "1" sind leuchtet eine led.

    zum Problem,
    nach meinem verständnis solte die led im sekunden takt leuchten, tut sie aber nicht. Die led leuchtet im 8 sekunden takt. Nach meiner vorstellung hatt die zeile "Clkpr = &B10000000" demnach nicht den erwünschten effekt den Clock Prescaler auf eins zu setzen. Aber warum nicht??

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hi,

    schau mal in den Fuses ob das CKDIV8 noch aktiv ist, denn das teilt den Takt nochmal durch 8 !

    PS:
    um den Wert per CLKPR zu ändern muss man das 2mal machen, erst mit CLKPCE gesetzt, beim 2. mal gelöscht, siehe DB !

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    32
    Beiträge
    4.255
    Die CKDIV8-Fuse führt zu keiner zweiten Taktteilung. Sie ändert nur den Startwert des Prescalers.

    Die Sequenz zum ändern:
    Clkpr = &B10000000 //änderung freischalten
    Clkpr = &B0000xxxx //Prescaler setzen

    Diese Befehle müssen unmittelbar hintereinander ausgeführt werden, daher sollten die Interrupts vorher abgeschaltet werden.

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied Avatar von mycroc
    Registriert seit
    29.11.2006
    Ort
    Bochum
    Beiträge
    111
    Danke für die schnellen Antworten. Ich hatte leider erst heute zeit zum testen gehabt und
    Clkpr = &B10000000 //änderung freischalten
    Clkpr = &B0000xxxx //Prescaler setzen
    Funktioniert!
    Zum DB noch mal meine Meinung, ich glaube das das problem die Sprache ist und das nicht nur bei mir. Gäbe es Dattenblätter in Deutsch würden sicher sehr viele fragen gar nicht auftauchen.

Berechtigungen

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