logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8][Bascom]Sterowanie fazowe - sterownik kotła

wyszkowskidaniel 17 Wrz 2010 10:02 2824 4
REKLAMA
  • #1 8519845
    wyszkowskidaniel
    Poziom 13  
    Witam. Robię sterownik (do teściowej :) ) do kotła z możliwością regulacji prędkości dmuchawy i jest drobny problem, stosuję wyświetlacz led który wyświetla róże parametry (multipleksowany jest i wykorzystuje do tego celu timer0), jak uruchomię przerwanie zewnętrzne INT0 to zaczyna mi strasznie migotać,tzn. wyświetlacz jest taktowany częstotliwością sieci... doczytałem się na necie że przerwania mają priorytety i pierwszy jest obsługiwany o najwyższym a potem kolejny. I mam pytanko, czy da się to jakoś pogodzić lub inną metodę zastosować?
    Programuję w bascomie, wszystko związanie z INT0 mam zaremowane, jak usunę rem to się robią jaja.

    Pozdrawiam

    Bardzo by mi na tym zależało aby jak najszybciej go uruchomić...
    
    
    Config Timer0 = Timer , Prescale = 64
    Enable Timer0
    On Timer0 Prztimer0
    'Config Int0 = Low Level
    'Enable Int0
    'On Int0 Zero
    
    Enable Interrupts
    
    
    
    Config Adc = Single , Prescaler = Auto , Reference = Internal
    Start Adc
    
    Config Watchdog = 2048        'uruchamiamy układ watchdog
    
    
    
    
    
    
    Do
    '***********************************                           
          'If Flaga_2ms = 1 Then
          Flaga_2ms = 0
    
          If Licznik_buzzer > 0 Then
          Decr Licznik_buzzer
          Buzzer = 1
          Else
          Buzzer = 0
          End If
    
          Gosub Wyswietlanie
    
    
    
          Gosub Przyciski
          'End If
    
    '***********************************                            ' co 1 s
          'If Flaga_1s = 1 Then
          Flaga_1s = 0
    
          If Licznik_wyjscia > 0 Then
          Decr Licznik_wyjscia
          End If
    
          If Poz_wysw <> 0 And Licznik_wyjscia = 0 Then         ' wychodzenie z emnu jeśli czas wyjścia = 0
          Poz_wysw = 0
          End If
    
    
    
          Mig = Not Mig
         ' If Czas_pomiaru < 20 Then                             'ma być 20 s
          'Incr Czas_pomiaru
          'If Czas_pomiaru = 20 Then
          'Czas_pomiaru = 0
          Gosub Pomiar
          'End If
          'End If
    
    
          'Gosub Sterowanie
          'End If
    
    
    Loop
    End
    
    
    '*********************************************************************************
    
    
    Prztimer0:
    Timer0 = 6
    
          Flaga_2ms = 1
          Incr Dzielnik
          If Dzielnik = 500 Then
          Dzielnik = 0
          Flaga_1s = 1
          End If
    
    
    Return
    
    '(
    Zero:
    
    Disable Int0
    
    End If
    
    Enable Int0
    
    
    Return
    ')
    
    
  • REKLAMA
  • #2 8520597
    zdziwiony
    Poziom 27  
    Nie działa bo przerwania int0 masz od poziomu a nie od zbocza.
  • REKLAMA
  • #3 8521239
    wyszkowskidaniel
    Poziom 13  
    Czyli mam kolego zmienić na falling i wszystko będzie ok? Teraz niestety nie mogę tego sprawdzić bo jestem poza domem :)
  • REKLAMA
  • Pomocny post
    #4 8521717
    zdziwiony
    Poziom 27  
    Czy wszystko będzie ok. trudno wyczuć. Zależy jaki zastosowałeś układ wykrywania przejścia przez zero. Jeżeli stan niski utrzymuje się przez większą część przebiegu i tylko w okolicach zera jest wysoki to dopóki jest stan niski
    to jest zgłaszane przerwanie. Jeżeli dodać do tego że przerwanie int0 ma najwyższy priorytet poza reset to przerwanie od timera ma szansę wykonać się tylko w tych momentach w których pin int0 ma stan wysoki. Czyli w praktyce
    100 razy na sekundę. Ale to tylko teoria być może całkowicie głupia i pozbawiona wszelkich podstaw ( co by nie było na mnie że teściowa nie chce działać ).
  • #5 8525296
    wyszkowskidaniel
    Poziom 13  
    Układ ruszył bez problemu, wszystko działa poprawnie. Dzięki za pomoc i uważam że temat można zamknąć.
    Pozdrawiam
REKLAMA