- LiFePO4 Speicher Test         
Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 30

Thema: Softwareseitige UHR ?

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    29.05.2005
    Ort
    Rott am Inn
    Alter
    36
    Beiträge
    373
    Anzeige

    Powerstation Test
    hallo,
    der prescale geht max. bis 1024 er teilt den quarztakt durch diese zahl und verwendet ihn dann für den timer.
    du musst den timer auf voreinstellen.
    Code:
    on timer1 ontimer1    'interrupt-rputine für timer 1
    config timer 1 = timer , prescale = 256    'Takt ist Quarz / 256
    enable timer1
    enable interrupts
    
    do 
    loop
    
    ontimer1:
       timer1 = XXXXX    'dein voreingestellter wert
       Sekunde = Sekunde + 1
    return
    mfg franzl

  2. #12
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Gibt es kein Tutorial oder ein fertiges Projekt / eine Formel die mir sagt wie der Prescaler bei 16 MHz eingestellt sein muss das er jede Sekunde interruptet.

    Mfg
    Tobi

  3. #13
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.02.2005
    Ort
    Hamburg
    Alter
    38
    Beiträge
    4.255
    Zitat Zitat von uwegw
    Im Wiki steht schon der passende Code dafür:
    https://www.roboternetz.de/wissen/in...scom_und_Timer
    (auch mal den Artikel komplett lesen!)

  4. #14
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Auch auf der Gefahr in das dir der Link bekannt vorkommt http://www.rowalt.de/mc/avr/avrboard/06/avrb06.htm
    Nichtnur Artikel komplett lesen, sondern auch Links die man als Tipp bekommt!

    Zum Tut für eine Sekunde bei 16MHz:
    Im Donwloadbereich gibt es ein Programm, mit dem du die Timer für gänige Taktfrequenzen und alle möglichen Auslösezeiten berechnen lassen kannst.
    Es nennt sich RNAVR. Es erzeugt gleich einen Bascomcode.

    PS: Beim Mega128 kannst du auch ein Uhrenquarz anschliessen und hast damit eine vom Programm unabhänige und genauere Uhr. Damit wird dein Programm auch nicht immer durch den Timer unterbrochen. Evtl brauchst du ihn ja auch noch für was anderes?!

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    sry... danke

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    Ich hab jetzt noch ein kleines Prob bei der Erstellung des Zeitstrings:
    Code:
    Dim Tresult As String * 8
    Dim Dresult As String * 8               
    
    Dim D1 As String * 2
    Dim D2 As String * 2
    Dim D3 As String * 2
    
     If Second < 10 Then D1 = "0" + Hex(second) Else D1 = Hex(second)
     If Minute < 10 Then D2 = "0" + Hex(minute) Else D2 = Hex(minute)
     If Hour < 10 Then D3 = "0" + Hex(hour) Else D3 = Hex(hour)
    
     Tresult = Hour + ":" + Minute + ":" + Second
    Hex wandelt einen numerischen Wert in einen String (laut Hilfe)

    Das funktioniert leider nicht richtig was mache ich jetzt schon wieder falsch. Dazu sagt das RN-Wissen leider auch nichts.

    Ich bekomme stadt bspw. 03:24:01 leider nur 3:24:1 und das zusammenführen des tresults klappt auch nicht.


    Mfg
    Tobi

  7. #17
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Schau dir mal die Befehle Format und Fusing an.

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    funktioniert leider nicht was mach ich falsch:

    Code:
     D1 = Format(hex(second) , "00") 'Hier kommt auch bei 3 nur 3 statt 03
     D2 = Format(hex(minute) , "00")
     D3 = Format(hex(hour) , "00")
    
     Tresult = Hour + ":" + Minute + ":" + Second 'Hier kommt ein Compilerfehler E242
    Mfg

  9. #19
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Wie kommst du eigentlich auf deine HEX-Zahlen???

    Was für eine Uhr benutzt du denn jetzt? Timer mit 32kHz-Quarz oder Timer im Sekundentakt in einer INT-Routine?

  10. #20
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    16.06.2005
    Ort
    Göppingen
    Beiträge
    360
    ich hab z.Zt. folgenden Code:
    Code:
    $regfile = "m128def.dat"
    $crystal = 16000000
    
    Config Timer1 = Timer , Prescale = 256
    Enable Timer1
    On Timer1 Tini
    Enable Interrupts
    Timer1 = 68569
    
    Dim Tresult As String * 8
    Dim Dresult As String * 8
    
    Dim D1 As String * 2
    Dim D2 As String * 2
    Dim D3 As String * 2
    Dim Year As Word
    Dim Month As Word
    Dim Day As Word
    Dim Hour As Word
    Dim Minute As Word
    Dim Second As Word
    
    minute = 58
    
    Do
     '....Hauptprogramm
    Loop
    End
    
    Tini:
     Timer1 = 68569
     Second = Second + 1
     If Second = 60 Then Gosub Addminute
     If Minute = 60 Then Gosub Addhour
     If Hour = 24 Then Gosub Addday
     If Day = 30 Then Gosub Addmonth
     If Month = 12 Then Gosub Addyear
    
    
     D1 = Format(hex(second) , "00")
     D2 = Format(hex(minute) , "00")
     D3 = Format(hex(hour) , "00")
    
     Tresult = Hour + ":" + Minute + ":" + Second
    
     Print Tresult
    Return
    
    Addminute:
     Minute = Minute + 1
     Second = 0
    Return
    
    Addhour:
     Hour = Hour + 1
     Minute = 0
    Return
    
    Addday:
     Day = Day + 1
     Hour = 0
    Return
    
    Addmonth:
     Month = Month + 1
     Day = 0
    Return
    
    Addyear:
     Year = Year + 1
     Month = 0
    Return
    Mfg
    Tobi

Seite 2 von 3 ErsteErste 123 LetzteLetzte

Berechtigungen

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

Solar Speicher und Akkus Tests