Prosty generator prostokąta
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: Prosty generator prostokąta
Witam
Próbuję wkomponować w program generatora zmienną licznikową impulsów pojawiających się na wyjściu PWM .
Czy mogę tu wykorzystać przerwanie rejestru porównania
Czy nie będzie gubił impulsów przy częstotliwości 1khz max
Próbuję zmajstrować kalibrator licznika przebytej drogi hmm
Próbuję wkomponować w program generatora zmienną licznikową impulsów pojawiających się na wyjściu PWM .
Czy mogę tu wykorzystać przerwanie rejestru porównania
Czy nie będzie gubił impulsów przy częstotliwości 1khz max
Próbuję zmajstrować kalibrator licznika przebytej drogi hmm
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Prosty generator prostokąta
nie drażnij mnie wpływamy na wody
Jeden kiloHertz przy jakim taktowaniu?
odpal swój piracki statek i zmierzmy sie ahahahaha
Teraz mój helikopter będzie powered by Jumper T16
coraz bardziej mnie kręci kupic cos co w wodzie zaiwania ahahahaha
Jeden kiloHertz przy jakim taktowaniu?
odpal swój piracki statek i zmierzmy sie ahahahaha
Teraz mój helikopter będzie powered by Jumper T16
coraz bardziej mnie kręci kupic cos co w wodzie zaiwania ahahahaha
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Prosty generator prostokąta
cos potłumaczę - chcę kupic dla siebie aparature RC - nic łatwego i tez tak sie kreca od 300zł do nawet dużo dużo.
Nie chcę wydac więcej niż tysiak ,2
to juz powinno jakos smigac i nawet powinno pozwolic kontrolować inne statki powietrzne
Nie chcę wydac więcej niż tysiak ,2
to juz powinno jakos smigac i nawet powinno pozwolic kontrolować inne statki powietrzne
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Prosty generator prostokąta
wybaczcie- czasem zapinam wrotki
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Prosty generator prostokąta
Fajnie ale skupić się ciężko przy tym.
przy okazji oftopa chciałem zawiadomić iż padła moja maszyna CNC
A dokładnie sterownik DSP
przy okazji oftopa chciałem zawiadomić iż padła moja maszyna CNC
A dokładnie sterownik DSP
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: Prosty generator prostokąta
Witam
Jeden kilohHerc jest z zapasem na przyszłość
Na wodę kup sobie ślizgacz z napędem spalinowym zap...... ekstra
Jak zaczniesz sklejać modele kartonowe będę mógł więcej pomóc
Tak jak w programie 16 MHz .
Jeden kilohHerc jest z zapasem na przyszłość
Z RC mam małe doświadczenie , kup najlepszą z topowych wielokanałowych nigdy nie wiadomo co za pomysł przyjdzie do głowy .
Na wodę kup sobie ślizgacz z napędem spalinowym zap...... ekstra
Jak zaczniesz sklejać modele kartonowe będę mógł więcej pomóc
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Prosty generator prostokąta
Cześć - Paweł pisałeś do żółtych ludzi w sprawie sterownika?
pozdr. Jacek.
pozdr. Jacek.
- Pikczu
- Posty: 390
- Rejestracja: 17 sie 2015, 13:46
- Lokalizacja: Dublin, Ireland
- Kontakt:
Re: Prosty generator prostokąta
Jacek - Pisałem dziś rano mnie Chinka skypem obudziła, załatwione mam wysłać do chin.
- Henryk
- Posty: 348
- Rejestracja: 22 sty 2018, 17:20
Re: Prosty generator prostokąta
Witam
Próbuję wkomponować w program zmienną licznika impulsów na wyjściu PWM .
Nie potrafię sprawić aby licznik liczył impulsy poprawnie , niezależnie od ustawionej częstotliwości .
Nabija mi licznik jak wściekły , no bo program sprawdzi warunek ileś tam razy nim zmieni się stan na wyjściu PWM .
Podpowiedzcie jak to ugryźć , w kodzie jest tylko dopisana zmienna " licznik " , wstyd pokazywać co kombinowałem
Próbuję wkomponować w program zmienną licznika impulsów na wyjściu PWM .
Nie potrafię sprawić aby licznik liczył impulsy poprawnie , niezależnie od ustawionej częstotliwości .
Nabija mi licznik jak wściekły , no bo program sprawdzi warunek ileś tam razy nim zmieni się stan na wyjściu PWM .
Podpowiedzcie jak to ugryźć , w kodzie jest tylko dopisana zmienna " licznik " , wstyd pokazywać co kombinowałem
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- '*************************************
- '&sim
- $regfile = "m8def.dat"
- $crystal = 16000000
- $hwstack = 64
- $swstack = 32
- $framesize = 128
- '----- KONFIGURACJA WYŚWIETLACZA -----------------------------------------------
- Config Lcd = 20 * 4
- Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
- Cursor Off
- Cls
- '----- KONFIGURACJA PORTÓW WEJŚCIA I WYJŚCIA / SCL i SDA / 1 WIRE / ALIASY -----
- Config Pinb.0 = Input : Set Portb.0 : F_d Alias Pinb.0
- Config Portb.1 = Output 'OC1A
- Config Pinb.2 = Input : Set Portb.2 : Dn Alias Pinb.2
- Config Pinb.3 = Input : Set Portb.3 : Up Alias Pinb.3
- Config Pinb.4 = Input : Set Portb.4 : Plus Alias Pinb.4 'zaminna wanted + 10
- Config Pinb.5 = Input : Set Portb.5 : Minus Alias Pinb.5 'zmienna wanted - 10
- 'Config Portb.5 = Input : Reset Portb.5 'nieprzypisany - na razie jako wejście
- 'Config Portc.0 = Input : Reset Portc.0 'nieprzypisany - na razie jako wejście
- 'Config Portd.0 = Input : Set Portd.0 : Led Alias Portd.0
- 'Config Portd.1 = Input : Reset Portd.1 'nieprzypisany - na razie jako wejście
- 'Config Pind.2 = Input : Set Portd.2 'nieprzypisany - na razie jako wejście
- 'Config Pind.3 = Input : Set Portd.3 'nieprzypisany - na razie jako wejście
- 'Config Pind.5 = Input : Set Portd.5 : nieprzypisany - na razie jako wejście
- 'Config Pind.6 = Input : Set Portd.6 : X100 Alias Pind.6
- 'Config Pind.7 = Input : Set Portd.7 : Run Alias Pind.7
- 'TCCR1A -> |COM1A1| COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10
- 'TCCR1B -> | ICNC1| ICES1 -- WGM13 WGM12 CS12 CS11 CS10
- ' WGM13-|
- '----- DEKLARACJA STAŁYCH I ZMIENNYCH ------------------------------------------
- Const Pwm_presc1 = &B00010001 'for TCCR1B
- Const Pwm_presc8 = &B00010010
- Const Pwm_presc64 = &B00010011
- Const Pwm_presc256 = &B00010100
- Const Pwm_presc1024 = &B00010101
- Const Set_output_mode = &B10100000 'for TCCR1A
- Dim Presc As Byte , Wartosc_dla_tccr1b As Byte
- Dim Value As Dword , Help_d As Dword , Wanted As Dword
- Dim Ustaw As Word , Wypelnienie As Word , Proc As Word
- Dim Pos As Byte , Helpb As Byte
- Dim Wanted_str As String * 20
- dim licznik as single ' zmienna dla licznika PWM
- Const Freq_ = _xtal / 2
- Const Freq = Freq_ * 10 'z 8 Mega zrobi 80 Mega
- Proc = 50 'wypełnienie początkowa wartośc, można wpisać 50
- Wanted = 100 'Hz początkowa 10,0 Hz
- Locate 1 , 3 : Lcd "FREQ = "
- Locate 2 , 3 : Lcd "DUTY = "
- Gosub Przelicz
- Gosub Menu_sub
- Do
- If Plus = 0 Then
- Wanted = Wanted + 10
- Gosub Przelicz
- End If
- If Minus = 0 Then
- Wanted = Wanted - 10
- If Wanted < 10 Then : Wanted = 10 : End If
- Gosub Przelicz
- End If
- If Up = 0 Then
- Waitms 50
- If Up = 0 Then
- Select Case Pos
- Case 0
- If Wanted < 100000 Then
- Incr Wanted
- Gosub Przelicz
- End If
- Case 1
- If Proc < 99 Then
- Incr Proc
- Gosub Calc_duty
- Waitms 50
- End If
- End Select
- End If
- End If
- If Dn = 0 Then
- Waitms 50
- If Dn = 0 Then
- Select Case Pos
- Case 0
- If Wanted > 10 Then
- Decr Wanted
- Gosub Przelicz
- End If
- Case 1
- If Proc > 1 Then
- Decr Proc
- Gosub Calc_duty
- Waitms 50
- End If
- End Select
- End If
- End If
- Debounce F_d , 0 , Menu_sub , Sub
- Loop
- End
- Menu_sub:
- If Pos = 0 Then
- Pos = 1
- Locate 1 , 1 : Lcd " "
- Locate 2 , 1 : Lcd ">"
- Else
- Pos = 0
- Locate 1 , 1 : Lcd ">"
- Locate 2 , 1 : Lcd " "
- End If
- Return
- Przelicz:
- Wanted_str = Str(wanted)
- Wanted_str = Format(wanted_str , "0.0")
- Locate 1 , 10 : Lcd Wanted_str ; " Hz "
- Value = Freq 'przepisz Freq procka do zmiennej
- Help_d = Wanted
- Select Case Help_d
- Case 1 To 9
- '256
- Wartosc_dla_tccr1b = Pwm_presc256
- Shift Value , Right , 7
- Presc = 255
- Case 10 To 152
- '64
- Wartosc_dla_tccr1b = Pwm_presc64
- Shift Value , Right , 6
- Presc = 64
- Case 153 To 1220 '16000000Hz/131072 = 15Hz '
- '8
- Wartosc_dla_tccr1b = Pwm_presc8
- Shift Value , Right , 3
- Presc = 8
- Case Else '16000000Hz/131072 = 122Hz
- '1
- Wartosc_dla_tccr1b = Pwm_presc1
- Presc = 1
- End Select
- Value = Value \ Help_d 'rzeczywistą po preskalerze podziel przez żądaną
- Decr Value : Ustaw = Value 'odejmij jeden
- Gosub Calc_duty
- Icr1 = Ustaw
- Tccr1a = Set_output_mode 'set count up, reset count down
- Tccr1b = Wartosc_dla_tccr1b 'ustaw prescaler i WGM13
- Return
- Calc_duty:
- Help_d = Value * Proc
- Help_d = Help_d / 100
- Wypelnienie = Help_d
- Ocr1a = Wypelnienie
- Locate 2 , 10 : Lcd Proc ; " % "
- Return
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Prosty generator prostokąta
Nie rozumiem co chcesz liczyć. Na co chcesz patrzeć. Co tam chcesz wiedzieć z tych impulsów.
Rozumiem jak byś miał Start/Stop jak w moim to przy starcie by zerował licznik a po zatrzymaniu pokazał ilość. A tu? Nie rozumiem.
Rozumiem jak byś miał Start/Stop jak w moim to przy starcie by zerował licznik a po zatrzymaniu pokazał ilość. A tu? Nie rozumiem.