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

Thema: Problem bei Frontblitzprogrammierung

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,

    Also wenn die 1,11 und 1,12 Hz nicht so genau stimmen müssen, würde ich es so in etwa machen:
    Ist nur ein Gerüst. Die ISRs werden in etwa den Zeitabständen aufgerufen. Durch Setzen des Prescaler auf 2048 kann man die Frequenz verdoppeln wenn es für das Toggeln der LEDs nötig ist.

    Code:
    $regfile = "attiny85.dat"
    $crystal = 1000000
    $framesize = 24
    $swstack = 32
    $hwstack = 34
    
    Config Portb.3 = Output
    Config Portb.2 = Output
    Config Portb.4 = Output
    Config Portb.1 = Output
    
    Ocr1a = 100                                                 'Initialisieren, damit nicht sofort nach Starten des Timers ein Interrupt ansteht
    Ocr1b = 200                                                 'Initialisieren, damit nicht sofort nach Starten des Timers ein Interrupt ansteht
    
    Config Timer1 = Timer , Prescale = 4096
    '# Mit Prescaler 4096 wird Timer1 mit 1000000 / 4096 = 244,140625 Hz getaktet
    '# Tcnt1 wird alle 1 /(1000000 / 4096) = 0,004096s erhöht
    
    On Oc1a Timer1serv
    On Oc1b Timer2serv
    
    Enable Oc1a
    Enable Oc1b
    
    Enable Interrupts
    
    Do
    Loop
    
    Timer1serv:
    Ocr1a = Ocr1a + 220                                         'nächster Interrupt nach 220 * 0,004096s = 0,90112s (1,097Hz)
    '.
    'LEDs schalten
    Return
    
    Timer2serv:
    Ocr1b = Ocr1b + 218                                         'nächster Interrupt nach 218 * 0,004096s = 0,892928s (1,1199Hz)
    '.
    'LEDs schalten
    Return
    OCR1A und B werden überlaufen, wenn die Addition über 255 hinausgeht. Das ist gewollt, da das TCNT zu den OCR1x Registern trotzdem immer die gleiche Zeit benötigt. Tritt bei 250 ein Compare-Interrupt auf, wird zu 250 eine zB 220 addiert. Im Register steht dann wg Überlauf 214. TCNT muß von 250 bis 255 über 0 nach 214 laufen - Zeitabstand gewahrt. Schön im Simulator zu betrachten.

    Gruß
    Searcher

    PS Bitte gezielt fragen, da ich nicht weiß welche Voraussetzungen du hast.
    Hier noch eine Seite in Deutsch, wenn Datenblatt Englisch ein Problem ist:
    http://halvar.at/elektronik/kleiner_bascom_avr_kurs
    Geändert von Searcher (20.04.2016 um 12:21 Uhr) Grund: register in Timer2serv berichtigt
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Ähnliche Themen

  1. ATMega32 UART problem --> Problem gelöst
    Von ChristophB im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 18:45
  2. Problem mit Atmega644P Erkennung (Bascom-Versions-Problem)
    Von Rohbotiker im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 11.08.2008, 18:52

Berechtigungen

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

Labornetzteil AliExpress