- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 28

Thema: ATtiny13A: Wo kommt der eine Takt her?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von Bernd_Stein
    Registriert seit
    19.09.2008
    Ort
    Deutschland : Nordrhein-Westfalen ( NRW )
    Alter
    53
    Beiträge
    407

    ATtiny13A: Wo kommt der eine Takt her?

    Hallo zusammen,

    wieder habe ich ein Problem. Wo kommt der eine Takt her ?

    Eins vorweg :

    Theoretisch 4,8Mhz, praktisch ist der interne RC-Oszilator aber nur mit
    3,2Mhz, bei meinem ATtiny13A, bei 5V und ca. 20°C unterwegs. Um dies
    festzustellen, habe ich meinen üblichen Trick verwendet ( Endlosschleife
    -> Pin toggeln und ausmessen )

    Heißt: *Ein Takt sind ca. 312,500ns *

    Bei dem LA-Ausschnitt ist zu sehen, dass die LED-Gelb ( PB2 ), 2,333µS
    nach der steigenden Flanke von PB1 folgt.

    Klicke auf die Grafik für eine größere Ansicht

Name:	ATtiny13A_Zeitspanne.jpg
Hits:	14
Größe:	19,1 KB
ID:	34932

    Für mein daherhalten, erzeugt diese Codesequenz 4 oder 6 Takte, bis die
    steigende Flanke von LED-Gelb kommt:
    _main:
    sbis PINB,1
    rjmp _main
    sbi LED_PORT,led.ge ;LED-Gelb einschalten ( TEST )################################################## #######################


    6T wären 1,875µs. Bleiben also noch 458ns, was locker ein Takt ist.
    Deshalb meine Frage : "Wo kommt der eine Takt her?"
    ;
    .include "Header.inc" ;Label und Werte Zuweisungen
    .include "Hardware.inc" ;Hardware Label Zuweisungen
    ;
    ;Programmstart nach RESET ( Interrupt Vektoren Tabelle )
    ;
    .CSEG ;Was ab hier folgt kommt in den FLASH-Speicher
    .ORG $0000 ;Programm beginnt an der FLASH-Adresse 0x0000..

    rjmp _reset ;..mit der RESET-Vektortabelle

    .include "IRQt13.inc" ;Restliche Interrupt Vektortabelle

    .ORG INT_VECTORS_SIZE ;Programmadresse nach den ganzen IRQ-Vektoren
    ;
    ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIII
    ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIII
    ;I Erstinitialisierungen
    ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIII
    ;IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIII
    ;
    _reset:
    ;
    ;Ports Erstkonfiguration
    ;
    sbi DDRB,led.pla ;PORT-Bit als Ausgang f. PLA-LED
    sbi DDRB,led.ora ;PORT-Bit als Ausgang f. SLEEP-LED
    sbi DDRB,led.ge ;PORT-Bit als Ausgang f. TEST-LED
    ;
    ;Variablen initialisieren ( r0-r31 haben unbestimmten Inhalt )
    ;
    ;
    ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    ;H Hauptprogrammschleife
    ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    ;HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    ;
    ;sbi PINB,led.pla ;Systemtakt -> Gemessene Frequenz..######################################## ##############################
    ;rjmp pc-1 ;..mal 8 nehmen ################################################## #######################

    _test:
    cbi PORTB,led.ora ;LED-Orange einschalten
    sbi PORTB,led.ora ;LED Orange ausschalten
    ldi xl,8
    clr b

    _main:
    sbis PINB,1
    rjmp _main
    sbi LED_PORT,led.ge ;LED-Gelb einschalten ( TEST ) ################################################## #######################
    cbi LED_PORT,led.ge ;LED-Gelb ausschalten ( TEST ) ################################################## ######################
    _main_1:
    sbic PINB,1
    rjmp _main_1
    sbi LED_PORT,led.pla ;LED-PLA einschalten ( TEST ) ################################################## #######################
    cbi LED_PORT,led.pla ;LED-PLA ausschalten ( TEST ) ################################################## #######################
    ;
    ;Systemtakt ( 4,8MHz ) durch X teilen
    ;
    in a,CLKPR ;Clock Prescaler Register laden..
    sbr a,1<<CLKPCE ;..Sicherheitsprozedur..
    cbr a,1<CLKPS3|1<<CLKPS2|1<<CLKPS1|1<<CLKPS0;..
    out CLKPR,a ;..durchfuehren..
    ldi a,$7F ;..CLKPCE loeschen..
    and a,b
    out CLKPR,a

    inc b
    cpse b,xl
    rjmp _main

    rjmp _test


    ; rjmp PC ;Endlosschleife

    .EXIT ;Ende des Quelltextes


    Bernd_Stein
    Geändert von Bernd_Stein (05.04.2020 um 17:58 Uhr) Grund: Wollte den Schreibfehler bei den Stichwörtern wegmachen, weiß aber nicht wie das geht
    CRS Robotics A255, TRONXY X3A, TinkerCAD, c´t-Lab, ProfiLab Expert, AVR8 Assembler

Ähnliche Themen

  1. [ERLEDIGT] ATtiny13A: Pin Change Interrupt vs. INT0
    Von Bernd_Stein im Forum Assembler-Programmierung
    Antworten: 7
    Letzter Beitrag: 17.04.2020, 17:17
  2. [ERLEDIGT] Empfängersignal mit ATtiny13A erkennen
    Von Lichti01 im Forum Elektronik
    Antworten: 14
    Letzter Beitrag: 24.06.2017, 08:19
  3. ATTiny13A Schalter abfragen/entprellung mit Variablen
    Von Denn Is im Forum C - Programmierung (GCC u.a.)
    Antworten: 19
    Letzter Beitrag: 01.07.2014, 12:21
  4. Attiny13a RS232
    Von flecralf im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 09.10.2013, 19:27
  5. CLK Takt höher als Datenbus Takt (SDRAM)
    Von saoirse im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 25.08.2007, 18:12

Stichworte

Berechtigungen

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

12V Akku bauen