Sterowanie mocą i/lub obrotami
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Sterowanie mocą i/lub obrotami
Przyszła paczuszka i dziś to wszytko poskładałem - mało co się nie spóźniłem do pracy na drugą zmianę
Po podłączeniu falownika do prądu nic nie wybuchło, a po podłączeniu filtra mogę sobie nim sterować.
Sterowanie wygląda różnie, wszytko zależy co jest podłączone:
- filtr 2W, działa prawie w całym zakresie - potencjometr bliski minimum to filtr klekocze i tak samo jest gdy potencjometr ustawie prawie na samym końcu
- filtr 5W, nie działa od 0 aż do 2/3 zakresu potencjometru, ale jak już ruszy to regulacja działa do samego końca
- cyrkulator (chyba) 2W działa od połowy do samego końca
Podsumowując, działa regulacja i jestem mega zadowolony. Ograniczenie regulacji zrobię sobie programowo - na początek będzie trzeba zrobić kalibrację (minimum i maksimum obrotów) a później będzie można już normalnie sterować.
Czyli mogę przejść do dalszych testów, a dokładniej muszę dobrać cyfrowy potencjometr i tu pojawia się następny problem, jak go dobrać?
Potrzebuję jakąś optoizolacje, sterowanie musi działać na odległość 1.5m (maks 2m) od głównego sterownika. Wyczytałem też, że są potencjometry z pamięcią - jak dobrze rozumiem to będzie on działał jak zwykły potencjometr tzn. jak ustawie "gałkę" to on zawsze będzie działał z tym ustawieniem aż tego nie przestawie. Dodatkowo potrzebny będzie potencjometr podwójny ponieważ chcę sterować dwoma pompami/filtrami. Macie jakiś pomysł jak to ugryźć?
Po podłączeniu falownika do prądu nic nie wybuchło, a po podłączeniu filtra mogę sobie nim sterować.
Sterowanie wygląda różnie, wszytko zależy co jest podłączone:
- filtr 2W, działa prawie w całym zakresie - potencjometr bliski minimum to filtr klekocze i tak samo jest gdy potencjometr ustawie prawie na samym końcu
- filtr 5W, nie działa od 0 aż do 2/3 zakresu potencjometru, ale jak już ruszy to regulacja działa do samego końca
- cyrkulator (chyba) 2W działa od połowy do samego końca
Podsumowując, działa regulacja i jestem mega zadowolony. Ograniczenie regulacji zrobię sobie programowo - na początek będzie trzeba zrobić kalibrację (minimum i maksimum obrotów) a później będzie można już normalnie sterować.
Czyli mogę przejść do dalszych testów, a dokładniej muszę dobrać cyfrowy potencjometr i tu pojawia się następny problem, jak go dobrać?
Potrzebuję jakąś optoizolacje, sterowanie musi działać na odległość 1.5m (maks 2m) od głównego sterownika. Wyczytałem też, że są potencjometry z pamięcią - jak dobrze rozumiem to będzie on działał jak zwykły potencjometr tzn. jak ustawie "gałkę" to on zawsze będzie działał z tym ustawieniem aż tego nie przestawie. Dodatkowo potrzebny będzie potencjometr podwójny ponieważ chcę sterować dwoma pompami/filtrami. Macie jakiś pomysł jak to ugryźć?
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Sterowanie mocą i/lub obrotami
Nie mam u siebie na miejscu, ale mam kod do podwójnego, bardzo starego DS1267. Natomiast leżą mi MCP4110 (pojedynczy po SPI) i piękne, poczwórne AD5254 po I2C z pamięcią nastaw w Eeprom
Myślę, że tak najbezpieczniej to by można zrobić na jakimś Tiny w SO8 sterowany RS323 i na końcu POT z Eeprom
Na 2m RS485 to chyba przesada
Nie wiem po co ta optoizolacja? Przepraszam bo nie przeglądałem noty tego kitu AVT. Potencjometry są zazwyczaj na 10K, 50K i 100K
Myślę, że tak najbezpieczniej to by można zrobić na jakimś Tiny w SO8 sterowany RS323 i na końcu POT z Eeprom
Na 2m RS485 to chyba przesada
Nie wiem po co ta optoizolacja? Przepraszam bo nie przeglądałem noty tego kitu AVT. Potencjometry są zazwyczaj na 10K, 50K i 100K
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Sterowanie mocą i/lub obrotami
niveasoft pisze:Nie mam u siebie na miejscu, ale mam kod do podwójnego, bardzo starego DS1267. Natomiast leżą mi MCP4110 (pojedynczy po SPI) i piękne, poczwórne AD5254 po I2C z pamięcią nastaw w Eeprom
Ja to już kompletnie nie mam pojęcia co tu użyć
Czy SPI da radę działać na 2m czy raczej nie lub będzie to loteria?
Czy to już nie będzie przesada? Główny uC (prawdopodobnie ATmega2560) + ATTiny85 do sterowania pompą + kolejny uC jako potencjometrniveasoft pisze:Myślę, że tak najbezpieczniej to by można zrobić na jakimś Tiny w SO8 sterowany RS323 i na końcu POT z Eeprom
Chodziło o to, że chciałem wymienić uC w kicie AVT, dodać RS485, ale jak sam stwierdziłeś jest to zły pomysł.niveasoft pisze:Na 2m RS485 to chyba przesada
Wspomniałem o optoizolacji ponieważ w opisie kitu jest napisane:niveasoft pisze:Nie wiem po co ta optoizolacja? Przepraszam bo nie przeglądałem noty tego kitu AVT
Oraz w artykule "ELEKTRONIKA PRAKTYCZNA 9/2012"Uwaga!
Potencjometr, zwory, radiatory i cała reszta układu jest galwanicznie
połączona z siecią energetyczną. Uruchomienie odbywa się przy zasilaniu z
sieci i podłączonym silniku. Dlatego podczas uruchomienia jak i późniejszej ! eksploatacji należy zachować szczególną ostrożność.
Uwaga: układ elektryczny falownika
nie jest galwanicznie odizolowany od sieci
energetycznej, dlatego nie przewidzieliśmy
na płytce drukowanej złącza ISP i procesor
musi zostać zaprogramowany przed włożeniem do podstawki. Przestrzegamy przed
próbami podłączania programatora do procesora umieszczonego w układzie. Może to
się skończyć uszkodzeniem programatora,
komputera oraz porażeniem elektrycznym!
W moim kicie jest 50kniveasoft pisze:Potencjometry są zazwyczaj na 10K, 50K i 100K
.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Ostatnio zmieniony 08 sty 2020, 6:43 przez pimowo, łącznie zmieniany 1 raz.
- Oldman
- Posty: 61
- Rejestracja: 19 cze 2019, 11:15
Re: Sterowanie mocą i/lub obrotami
A może taki myk: przypuszczam, że Attiny85 mierzy napięcie na PB.2. To może wygeneruj sygnał PWM i w zależności od wypełnienia będziesz zmieniał napięcie na PB.2 Narysowałem "na kolanie" o co mi chodzi. Trzeba tylko dobrać R2 i C1 w zależności od częstotliwości sygnału PWM.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- pimowo
- Posty: 392
- Rejestracja: 28 maja 2016, 10:07
Re: Sterowanie mocą i/lub obrotami
Dziękuję za podpowiedź
Gdyby dało się tym sterować poprzez PWM to rozwiązało by wszystkie moje je problemy - długość przewodu, zbędny cyfrowy potencjometr i optoizolacje za grosze.
Teraz siedzę w pracy, ale rano rzucę kod tego sterownika bo w sumie sam nie wiem jak co on dokładnie robi. Myślę, że Bartek rzuci okiem i pomoże w tłumaczeniu z asemblera na j.polski
EDYTA
*źródło: CD EP 9/2012
W artykule jest moduł v1, a ja mam v2 - nie wiem czym to się do końca różni. Patrząc na te moduły mój jest zbudowany na jednym PCB, a v1 ma osobne PCB dla wysokiego napięcia i osobno jest moduł z uC, sterujący.
Gdyby dało się tym sterować poprzez PWM to rozwiązało by wszystkie moje je problemy - długość przewodu, zbędny cyfrowy potencjometr i optoizolacje za grosze.
Teraz siedzę w pracy, ale rano rzucę kod tego sterownika bo w sumie sam nie wiem jak co on dokładnie robi. Myślę, że Bartek rzuci okiem i pomoże w tłumaczeniu z asemblera na j.polski
EDYTA
Code: [Zaznacz cały] [Rozwiń/Zwiń]
- ;*************************************************************************
- ;* Falownik jednofazowy
- ;*************************************************************************
- ;* Programowanie procesora:
- ;* (1) Program FUSEBITS: 0xFFDCE2
- ;* (2) Program FLASH <AC.HEX>
- ;* (3) Program EEPROM <AC.EEP>
- ;*************************************************************************
- ;* RST DW SPI WD |EE BOD BOD BOD |CK CK SU SU|CK CK CK CK
- ;* DISBL EN EN TON|SAVE LEV2 LEV1 LEV0|DIV8 OUT T1 T0|SEL3 SEL2 SEL1 SEL0
- ;* 1 1 0 1 |1 1 1 1 |0 1 1 0 |0 0 1 0 DEFAULT 0xffdf62
- ;* 1 1 0 1 |1 1 0 0 |1 1 1 0 |0 0 1 0 ICCAVR 0xffdce2
- ;*************************************************************************
- .include "tn85def.inc"
- .equ RAMPL = 163 ; dzielnik dla zmian czest (100Hz/s)
- .equ OKRES = 243 ; okres przebiegu = OKRES+1
- .equ PWM = OCR1B ; rejestr PWM
- .equ NORM = PB0 ; zwora (otwarta = 50Hz, zwarta = ADC)
- .equ STOP = PB1 ; zwora (otwarta = STOP, zwarta = RUN)
- .def dana = r0 ; dana z tablic
- .def index = r1 ; zmienna indeksujaca
- .def temp = r2 ; do obliczen PWM
- .def ___r3 = r3 ;
- .def acceL = r4 ; dzielnik rampy przespieszania
- .def acceH = r5 ;
- .def deceL = r6 ; dzielnik rampy hamowania
- .def deceH = r7 ;
- .def ___r8 = r8 ;
- .def EEacH = r9 ; starszy bajt rampy przyspieszania
- .def EEdeH = r10 ; starszy bajt rampy hamowania
- .def __r11 = r11 ;
- .def fazaL = r12 ; faza L
- .def fazaH = r13 ; faza H
- .def offL = r14 ; offset L
- .def offH = r15 ; offset H
- .def akum = r16 ; akum
- .def Od0 = r17 ; stala 0
- .def Od1 = r18 ; stala 1
- .def Od122 = r19 ; stala 122 (50% okresu PWM)
- .def Od163 = r20 ; stala 163 (mlodszy bajt dzielnika ramp)
- .def HZ50 = r21 ; stala 99 (50Hz)
- .def EEfmi = r22 ; czestotliwosc zimnego startu
- .def __r23 = r23 ;
- .def nast = r24 ; nastawiona czest
- .def freq = r25 ; biezaca czest=(freq+1)/2
- ; .def __r26 = r26 ; XL
- ; .def __r27 = r27 ; XH
- ; .def __r28 = r28 ; YL
- ; .def __r29 = r29 ; YH
- ; .def __r30 = R30 ; ZL
- ; .def __r31 = R31 ; ZH
- ;****** Inicjalizacja portow *********************************************
- .cseg
- .org 0x0000
- main:
- ; - - R P!P V H R
- ; - - S W W E L U
- ; T M M L D N
- ldi akum,0x03 ; 0 0 0 0 0 0 1 1
- out PORTB,akum ;
- ldi akum,0x18 ; 0 0 0 1 1 0 0 0
- out DDRB,akum
- sbi ACSR,ACD ; wylacz komparator
- ;****** Inicjalizacja stalych ********************************************
- ldi Od0,0 ; inicjuj stale
- ldi Od1,1
- ldi Od122,122
- ldi Od163,163
- ldi HZ50,99 ; 50Hz
- ;****** Wczytanie stalych z EEPROM ***************************************
- out EEARH,Od0 ; ustaw adres 1
- mov akum,Od1
- out EEARL,akum
- sbi EECR,EERE
- in EEfmi,EEDR ; wczytaj czest zimnego startu
- cpi EEfmi,100 ; <=50Hz?
- brlo w_zakresie
- mov EEfmi,Od0 ; poza zakresem-przyjmij 0.5Hz
- w_zakresie:
- inc akum ; ustaw adres 2
- out EEARL,akum
- sbi EECR,EERE
- in EEacH,EEDR ; wczytaj rampe przyspieszania
- inc akum ; ustaw adres 3
- out EEARL,akum
- sbi EECR,EERE
- in EEdeH,EEDR ; wczytaj rampe hamowania
- ;****** Konfiguracja timera T1 *******************************************
- ldi akum,OKRES ; ustaw okres PWM
- out OCR1C,akum
- ldi akum,(1<<TOV1) ; skasuja TOV1
- out TIFR,akum
- ldi akum,(1<<CS10) ; CK
- out TCCR1,akum
- ;****** Konfiguracja ADC *************************************************
- ldi akum,(1<<ADC1D) ; wylacz bufor cyfrowy na ADC1
- out DIDR0,akum
- ldi akum,(1<<ADLAR)|(1<<MUX0) ; ADCH, Vref=VCC, ADC1
- out ADMUX,akum
- ldi akum,(1<<ADEN)|(1<<ADSC)|(1<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0) ; CK/128, FREE RUN
- out ADCSRA,akum ; start ADC
- ;****** Wlaczenie watch-doga *********************************************
- wdr
- ldi akum,(1<<WDCE)|(1<<WDE) ; zezwol na zmiany w watchdog
- out WDTCR,akum
- ldi akum,(1<<WDE)
- out WDTCR,akum ; watchdog na 16ms
- ;*************************************************************************
- ;* Glowna petla programu
- ;*************************************************************************
- ; Wyznaczenie nastawionej czestotliwosci wyjsciowej
- ; Odczyt nastawy potencjometru i przeskalowanie
- petla: ldi ZL,low(line<<1) ; mlodszy/starszy bajt adresu bazowego...
- ldi ZH,high(line<<1) ; ...ze stablicowana funkcja liniowa
- in akum,ADCH ; odczytaj nastawe potencjometru (8 bitow)
- add ZL,akum ; dodaj ADC jako przesuniecie w tablicy
- adc ZH,Od0 ; dodaj ewentualne przniesienie
- lpm nast,Z ; odczytaj nastawiona czestotliwosc
- ; Sprawdzenie zwory NORM
- sbic PINB,NORM ; zworka NORM zwarta => zostaw nastawe z ADC
- mov nast,HZ50 ; zworka otwarta => przyjmij 50Hz
- ; Sparwdzenie zwory STOP
- sbic PINB,STOP ; zworka STOP?
- rjmp jest_stop ; rozwarta => hamowanie/wylaczenie
- in akum,GTCCR
- sbrc akum,COM1B0 ; wyjscia OC1B/!OC1B odlaczone?
- rjmp przeskocz_stop ; nie => przeskocz
- mov freq,EEfmi ; tak +> zimny start => ruszaj od EEfmin
- mov fazaL,Od0 ; startuj z zerowa faza
- mov fazaH,Od0
- ldi akum,(1<<PWM1B)|(1<<COM1B0) ; wlacz PWM, dolacz OC1B/!OC1B
- out GTCCR,akum
- rjmp przeskocz_stop
- jest_stop: ; zworka STOP rozwarta
- mov nast,Od0 ; nastaw 0.5Hz
- cpse freq,nast ; freq spadla do nastawionej?
- rjmp przeskocz_stop ; nie => bez zatrzymywania
- out GTCCR,Od0 ; tak => wylacz PWM, odlacz OC1B/!OC1B
- przeskocz_stop:
- ; Lagodne przyspieszanie
- sub acceL,Od1 ; odliczanie czasu rampy przyspieszania
- brcc nie_przyspieszaj ; bez przeniesienia? => odliczaj dalej
- mov acceL,Od163 ; przeladuj mlodszy bajt licznika
- sub acceH,Od1 ; dekrement starszego bajtu licznika
- brcc nie_przyspieszaj ; przeniesienie? tak => bez przyspieszania
- mov acceL,Od163 ; tak => przeladuj odliczany czas
- mov acceH,EEacH ; przeladuj starszy bajt odliczanego czasu
- cp freq,nast ; biezaca >= nastawiona?
- brsh nie_przyspieszaj ; tak => nie przyspieszaj
- inc freq ; nie => zwieksz biezaca
- nie_przyspieszaj:
- ; Lagodne hamowanie
- sub deceL,Od1 ; odliczanie czasu rampy hamowania
- brcc nie_hamuj ; bez przeniesienia? => odliczaj dalej
- mov deceL,Od163 ; przeladuj mlodszy bajt licznika
- sub deceH,Od1 ; dekrement starszego bajtu licznika
- brcc nie_hamuj ; przeniesienie? tak => bez hamowania
- mov deceL,Od163 ; tak => przeladuj odliczany czas
- mov deceH,EEdeH ; przeladuj starszy bajt odliczanego czasu
- cp nast,freq ; nastawiona >= biezaca?
- brsh nie_hamuj ; tak => nie hamuj
- dec freq ; nie => zmniejsz biezaca
- nie_hamuj:
- ; Syntezowanie przebiegu wyjsciowego
- add fazaL,freq ; oblicz nowa faze
- adc fazaH,Od0 ; starszy bajt fazy
- add fazaL,Od1 ; dodaj offset: czest=(freq+1)/2
- adc fazaH,Od0 ; starszy bajt to indeks probki
- ldi ZL,low(tind<<1) ; adres bazowy tablicy indeksow
- ldi ZH,high(tind<<1) ; starszy bajt
- add ZL,fazaH ; dodaj starszy bajt fazy
- adc ZH,Od0 ; jako przesuniecie w tablicy indeksow
- lpm index,Z ; pobierz indeks w pierwszej cwiartce
- ; Wyznaczenie przesuniecia dla tablicy probek
- mov offL,freq ; biezaca czestotliwosc jako przesuniecie
- mov offH,Od0 ; starszy bajt
- lsl offL ; *2
- rol offH
- lsl offL ; *4
- rol offH
- lsl offL ; *8
- rol offH
- lsl offL ; *16
- rol offH
- lsl offL ; *32
- rol offH
- lsl offL ; *64
- rol offH ; elementy tablicy z probkami maja 64 bajty
- ; Pobranie probki sygnalu wyjsciowego
- ldi ZL,low(sine<<1) ; adres bazowy tablicy z probkami
- ldi ZH,high(sine<<1) ; starszy bajt
- add ZL,offL ; dodaj przesuniecie (freq*64)
- adc ZH,offH ; starszy bajt
- add ZL,index ; dodaj kat w pierwszej cwiartce
- adc ZH,Od0 ; starszy bajt
- lpm temp,Z ; pobierz nowa probke z tablicy
- ; Zmiana znaku w drugiej polowce okresu i dodanie przesuniecia
- sbrc fazaH,7 ; pierwsza polowka okresu (0..127)?
- com temp ; nie => temp = -temp
- add temp,Od122 ; przenies do zakresu 1..122..243
- ; Wystaw obliczone probki sygnalu wyjsciowego
- out PWM,temp ; aktualizuj rejestr PWM
- wdr ; skasuj watchdoga
- ; Czekaj do konca okresu generatora PWM
- czekaj_na_koniec_okresu:
- in akum,TIFR ; wczytaj rejestr znacznikow
- sbrs akum,TOV1 ; jest TOV1?
- rjmp czekaj_na_koniec_okresu ; nie => sprawdzaj dalej
- ldi akum,(1<<TOV1) ; tak => skasuj TOV1
- out TIFR,akum
- ; Koniec glownej petli programu
- rjmp petla ; wroc na poczatek petli
- ;*************************************************************************
- ;* Tablice stalych
- ;*************************************************************************
- .org 0x0080 ; adresy sa 2-bajtowe
- ; faza (0..255) na cwiartki (0..63,63..0,0..63,63..0)
- tind:
- .db 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- .db 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
- .db 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47
- .db 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
- .db 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48
- .db 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32
- .db 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16
- .db 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
- .db 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
- .db 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
- .db 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47
- .db 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63
- .db 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48
- .db 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32
- .db 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16
- .db 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
- ; napiecie potencjometru (0..255) => czestotliwosc (0..115)
- line:
- .db 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7
- .db 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14
- .db 14, 15, 15, 16, 16, 17, 17, 18, 18, 18, 19, 19, 20, 20, 21, 21
- .db 22, 22, 23, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 28
- .db 29, 29, 30, 30, 31, 31, 32, 32, 32, 33, 33, 34, 34, 35, 35, 36
- .db 36, 37, 37, 37, 38, 38, 39, 39, 40, 40, 41, 41, 41, 42, 42, 43
- .db 43, 44, 44, 45, 45, 46, 46, 46, 47, 47, 48, 48, 49, 49, 50, 50
- .db 51, 51, 51, 52, 52, 53, 53, 54, 54, 55, 55, 55, 56, 56, 57, 57
- .db 58, 58, 59, 59, 60, 60, 60, 61, 61, 62, 62, 63, 63, 64, 64, 64
- .db 65, 65, 66, 66, 67, 67, 68, 68, 69, 69, 69, 70, 70, 71, 71, 72
- .db 72, 73, 73, 74, 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 78, 79
- .db 79, 80, 80, 81, 81, 82, 82, 83, 83, 83, 84, 84, 85, 85, 86, 86
- .db 87, 87, 87, 88, 88, 89, 89, 90, 90, 91, 91, 92, 92, 92, 93, 93
- .db 94, 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, 99, 99,100,100,101
- .db 101,101,102,102,103,103,104,104,105,105,106,106,106,107,107,108
- .db 108,109,109,110,110,110,111,111,112,112,113,113,114,114,115,115
- sine:
- ; ksztalt przebieg dla 0.5..50.0Hz [sin(x)]
- .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- .db 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
- .db 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
- .db 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
- .db 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1
- .db 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2
- .db 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
- .db 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
- .db 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
- .db 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3
- .db 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- .db 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
- .db 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2
- .db 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3
- .db 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
- .db 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
- .db 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2
- .db 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4
- .db 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6
- .db 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6
- .db 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3
- .db 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5
- .db 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7
- .db 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
- .db 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3
- .db 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6
- .db 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8
- .db 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8
- .db 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4
- .db 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7
- .db 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9
- .db 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10
- .db 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4
- .db 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8
- .db 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10
- .db 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11
- .db 0, 1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5
- .db 5, 5, 5, 6, 6, 6, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9
- .db 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11
- .db 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12
- .db 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5
- .db 5, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9
- .db 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12
- .db 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13
- .db 0, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5, 6
- .db 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10
- .db 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13
- .db 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15
- .db 0, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6
- .db 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11
- .db 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 15
- .db 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16
- .db 0, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5, 5, 5, 6, 6, 7
- .db 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11, 12, 12
- .db 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 16, 16
- .db 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17
- .db 0, 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 6, 6, 7, 7
- .db 7, 8, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13
- .db 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 16, 17, 17
- .db 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18
- .db 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7
- .db 8, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 13, 14
- .db 14, 14, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18
- .db 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19
- .db 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8
- .db 8, 9, 9, 10, 10, 11, 11, 12, 12, 12, 13, 13, 14, 14, 14, 15
- .db 15, 15, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19
- .db 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21
- .db 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8
- .db 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 15
- .db 16, 16, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20
- .db 20, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22
- .db 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9
- .db 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 16
- .db 17, 17, 18, 18, 18, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21
- .db 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23
- .db 1, 1, 2, 2, 3, 4, 4, 5, 5, 6, 7, 7, 8, 8, 9, 9
- .db 10, 10, 11, 11, 12, 13, 13, 14, 14, 15, 15, 15, 16, 16, 17, 17
- .db 18, 18, 18, 19, 19, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22
- .db 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24
- .db 1, 1, 2, 3, 3, 4, 4, 5, 6, 6, 7, 7, 8, 9, 9, 10
- .db 10, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18
- .db 19, 19, 19, 20, 20, 21, 21, 21, 22, 22, 22, 23, 23, 23, 23, 24
- .db 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25
- .db 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9, 10, 10
- .db 11, 11, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 18, 18, 18, 19
- .db 19, 20, 20, 21, 21, 21, 22, 22, 23, 23, 23, 24, 24, 24, 24, 25
- .db 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27
- .db 1, 1, 2, 3, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10, 11
- .db 11, 12, 13, 13, 14, 14, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20
- .db 20, 21, 21, 22, 22, 22, 23, 23, 24, 24, 24, 25, 25, 25, 26, 26
- .db 26, 26, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28
- .db 1, 1, 2, 3, 4, 4, 5, 6, 6, 7, 8, 8, 9, 10, 11, 11
- .db 12, 13, 13, 14, 14, 15, 16, 16, 17, 17, 18, 19, 19, 20, 20, 21
- .db 21, 22, 22, 23, 23, 23, 24, 24, 25, 25, 25, 26, 26, 26, 27, 27
- .db 27, 27, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29
- .db 1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 10, 11, 12
- .db 12, 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 20, 21, 22
- .db 22, 23, 23, 24, 24, 24, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28
- .db 28, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30
- .db 1, 2, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12
- .db 13, 14, 14, 15, 16, 16, 17, 18, 18, 19, 19, 20, 21, 21, 22, 22
- .db 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 28, 29, 29, 29
- .db 29, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31
- .db 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 10, 11, 12, 13
- .db 13, 14, 15, 16, 16, 17, 18, 18, 19, 20, 20, 21, 21, 22, 23, 23
- .db 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 29, 30, 30, 30
- .db 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 33, 33, 33, 33, 33
- .db 1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9, 10, 11, 12, 12, 13
- .db 14, 15, 15, 16, 17, 18, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24
- .db 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 30, 31, 31, 31
- .db 32, 32, 32, 33, 33, 33, 33, 33, 33, 34, 34, 34, 34, 34, 34, 34
- .db 1, 2, 3, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14
- .db 14, 15, 16, 17, 17, 18, 19, 20, 20, 21, 22, 22, 23, 24, 24, 25
- .db 26, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31, 31, 31, 32, 32, 33
- .db 33, 33, 33, 34, 34, 34, 34, 34, 35, 35, 35, 35, 35, 35, 35, 35
- .db 1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 13, 14
- .db 15, 16, 16, 17, 18, 19, 20, 20, 21, 22, 22, 23, 24, 25, 25, 26
- .db 26, 27, 28, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 33, 34
- .db 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36
- .db 1, 2, 3, 4, 5, 6, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14
- .db 15, 16, 17, 18, 19, 19, 20, 21, 22, 22, 23, 24, 25, 25, 26, 27
- .db 27, 28, 29, 29, 30, 30, 31, 31, 32, 32, 33, 33, 34, 34, 34, 35
- .db 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 37, 37, 37, 37, 38, 38
- .db 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15
- .db 16, 17, 18, 18, 19, 20, 21, 22, 22, 23, 24, 25, 25, 26, 27, 28
- .db 28, 29, 29, 30, 31, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36
- .db 36, 37, 37, 37, 37, 38, 38, 38, 38, 38, 38, 39, 39, 39, 39, 39
- .db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 14, 15
- .db 16, 17, 18, 19, 20, 21, 22, 22, 23, 24, 25, 25, 26, 27, 28, 28
- .db 29, 30, 30, 31, 32, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37
- .db 37, 38, 38, 38, 39, 39, 39, 39, 39, 40, 40, 40, 40, 40, 40, 40
- .db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
- .db 17, 18, 19, 20, 20, 21, 22, 23, 24, 25, 25, 26, 27, 28, 29, 29
- .db 30, 31, 31, 32, 33, 33, 34, 34, 35, 35, 36, 36, 37, 37, 38, 38
- .db 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 41, 41, 41, 41
- .db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
- .db 17, 18, 19, 20, 21, 22, 23, 24, 25, 25, 26, 27, 28, 29, 29, 30
- .db 31, 32, 32, 33, 34, 34, 35, 35, 36, 37, 37, 38, 38, 38, 39, 39
- .db 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42
- .db 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
- .db 18, 19, 20, 21, 22, 23, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31
- .db 32, 32, 33, 34, 35, 35, 36, 36, 37, 38, 38, 39, 39, 40, 40, 40
- .db 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44
- .db 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
- .db 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 29, 30, 31, 32
- .db 33, 33, 34, 35, 35, 36, 37, 37, 38, 39, 39, 40, 40, 41, 41, 42
- .db 42, 42, 43, 43, 43, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45
- .db 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18
- .db 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 29, 30, 31, 32, 33
- .db 34, 34, 35, 36, 36, 37, 38, 38, 39, 40, 40, 41, 41, 42, 42, 43
- .db 43, 43, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 46, 46, 46
- .db 1, 2, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18
- .db 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
- .db 34, 35, 36, 37, 37, 38, 39, 39, 40, 41, 41, 42, 42, 43, 43, 44
- .db 44, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 47, 47
- .db 1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 18, 19
- .db 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 34
- .db 35, 36, 37, 38, 38, 39, 40, 40, 41, 42, 42, 43, 43, 44, 44, 45
- .db 45, 46, 46, 46, 47, 47, 47, 48, 48, 48, 48, 48, 48, 48, 48, 48
- .db 1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19
- .db 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 34, 35
- .db 36, 37, 38, 39, 39, 40, 41, 41, 42, 43, 43, 44, 45, 45, 46, 46
- .db 46, 47, 47, 48, 48, 48, 49, 49, 49, 49, 49, 49, 50, 50, 50, 50
- .db 1, 3, 4, 5, 6, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 20
- .db 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36
- .db 37, 38, 39, 40, 40, 41, 42, 42, 43, 44, 44, 45, 46, 46, 47, 47
- .db 48, 48, 48, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51
- .db 1, 3, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, 18, 19, 20
- .db 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
- .db 38, 39, 40, 40, 41, 42, 43, 43, 44, 45, 45, 46, 47, 47, 48, 48
- .db 49, 49, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52
- .db 1, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 19, 21
- .db 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38
- .db 39, 40, 41, 41, 42, 43, 44, 44, 45, 46, 47, 47, 48, 48, 49, 49
- .db 50, 50, 51, 51, 51, 52, 52, 52, 53, 53, 53, 53, 53, 53, 53, 53
- .db 1, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17, 18, 20, 21
- .db 22, 23, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 38, 39
- .db 40, 41, 41, 42, 43, 44, 45, 46, 46, 47, 48, 48, 49, 49, 50, 50
- .db 51, 51, 52, 52, 53, 53, 53, 54, 54, 54, 54, 54, 54, 54, 54, 54
- .db 1, 3, 4, 5, 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20, 21
- .db 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40
- .db 41, 41, 42, 43, 44, 45, 46, 47, 47, 48, 49, 49, 50, 51, 51, 52
- .db 52, 53, 53, 53, 54, 54, 54, 55, 55, 55, 55, 55, 56, 56, 56, 56
- .db 1, 3, 4, 6, 7, 8, 10, 11, 13, 14, 15, 17, 18, 19, 21, 22
- .db 23, 24, 26, 27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
- .db 41, 42, 43, 44, 45, 46, 47, 48, 48, 49, 50, 50, 51, 52, 52, 53
- .db 53, 54, 54, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57
- .db 1, 3, 4, 6, 7, 9, 10, 11, 13, 14, 16, 17, 18, 20, 21, 22
- .db 24, 25, 26, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41
- .db 42, 43, 44, 45, 46, 47, 48, 49, 49, 50, 51, 51, 52, 53, 53, 54
- .db 54, 55, 55, 56, 56, 56, 57, 57, 57, 58, 58, 58, 58, 58, 58, 58
- .db 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16, 17, 19, 20, 21, 23
- .db 24, 26, 27, 28, 29, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42
- .db 43, 44, 45, 46, 47, 48, 49, 50, 50, 51, 52, 53, 53, 54, 54, 55
- .db 56, 56, 56, 57, 57, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59
- .db 1, 3, 4, 6, 7, 9, 10, 12, 13, 15, 16, 18, 19, 21, 22, 23
- .db 25, 26, 27, 29, 30, 31, 33, 34, 35, 36, 37, 39, 40, 41, 42, 43
- .db 44, 45, 46, 47, 48, 49, 50, 51, 51, 52, 53, 54, 54, 55, 56, 56
- .db 57, 57, 58, 58, 58, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60
- .db 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21, 22, 24
- .db 25, 27, 28, 29, 31, 32, 33, 35, 36, 37, 38, 39, 41, 42, 43, 44
- .db 45, 46, 47, 48, 49, 50, 51, 52, 52, 53, 54, 55, 55, 56, 57, 57
- .db 58, 58, 59, 59, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62
- .db 2, 3, 5, 6, 8, 9, 11, 12, 14, 15, 17, 18, 20, 21, 23, 24
- .db 26, 27, 28, 30, 31, 33, 34, 35, 36, 38, 39, 40, 41, 43, 44, 45
- .db 46, 47, 48, 49, 50, 51, 52, 53, 53, 54, 55, 56, 56, 57, 58, 58
- .db 59, 59, 60, 60, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63
- .db 2, 3, 5, 6, 8, 9, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25
- .db 26, 28, 29, 30, 32, 33, 35, 36, 37, 38, 40, 41, 42, 43, 44, 46
- .db 47, 48, 49, 50, 51, 52, 53, 54, 54, 55, 56, 57, 58, 58, 59, 59
- .db 60, 61, 61, 62, 62, 62, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64
- .db 2, 3, 5, 6, 8, 10, 11, 13, 14, 16, 18, 19, 21, 22, 24, 25
- .db 27, 28, 30, 31, 32, 34, 35, 37, 38, 39, 40, 42, 43, 44, 45, 46
- .db 48, 49, 50, 51, 52, 53, 54, 55, 55, 56, 57, 58, 59, 59, 60, 61
- .db 61, 62, 62, 63, 63, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65
- .db 2, 3, 5, 7, 8, 10, 11, 13, 15, 16, 18, 19, 21, 23, 24, 26
- .db 27, 29, 30, 32, 33, 34, 36, 37, 39, 40, 41, 42, 44, 45, 46, 47
- .db 48, 50, 51, 52, 53, 54, 55, 56, 57, 57, 58, 59, 60, 60, 61, 62
- .db 62, 63, 63, 64, 64, 65, 65, 65, 66, 66, 66, 66, 66, 67, 67, 67
- .db 2, 3, 5, 7, 8, 10, 12, 13, 15, 17, 18, 20, 21, 23, 25, 26
- .db 28, 29, 31, 32, 34, 35, 37, 38, 39, 41, 42, 43, 45, 46, 47, 48
- .db 49, 51, 52, 53, 54, 55, 56, 57, 58, 58, 59, 60, 61, 62, 62, 63
- .db 63, 64, 65, 65, 65, 66, 66, 67, 67, 67, 67, 68, 68, 68, 68, 68
- .db 2, 3, 5, 7, 9, 10, 12, 14, 15, 17, 19, 20, 22, 23, 25, 27
- .db 28, 30, 31, 33, 34, 36, 37, 39, 40, 41, 43, 44, 45, 47, 48, 49
- .db 50, 51, 53, 54, 55, 56, 57, 58, 59, 59, 60, 61, 62, 63, 63, 64
- .db 65, 65, 66, 66, 67, 67, 67, 68, 68, 68, 69, 69, 69, 69, 69, 69
- .db 2, 3, 5, 7, 9, 10, 12, 14, 15, 17, 19, 21, 22, 24, 25, 27
- .db 29, 30, 32, 33, 35, 36, 38, 39, 41, 42, 43, 45, 46, 47, 49, 50
- .db 51, 52, 53, 55, 56, 57, 58, 59, 60, 60, 61, 62, 63, 64, 64, 65
- .db 66, 66, 67, 67, 68, 68, 69, 69, 69, 70, 70, 70, 70, 70, 70, 70
- .db 2, 4, 5, 7, 9, 11, 12, 14, 16, 17, 19, 21, 23, 24, 26, 28
- .db 29, 31, 32, 34, 35, 37, 38, 40, 41, 43, 44, 46, 47, 48, 50, 51
- .db 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 62, 63, 64, 65, 66, 66
- .db 67, 67, 68, 69, 69, 69, 70, 70, 70, 71, 71, 71, 71, 71, 71, 71
- .db 2, 4, 5, 7, 9, 11, 13, 14, 16, 18, 20, 21, 23, 25, 26, 28
- .db 30, 31, 33, 34, 36, 38, 39, 41, 42, 44, 45, 46, 48, 49, 50, 52
- .db 53, 54, 55, 56, 58, 59, 60, 61, 62, 63, 63, 64, 65, 66, 67, 67
- .db 68, 69, 69, 70, 70, 71, 71, 71, 72, 72, 72, 72, 72, 73, 73, 73
- .db 2, 4, 5, 7, 9, 11, 13, 15, 16, 18, 20, 22, 23, 25, 27, 28
- .db 30, 32, 33, 35, 37, 38, 40, 41, 43, 44, 46, 47, 49, 50, 51, 53
- .db 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, 65, 65, 66, 67, 68, 68
- .db 69, 70, 70, 71, 71, 72, 72, 73, 73, 73, 73, 74, 74, 74, 74, 74
- .db 2, 4, 6, 7, 9, 11, 13, 15, 17, 18, 20, 22, 24, 25, 27, 29
- .db 31, 32, 34, 36, 37, 39, 40, 42, 43, 45, 46, 48, 49, 51, 52, 53
- .db 55, 56, 57, 58, 59, 61, 62, 63, 64, 65, 66, 66, 67, 68, 69, 70
- .db 70, 71, 71, 72, 73, 73, 73, 74, 74, 74, 75, 75, 75, 75, 75, 75
- .db 2, 4, 6, 8, 9, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 29
- .db 31, 33, 35, 36, 38, 39, 41, 43, 44, 46, 47, 49, 50, 52, 53, 54
- .db 56, 57, 58, 59, 60, 62, 63, 64, 65, 66, 67, 68, 68, 69, 70, 71
- .db 71, 72, 73, 73, 74, 74, 75, 75, 75, 76, 76, 76, 76, 76, 76, 76
- .db 2, 4, 6, 8, 10, 11, 13, 15, 17, 19, 21, 23, 24, 26, 28, 30
- .db 32, 33, 35, 37, 38, 40, 42, 43, 45, 46, 48, 49, 51, 52, 54, 55
- .db 56, 58, 59, 60, 61, 63, 64, 65, 66, 67, 68, 69, 69, 70, 71, 72
- .db 73, 73, 74, 74, 75, 75, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77
- .db 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 29, 30
- .db 32, 34, 36, 37, 39, 41, 42, 44, 46, 47, 49, 50, 52, 53, 55, 56
- .db 57, 59, 60, 61, 62, 64, 65, 66, 67, 68, 69, 70, 71, 71, 72, 73
- .db 74, 74, 75, 75, 76, 76, 77, 77, 78, 78, 78, 78, 78, 79, 79, 79
- .db 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 21, 23, 25, 27, 29, 31
- .db 33, 34, 36, 38, 40, 41, 43, 45, 46, 48, 49, 51, 53, 54, 55, 57
- .db 58, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 72, 72, 73, 74
- .db 75, 75, 76, 77, 77, 78, 78, 78, 79, 79, 79, 80, 80, 80, 80, 80
- .db 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 29, 31
- .db 33, 35, 37, 38, 40, 42, 44, 45, 47, 49, 50, 52, 53, 55, 56, 58
- .db 59, 60, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 73, 74, 74, 75
- .db 76, 77, 77, 78, 78, 79, 79, 80, 80, 80, 81, 81, 81, 81, 81, 81
- .db 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32
- .db 34, 35, 37, 39, 41, 43, 44, 46, 48, 49, 51, 53, 54, 56, 57, 59
- .db 60, 61, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, 74, 75, 76, 76
- .db 77, 78, 78, 79, 80, 80, 80, 81, 81, 82, 82, 82, 82, 82, 82, 82
- .db 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32
- .db 34, 36, 38, 40, 41, 43, 45, 47, 48, 50, 52, 53, 55, 56, 58, 59
- .db 61, 62, 64, 65, 66, 67, 69, 70, 71, 72, 73, 74, 75, 76, 77, 77
- .db 78, 79, 80, 80, 81, 81, 82, 82, 82, 83, 83, 83, 83, 83, 83, 83
- .db 2, 4, 6, 8, 10, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33
- .db 35, 36, 38, 40, 42, 44, 46, 47, 49, 51, 52, 54, 56, 57, 59, 60
- .db 62, 63, 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79
- .db 79, 80, 81, 81, 82, 82, 83, 83, 84, 84, 84, 84, 85, 85, 85, 85
- .db 2, 4, 6, 8, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33
- .db 35, 37, 39, 41, 43, 44, 46, 48, 50, 52, 53, 55, 56, 58, 60, 61
- .db 63, 64, 65, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80
- .db 80, 81, 82, 82, 83, 84, 84, 84, 85, 85, 85, 86, 86, 86, 86, 86
- .db 2, 4, 6, 9, 11, 13, 15, 17, 19, 21, 23, 25, 28, 30, 32, 34
- .db 36, 38, 39, 41, 43, 45, 47, 49, 51, 52, 54, 56, 57, 59, 60, 62
- .db 63, 65, 66, 68, 69, 70, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81
- .db 82, 82, 83, 84, 84, 85, 85, 86, 86, 86, 87, 87, 87, 87, 87, 87
- .db 2, 4, 7, 9, 11, 13, 15, 17, 20, 22, 24, 26, 28, 30, 32, 34
- .db 36, 38, 40, 42, 44, 46, 48, 49, 51, 53, 55, 56, 58, 60, 61, 63
- .db 64, 66, 67, 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82
- .db 83, 83, 84, 85, 85, 86, 86, 87, 87, 88, 88, 88, 88, 88, 88, 88
- .db 2, 4, 7, 9, 11, 13, 15, 18, 20, 22, 24, 26, 28, 30, 32, 35
- .db 37, 39, 41, 43, 44, 46, 48, 50, 52, 54, 55, 57, 59, 61, 62, 64
- .db 65, 67, 68, 70, 71, 72, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83
- .db 84, 85, 85, 86, 87, 87, 88, 88, 88, 89, 89, 89, 89, 89, 90, 90
- .db 2, 4, 7, 9, 11, 13, 16, 18, 20, 22, 24, 27, 29, 31, 33, 35
- .db 37, 39, 41, 43, 45, 47, 49, 51, 53, 54, 56, 58, 60, 61, 63, 65
- .db 66, 68, 69, 71, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84
- .db 85, 86, 86, 87, 88, 88, 89, 89, 90, 90, 90, 90, 91, 91, 91, 91
- .db 2, 5, 7, 9, 11, 14, 16, 18, 20, 23, 25, 27, 29, 31, 33, 35
- .db 38, 40, 42, 44, 46, 48, 50, 51, 53, 55, 57, 59, 60, 62, 64, 65
- .db 67, 69, 70, 71, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85
- .db 86, 87, 88, 88, 89, 89, 90, 90, 91, 91, 91, 92, 92, 92, 92, 92
- .db 2, 5, 7, 9, 11, 14, 16, 18, 21, 23, 25, 27, 29, 32, 34, 36
- .db 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 59, 61, 63, 65, 66
- .db 68, 69, 71, 72, 74, 75, 77, 78, 79, 80, 81, 83, 84, 85, 86, 86
- .db 87, 88, 89, 89, 90, 91, 91, 92, 92, 92, 93, 93, 93, 93, 93, 93
- .db 2, 5, 7, 9, 12, 14, 16, 19, 21, 23, 25, 28, 30, 32, 34, 36
- .db 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 58, 60, 62, 64, 65, 67
- .db 69, 70, 72, 73, 75, 76, 78, 79, 80, 81, 83, 84, 85, 86, 87, 88
- .db 88, 89, 90, 91, 91, 92, 92, 93, 93, 94, 94, 94, 94, 94, 94, 94
- .db 2, 5, 7, 9, 12, 14, 16, 19, 21, 23, 26, 28, 30, 32, 35, 37
- .db 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 66, 68
- .db 70, 71, 73, 74, 76, 77, 79, 80, 81, 82, 84, 85, 86, 87, 88, 89
- .db 90, 90, 91, 92, 92, 93, 93, 94, 94, 95, 95, 95, 95, 96, 96, 96
- .db 2, 5, 7, 10, 12, 14, 17, 19, 21, 24, 26, 28, 31, 33, 35, 37
- .db 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 65, 67, 69
- .db 71, 72, 74, 75, 77, 78, 80, 81, 82, 83, 85, 86, 87, 88, 89, 90
- .db 91, 91, 92, 93, 94, 94, 95, 95, 96, 96, 96, 96, 97, 97, 97, 97
- .db 2, 5, 7, 10, 12, 14, 17, 19, 22, 24, 26, 29, 31, 33, 36, 38
- .db 40, 42, 44, 47, 49, 51, 53, 55, 57, 59, 61, 63, 64, 66, 68, 70
- .db 71, 73, 75, 76, 78, 79, 81, 82, 83, 84, 86, 87, 88, 89, 90, 91
- .db 92, 93, 93, 94, 95, 95, 96, 96, 97, 97, 97, 98, 98, 98, 98, 98
- .db 2, 5, 7, 10, 12, 15, 17, 20, 22, 24, 27, 29, 31, 34, 36, 38
- .db 41, 43, 45, 47, 49, 51, 53, 56, 58, 60, 61, 63, 65, 67, 69, 71
- .db 72, 74, 76, 77, 79, 80, 82, 83, 84, 86, 87, 88, 89, 90, 91, 92
- .db 93, 94, 95, 95, 96, 96, 97, 98, 98, 98, 99, 99, 99, 99, 99, 99
- .db 2, 5, 7, 10, 12, 15, 17, 20, 22, 25, 27, 29, 32, 34, 36, 39
- .db 41, 43, 45, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 71
- .db 73, 75, 76, 78, 80, 81, 83, 84, 85, 87, 88, 89, 90, 91, 92, 93
- .db 94, 95, 96, 96, 97, 98, 98, 99, 99,100,100,100,100,100,100,100
- .db 3, 5, 8, 10, 13, 15, 18, 20, 22, 25, 27, 30, 32, 35, 37, 39
- .db 41, 44, 46, 48, 50, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 72
- .db 74, 76, 77, 79, 81, 82, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94
- .db 95, 96, 97, 98, 98, 99, 99,100,100,101,101,101,101,102,102,102
- .db 3, 5, 8, 10, 13, 15, 18, 20, 23, 25, 28, 30, 33, 35, 37, 40
- .db 42, 44, 47, 49, 51, 53, 55, 58, 60, 62, 64, 66, 68, 70, 71, 73
- .db 75, 77, 78, 80, 82, 83, 85, 86, 87, 89, 90, 91, 92, 93, 94, 95
- .db 96, 97, 98, 99, 99,100,101,101,102,102,102,102,103,103,103,103
- .db 3, 5, 8, 10, 13, 15, 18, 20, 23, 25, 28, 30, 33, 35, 38, 40
- .db 42, 45, 47, 49, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74
- .db 76, 78, 79, 81, 82, 84, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97
- .db 97, 98, 99,100,101,101,102,102,103,103,103,104,104,104,104,104
- .db 3, 5, 8, 10, 13, 16, 18, 21, 23, 26, 28, 31, 33, 36, 38, 41
- .db 43, 45, 48, 50, 52, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75
- .db 77, 78, 80, 82, 83, 85, 87, 88, 89, 91, 92, 93, 94, 96, 97, 98
- .db 99, 99,100,101,102,102,103,103,104,104,105,105,105,105,105,105
- .db 3, 5, 8, 11, 13, 16, 18, 21, 24, 26, 29, 31, 34, 36, 39, 41
- .db 43, 46, 48, 51, 53, 55, 57, 60, 62, 64, 66, 68, 70, 72, 74, 76
- .db 78, 79, 81, 83, 84, 86, 88, 89, 90, 92, 93, 94, 96, 97, 98, 99
- .db 100,101,101,102,103,104,104,105,105,105,106,106,106,106,106,106
- .db 3, 5, 8, 11, 13, 16, 19, 21, 24, 26, 29, 31, 34, 37, 39, 42
- .db 44, 46, 49, 51, 53, 56, 58, 60, 62, 65, 67, 69, 71, 73, 75, 77
- .db 78, 80, 82, 84, 85, 87, 89, 90, 91, 93, 94, 95, 97, 98, 99,100
- .db 101,102,103,103,104,105,105,106,106,107,107,107,107,108,108,108
- .db 3, 5, 8, 11, 13, 16, 19, 21, 24, 27, 29, 32, 34, 37, 39, 42
- .db 44, 47, 49, 52, 54, 56, 59, 61, 63, 65, 67, 70, 72, 74, 76, 77
- .db 79, 81, 83, 85, 86, 88, 90, 91, 92, 94, 95, 96, 98, 99,100,101
- .db 102,103,104,105,105,106,107,107,107,108,108,108,109,109,109,109
- .db 3, 5, 8, 11, 14, 16, 19, 22, 24, 27, 30, 32, 35, 37, 40, 42
- .db 45, 47, 50, 52, 55, 57, 59, 62, 64, 66, 68, 70, 72, 74, 76, 78
- .db 80, 82, 84, 86, 87, 89, 90, 92, 93, 95, 96, 98, 99,100,101,102
- .db 103,104,105,106,106,107,108,108,109,109,109,110,110,110,110,110
- .db 3, 6, 8, 11, 14, 16, 19, 22, 25, 27, 30, 33, 35, 38, 40, 43
- .db 45, 48, 50, 53, 55, 58, 60, 62, 65, 67, 69, 71, 73, 75, 77, 79
- .db 81, 83, 85, 87, 88, 90, 91, 93, 95, 96, 97, 99,100,101,102,103
- .db 104,105,106,107,108,108,109,109,110,110,111,111,111,111,111,111
- .db 3, 6, 8, 11, 14, 17, 19, 22, 25, 28, 30, 33, 36, 38, 41, 43
- .db 46, 48, 51, 53, 56, 58, 61, 63, 65, 67, 70, 72, 74, 76, 78, 80
- .db 82, 84, 86, 87, 89, 91, 92, 94, 96, 97, 98,100,101,102,103,104
- .db 105,106,107,108,109,109,110,111,111,111,112,112,112,112,113,113
- .db 3, 6, 8, 11, 14, 17, 20, 22, 25, 28, 31, 33, 36, 39, 41, 44
- .db 46, 49, 52, 54, 56, 59, 61, 64, 66, 68, 70, 73, 75, 77, 79, 81
- .db 83, 85, 87, 88, 90, 92, 93, 95, 97, 98, 99,101,102,103,104,105
- .db 107,107,108,109,110,111,111,112,112,113,113,113,114,114,114,114
- .db 3, 6, 9, 11, 14, 17, 20, 23, 25, 28, 31, 34, 36, 39, 42, 44
- .db 47, 50, 52, 55, 57, 60, 62, 64, 67, 69, 71, 73, 76, 78, 80, 82
- .db 84, 86, 88, 89, 91, 93, 94, 96, 98, 99,100,102,103,104,106,107
- .db 108,109,109,110,111,112,112,113,113,114,114,115,115,115,115,115
- .db 3, 6, 9, 11, 14, 17, 20, 23, 26, 28, 31, 34, 37, 39, 42, 45
- .db 47, 50, 53, 55, 58, 60, 63, 65, 67, 70, 72, 74, 76, 79, 81, 83
- .db 85, 87, 88, 90, 92, 94, 95, 97, 99,100,102,103,104,105,107,108
- .db 109,110,111,111,112,113,114,114,115,115,115,116,116,116,116,116
- .db 3, 6, 9, 12, 14, 17, 20, 23, 26, 29, 32, 34, 37, 40, 43, 45
- .db 48, 51, 53, 56, 58, 61, 63, 66, 68, 70, 73, 75, 77, 79, 81, 84
- .db 86, 87, 89, 91, 93, 95, 96, 98,100,101,103,104,105,107,108,109
- .db 110,111,112,113,113,114,115,115,116,116,117,117,117,117,117,117
- .db 3, 6, 9, 12, 15, 18, 20, 23, 26, 29, 32, 35, 37, 40, 43, 46
- .db 48, 51, 54, 56, 59, 61, 64, 66, 69, 71, 73, 76, 78, 80, 82, 84
- .db 86, 88, 90, 92, 94, 96, 97, 99,101,102,104,105,106,108,109,110
- .db 111,112,113,114,115,115,116,117,117,117,118,118,118,118,119,119
- .db 3, 6, 9, 12, 15, 18, 21, 24, 26, 29, 32, 35, 38, 41, 43, 46
- .db 49, 52, 54, 57, 59, 62, 65, 67, 69, 72, 74, 76, 79, 81, 83, 85
- .db 87, 89, 91, 93, 95, 97, 98,100,102,103,105,106,107,109,110,111
- .db 112,113,114,115,116,116,117,118,118,119,119,119,120,120,120,120
- .db 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 35, 38, 41, 44, 47
- .db 49, 52, 55, 57, 60, 63, 65, 68, 70, 73, 75, 77, 80, 82, 84, 86
- .db 88, 90, 92, 94, 96, 98, 99,101,103,104,106,107,109,110,111,112
- .db 113,114,115,116,117,118,118,119,119,120,120,121,121,121,121,121
- ; ksztalt przebiegu dla 50.5..58.0Hz [1.15*sin(x)+0.15*sin(3*x)]
- .db 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 44, 47
- .db 50, 53, 56, 58, 61, 63, 66, 68, 71, 73, 76, 78, 80, 82, 85, 87
- .db 89, 91, 93, 94, 96, 98,100,101,103,104,106,107,108,110,111,112
- .db 113,114,115,116,116,117,118,118,119,119,120,120,120,120,120,121
- .db 3, 6, 9, 12, 15, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49
- .db 52, 54, 57, 60, 63, 65, 68, 70, 73, 75, 77, 80, 82, 84, 86, 88
- .db 90, 92, 94, 96, 98, 99,101,102,104,105,107,108,109,110,111,113
- .db 113,114,115,116,117,117,118,119,119,119,120,120,120,120,120,121
- .db 3, 6, 9, 13, 16, 19, 22, 26, 29, 32, 35, 38, 41, 44, 47, 50
- .db 53, 56, 59, 62, 64, 67, 69, 72, 74, 77, 79, 81, 84, 86, 88, 90
- .db 92, 94, 96, 97, 99,101,102,104,105,106,108,109,110,111,112,113
- .db 114,115,116,116,117,118,118,119,119,119,120,120,120,120,120,121
- .db 3, 6, 10, 13, 17, 20, 23, 27, 30, 33, 36, 39, 43, 46, 49, 52
- .db 55, 58, 60, 63, 66, 69, 71, 74, 76, 79, 81, 83, 85, 87, 89, 91
- .db 93, 95, 97, 99,100,102,103,105,106,107,109,110,111,112,113,114
- .db 115,115,116,117,117,118,118,119,119,120,120,120,120,120,120,121
- .db 3, 7, 10, 14, 17, 21, 24, 27, 31, 34, 37, 41, 44, 47, 50, 53
- .db 56, 59, 62, 65, 68, 70, 73, 75, 78, 80, 83, 85, 87, 89, 91, 93
- .db 95, 97, 98,100,102,103,105,106,107,108,110,111,112,113,114,114
- .db 115,116,117,117,118,118,119,119,119,120,120,120,120,120,120,121
- .db 3, 7, 10, 14, 18, 21, 25, 28, 32, 35, 39, 42, 45, 48, 52, 55
- .db 58, 61, 64, 67, 69, 72, 75, 77, 80, 82, 84, 87, 89, 91, 93, 95
- .db 97, 98,100,102,103,104,106,107,108,109,111,112,112,113,114,115
- .db 116,116,117,117,118,118,119,119,120,120,120,120,120,120,120,121
- .db 3, 7, 11, 14, 18, 22, 25, 29, 33, 36, 40, 43, 46, 50, 53, 56
- .db 59, 62, 65, 68, 71, 74, 76, 79, 81, 84, 86, 88, 90, 92, 94, 96
- .db 98,100,101,103,104,106,107,108,109,110,111,112,113,114,115,116
- .db 116,117,117,118,118,119,119,119,120,120,120,120,120,120,120,121
- .db 3, 7, 11, 15, 19, 22, 26, 30, 34, 37, 41, 44, 48, 51, 54, 58
- .db 61, 64, 67, 70, 73, 75, 78, 81, 83, 86, 88, 90, 92, 94, 96, 98
- .db 100,101,103,104,106,107,108,109,111,112,112,113,114,115,116,116
- .db 117,117,118,118,119,119,119,120,120,120,120,120,120,120,120,121
- .db 3, 7, 11, 15, 19, 23, 27, 31, 35, 38, 42, 45, 49, 52, 56, 59
- .db 62, 66, 69, 72, 74, 77, 80, 82, 85, 87, 90, 92, 94, 96, 98, 99
- .db 101,103,104,106,107,108,109,111,112,113,113,114,115,116,116,117
- .db 117,118,118,119,119,119,119,120,120,120,120,120,120,120,120,121
- .db 4, 8, 12, 16, 20, 24, 28, 32, 35, 39, 43, 47, 50, 54, 57, 61
- .db 64, 67, 70, 73, 76, 79, 82, 84, 87, 89, 91, 93, 96, 97, 99,101
- .db 103,104,106,107,108,110,111,112,113,114,114,115,116,116,117,117
- .db 118,118,119,119,119,119,120,120,120,120,120,120,120,120,120,121
- .db 4, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 52, 55, 59, 62
- .db 65, 69, 72, 75, 78, 81, 83, 86, 88, 91, 93, 95, 97, 99,101,103
- .db 104,106,107,109,110,111,112,113,114,115,115,116,117,117,118,118
- .db 118,119,119,119,120,120,120,120,120,120,120,120,120,120,120,121
- .db 4, 8, 12, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 60, 64
- .db 67, 70, 73, 77, 79, 82, 85, 88, 90, 93, 95, 97, 99,101,103,104
- .db 106,107,109,110,111,112,113,114,115,116,116,117,117,118,118,119
- .db 119,119,119,120,120,120,120,120,120,120,120,120,120,120,120,121
- .db 4, 8, 13, 17, 21, 26, 30, 34, 38, 42, 46, 50, 54, 58, 62, 65
- .db 69, 72, 75, 78, 81, 84, 87, 89, 92, 94, 96, 99,101,103,104,106
- .db 107,109,110,111,112,114,114,115,116,117,117,118,118,119,119,119
- .db 120,120,120,120,120,120,120,120,120,120,120,120,120,120,120,121
- .db 4, 9, 13, 18, 22, 26, 31, 35, 39, 43, 48, 52, 55, 59, 63, 67
- .db 70, 73, 77, 80, 83, 86, 88, 91, 94, 96, 98,100,102,104,106,108
- .db 109,110,112,113,114,115,116,116,117,118,118,119,119,119,120,120
- .db 120,120,120,120,120,121,121,121,121,121,121,121,121,121,121,121
- .db 4, 9, 13, 18, 23, 27, 31, 36, 40, 44, 49, 53, 57, 61, 64, 68
- .db 72, 75, 78, 81, 85, 87, 90, 93, 95, 98,100,102,104,106,108,109
- .db 111,112,113,114,115,116,117,118,118,119,119,120,120,120,120,120
- .db 121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121
- .db 4, 9, 14, 18, 23, 28, 32, 37, 41, 45, 50, 54, 58, 62, 66, 70
- .db 73, 77, 80, 83, 86, 89, 92, 95, 97, 99,102,104,106,108,109,111
- .db 112,113,115,116,117,117,118,119,119,120,120,120,121,121,121,121
- .db 121,121,121,121,121,121,121,121,121,121,121,121,121,121,121,121
- .eseg
- .org 0x000
- .db 0 ; pomin
- .db 19 ; 10Hz czest.rozruchowa (FREQ+1)/2[Hz]
- .db 3 ; 25Hz/s rampa przysp.: 100/(ACCEL+1)[Hz/s]
- .db 9 ; 10Hz/s rampa hamowania: 100/(DECEL+1)[Hz/s]
- ;****** Koniec programu **************************************************
PSEP pisze:Czasem odnoszę wrażenie, że umiejętność programowania nawet nieskomplikowanych mikrokontrolerów w asemblerze jest w zaniku, dlatego chciałbym zaprezentować pętlę programu falownika w całości. Program jest stosunkowo krótki i bogato skomentowany, więc Czytelnik znający podstawy asemblera, niekoniecznie dla AVR, nie powinien mieć problemów z analizą programu. Projekty falowników, nawet takich prostych jak nasz, są stosunkowo trudno dostępne, więc w materiałach pomocniczych zamieściliśmy pełny listing programu.
W artykule jest moduł v1, a ja mam v2 - nie wiem czym to się do końca różni. Patrząc na te moduły mój jest zbudowany na jednym PCB, a v1 ma osobne PCB dla wysokiego napięcia i osobno jest moduł z uC, sterujący.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
- Oldman
- Posty: 61
- Rejestracja: 19 cze 2019, 11:15
Re: Sterowanie mocą i/lub obrotami
Według listingu widać, że nastawa potencjometru odczytywana jest przez ADC (linia 138), bo w końcu jak inaczej miało by to być
Żeby być na 100% pewnym to możesz wylutować potencjometr a na PB.2 podawać zewnętrzne napięcie z zakresu 0-5V. Tylko uwaga: brak izolacji od sieci!!! Więc najlepiej będzie wykorzystać jako sterowanie np. bateryjki 1,5V. Podłącz jedną, potem dwie a następnie trzy. Obroty pompki powinny się zmieniać. Jeżeli to zadziała to potem eksperymenty z PWM. Choć uważam, że szkoda czasu na zabawę z bateryjkami i od razu testowałbym działanie układu wg. mojego schematu.
Żeby być na 100% pewnym to możesz wylutować potencjometr a na PB.2 podawać zewnętrzne napięcie z zakresu 0-5V. Tylko uwaga: brak izolacji od sieci!!! Więc najlepiej będzie wykorzystać jako sterowanie np. bateryjki 1,5V. Podłącz jedną, potem dwie a następnie trzy. Obroty pompki powinny się zmieniać. Jeżeli to zadziała to potem eksperymenty z PWM. Choć uważam, że szkoda czasu na zabawę z bateryjkami i od razu testowałbym działanie układu wg. mojego schematu.
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Sterowanie mocą i/lub obrotami
Na pewno da się tak zrobić bo od dawna używano PWM w AVR np do cyfrowego sterowania kontrastem wyświetlaczy LCD (można się podłączyć pod pin V0 zamiast potencjometru).
Na tej samej zasadzie działają DAC, tyle że to specjalnie bardzo szybkie PWM.
Martwię się tylko o jedno. Czy taki dwumetrowy kabel z PWM`em nie będzie "siał" w jakimś paśmie jak jakaś antena
Testuj
Nie chcę specjalnie konstrukcji utrudniać, ale czasem liczy się EMI
Miałem kiedyś zegar zdalnie sterowany na wyświetlaczach siedmiosegmentowych i było ich tam kilka (chyba sześć) i trzeba to było multipleksować. Te multileksowanie wprowadzało takie zakłócenia, że długo szukałem dlaczego odbiornik na 433MHz nie odbiera (oczywiście dochodzi baudrate itd..)
Uważam więc, że wszystkie "kluczowane" obwody powinny być jak najkrótsze. Nawet zwykły przewód będzie się zachowywał jak dławik im wyższa będzie prędkośc kluczowania PWM.
Na tej samej zasadzie działają DAC, tyle że to specjalnie bardzo szybkie PWM.
Martwię się tylko o jedno. Czy taki dwumetrowy kabel z PWM`em nie będzie "siał" w jakimś paśmie jak jakaś antena
Testuj
Nie chcę specjalnie konstrukcji utrudniać, ale czasem liczy się EMI
Miałem kiedyś zegar zdalnie sterowany na wyświetlaczach siedmiosegmentowych i było ich tam kilka (chyba sześć) i trzeba to było multipleksować. Te multileksowanie wprowadzało takie zakłócenia, że długo szukałem dlaczego odbiornik na 433MHz nie odbiera (oczywiście dochodzi baudrate itd..)
Uważam więc, że wszystkie "kluczowane" obwody powinny być jak najkrótsze. Nawet zwykły przewód będzie się zachowywał jak dławik im wyższa będzie prędkośc kluczowania PWM.
- niveasoft
- Posty: 1221
- Rejestracja: 17 sie 2015, 12:13
- Kontakt:
Re: Sterowanie mocą i/lub obrotami
No a tak BTW i dla beki
Pamiętacie jak w programie "Kocham Cię Polsko", albo podobnym (nie pamiętam), zawodnicy odpowiadając na pytania przerzucali miedzy sobą jak gorący kartofel pudełko które po czasie ma wybuchnąć?
Ktoś kiedyś poprosił mnie o napisanie softu do takiego podobnego. Można wybrać czas do odliczania. Ledy migają tym szybciej im mniej czasu zostało. W końcowej fazie uwalniany jest dym a na samym końcu następuje boom
Film jest nakręcony przez tego kolegę (muszę Mu kiedyś nagadać jak trzymać telefon) z najkrótszym czasem żeby filmu nie przedłużać
Ahahahaha
[media]]
Pamiętacie jak w programie "Kocham Cię Polsko", albo podobnym (nie pamiętam), zawodnicy odpowiadając na pytania przerzucali miedzy sobą jak gorący kartofel pudełko które po czasie ma wybuchnąć?
Ktoś kiedyś poprosił mnie o napisanie softu do takiego podobnego. Można wybrać czas do odliczania. Ledy migają tym szybciej im mniej czasu zostało. W końcowej fazie uwalniany jest dym a na samym końcu następuje boom
Film jest nakręcony przez tego kolegę (muszę Mu kiedyś nagadać jak trzymać telefon) z najkrótszym czasem żeby filmu nie przedłużać
Ahahahaha
[media]]
- Jacek
- Posty: 384
- Rejestracja: 25 kwie 2016, 19:14
Re: Sterowanie mocą i/lub obrotami
Witam - dobre
pozdrawiam Jacek.
pozdrawiam Jacek.
- Oldman
- Posty: 61
- Rejestracja: 19 cze 2019, 11:15
Re: Sterowanie mocą i/lub obrotami
Zakłócenia można ograniczyć stosując kabel ekranowany.