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

Pytanie o program -miernik czestotliwosci

RAINBOWBRIDGE 14 Sty 2010 10:21 1895 5
REKLAMA
  • #1 7533387
    RAINBOWBRIDGE
    Poziom 14  
    Witam, szukam programiku na atmega8 który zmierzy czestotliwosc, podstawi ją do wzoru a wynik pokarze na wyswietlaczu lcd. Ewentualnie zlece napisanie.





    inventco.eu - Proszę poprawić błędy w pisowni zgodnie z regulaminem pkt. 15.
  • REKLAMA
  • #2 7534058
    sp3ots
    Poziom 38  
    Witam !
    W jakim języku ma być napisany program ?
    Jaka ma być częstotliwość maksymalna miernika ?
    Jaka ma być rozdzielczość miernika ?
    Pozdrawiam. Stefan GG6293398
    ps. tylko Bascom
  • REKLAMA
  • Pomocny post
    #3 7535546
    M. S.
    Poziom 34  
    regfile = "2313def.DAT"
    $crystal = 11059200
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
    'Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4
    Cursor Off
    Config Pind.6 = 1
    Config Pind.0 = 0
    Portd.0 = 1
    Portd.6 = 1
    Dim Czestotliwosc As Long
    
    Const Licznik = 22333                                       '22336
    Config Timer1 = Timer , Prescale = 256
    Config Timer0 = Counter , Edge = Falling
    
    Deflcdchar 1 , 2 , 4 , 14 , 16 , 16 , 17 , 14 , 32          ' replace ? with number (0-7)
    Deflcdchar 0 , 2 , 4 , 14 , 16 , 14 , 1 , 30 , 32
    Deflcdchar 2 , 32 , 32 , 14 , 17 , 31 , 16 , 14 , 4         ' replace ? with number (0-7)
    
    On Timer1 Czas
    On Timer0 Zlicz
    Kasuj Alias Portd.6
    Mnoznik Alias Pind.0
    Cls
    Lcd "    MIERNIK"
    Lowerline
    Lcd " CZESTOTLIWOSCI"
    Wait 1
    Cls
    Enable Interrupts
    Enable Timer1
    Enable Timer0                                               'Pomiar czasu
    Counter1 = Licznik
    
    Do
    Set Kasuj
    Loop
    End
    
    Czas:
       Stop Timer0
       Stop Timer1
       Czestotliwosc = Czestotliwosc * 256
       Czestotliwosc = Czestotliwosc + Counter0
       If Mnoznik = 0 Then
       Czestotliwosc = Czestotliwosc * 4
       Else
       Czestotliwosc = Czestotliwosc * 40
       End If
       Locate 1 , 2 : Lcd "Cz" ; Chr(2) ; "stotliwo" ; Chr(0) ; Chr(1)
       If Czestotliwosc < 1000 Then Gosub Wyswietl_hz
       If Czestotliwosc >= 1000 And Czestotliwosc < 1000000 Then Gosub Wyswietl_khz
       If Czestotliwosc >= 1000000 Then Gosub Wyswietl_mhz
       Reset Kasuj : Waitms 2 : Set Kasuj                       'Kasuj przerzutniki
          Czestotliwosc = 0
          Counter0 = 0
          Counter1 = Licznik
       Start Timer0
       Start Timer1
    
    Return
    
    Zlicz:
    Incr Czestotliwosc
    Return
    
    Wyswietl_hz:
    
    Locate 2 , 2
    Lcd "    " ; Czestotliwosc ; "     "
    Locate 2 , 9 : Lcd " Hz     "
    Return
    
    Wyswietl_khz:
    
    Locate 2 , 3
    Lcd " " ; Czestotliwosc ; "       "
    Czestotliwosc = Czestotliwosc \ 1000
    Locate 2 , 2
    Lcd " " ; Czestotliwosc ; "."
    Locate 2 , 11 : Lcd " kHz   "
    Return
    
    Wyswietl_mhz:
    
    Locate 2 , 3
    Lcd Czestotliwosc ; "       "
    Czestotliwosc = Czestotliwosc \ 1000000
    Locate 2 , 2
    Lcd Czestotliwosc ; "."
    Locate 2 , 11 : Lcd " MHz  "
    Return


    Program jest dostosowany do dzielnika /4 i /40 w zależności od stanu końcówki mnożnik. Sygnał Kasuj służy do zerowania dzielnika wstępnego aby śmieci w nim nie było przy następnym pomiarze. Program jest krótki więc i analiza prosta.

    Program jest napisany na ATTINY2313
  • REKLAMA
  • #4 7538225
    RAINBOWBRIDGE
    Poziom 14  
    Dzięki wielkie, czy dostosowanie tego programu do Atmega8 to jakiś wielki problem?
  • REKLAMA
  • #5 7538637
    Konto nie istnieje
    Poziom 1  
  • #6 7560021
    Hopen
    Poziom 12  
    a czy możecie wrzucić schemat?

    Pozdrawiam.
REKLAMA