- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Zeitschleife Mikrocontroller

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.08.2015
    Beiträge
    16

    Zeitschleife Mikrocontroller

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Forumnutzer,

    ich habe folgende Code für eine Zeitschleife aus AVR: http://www.mikrocontroller.net/artic...-Tutorial:_LCD

    Längere Pause für manche Befehle
    delay5ms: ; 5ms Pause
    ldi temp1, $21
    WGLOOP0: ldi temp2, $C9
    WGLOOP1: dec temp2
    brne WGLOOP1
    dec temp1
    brne WGLOOP0
    ret ; wieder zurück


    Was hier vorgeht, habe ich soweit verstanden. Jetzt möchte ich auch eine Zeitschleife für 5ms Pause von 16 Mhz (Attiny 26). Das Problem liegt bei der Bestimmung der Durchläufe. Kann mir jemand erklären, wie ich diese bestimmen kann? T=((1)/!6Mhz)= 65,2 ns-->(5ms)/(65,2ns)= 80000 Taktzyklen notwendig...weiter weiß ich nicht


    Mfg

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von avr_racer
    Registriert seit
    01.04.2014
    Ort
    MecklenburgVorpommern
    Beiträge
    174
    Man erkennt das du einen AVR programmierst... der hat bestimmt ein Datenblatt in dem unter InstructionSet, alle Befehle nachschauen kannst.
    Es wird anhand der Takte die Zeitschleife bestimmt und mit 80000 Taktzyklen bist du schon mal auf dem richtigen Weg....

    Dec hat glaube ich 1Takt und brne = 2 Takte, 1Durchlauf = 3Takte * 62,5ns = 187,5ns

    16Mhz keine 65,2ns sondern 62,5ns, Zyklus bitte nachgucken habe gerade kein DB zur Hand...

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Die Instruction Set Summary befindet sich übrigens auf Seite 169.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    .. Zeitschleife für 5ms .. (Attiny 26) .. Längere Pause für manche Befehle .. Was hier vorgeht, habe ich soweit verstanden .. 80000 Taktzyklen notwendig ..
    Ok, einmal hier der Link zum Datenblatt 1477K–AVR–08/10 als *.pdf für den tiny26.

    Vorsicht bei 80 000 Zyklen. Der tiny26 ist ein 8Bitter, d.h. seine Register sind 8 Bit breit, können also nur bis max 255 zählen. Zwar gibt es 16bittige Register
    Zitat Zitat von Datenblatt 1477K zum tiny26
    .. Six of the 32 registers can be used as 16-bit pointers for indirect memory access. These pointers are called the X-, Y-, and Z-pointers ..
    aber eben nur für Adressaufgaben. Macht hier (fast) nix, da zu ja zwei geschachtelte Zählschleifen bis max je 255 benutzt. Mit temp1 = 254 und temp2 = 157 wirst Du bei 16 MHz Controllertakt haarscharf um die 80 000 Zyklen liegen.
    >> Keine Gewähr, keine Haftung - kein garnix.
    Geändert von oberallgeier (04.10.2015 um 13:51 Uhr)
    Ciao sagt der JoeamBerg

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von White_Fox
    Registriert seit
    04.10.2011
    Beiträge
    1.473
    Wobei es vollkommen egal ist wie weit der Tiny mit einem Register zählen kann. Wenn man die Schleife in die länge ziehen will kommt vor dem Sprung noch ein Nop, und noch eins...und wenn das nicht reicht baut man noch eine Schleife drumherum:

    Code:
    In R16, 255
    In R17, 255
    
    Schleife1:
        dec R16
        breq R16, 0
        rjmp Ende
    
    Schleife2:
        dec R17
        breq R17, 0
        rjmp Schleife2
        breq R16, 0
        rjmp Schleife1
    
    Ende:
    So oder so ähnlich...hab schon ne Weile nicht mehr in ASM programmiert und bin abeitsbedingt grad leider etwas VBA-versaut.

Ähnliche Themen

  1. [ERLEDIGT] PIC Assembler: Zeitschleife funktioniert nicht
    Von Lutzacht im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 09.03.2014, 08:57
  2. [ERLEDIGT] Zeitschleife zu kurz....ATTiny2313
    Von oderlachs im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 10.03.2013, 16:10
  3. Taster mit Zeitschleife
    Von bnitram im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 28.05.2010, 19:01
  4. Zeitschleife
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 07.06.2006, 18:32
  5. Zeitschleife
    Von Exodus im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 01.06.2006, 15:34

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress