Tak, jednak w powyższym przykładzie podmiana Timer2 na nazwę rejestru nic nie zmieni - nadal będzie chciał to potraktować jako zmienną. To akurat dobrze (że będzie chciał tak potraktować). Źle że mimo chęci, nie traktuje. Wpisując jednak TNCT1 zamiast 2 - wszystko jest ok. Wiem już też na pewno, że to kompilator. Dokładnie.
O co mi dokładnie chodzi: W helpie Bascom jest napisane, że w przypadku kości 8535 mam do dyspozycji preskalery 1, 8, 32, 64, 128, 256, 1024, a dla kości M103 1, 8, 32, 64, 256, 1024. Ja zaś posiadam kość M32 i w PDF, który dotyczy tego mikrokontrolera jest tabelka na 127 stronie, która zawiera w sobie jakby wykaz dostepnych częstotliwości, ktorymi...
Nie avrstudio5! To jest beta- w dodatku schrzaniona. Ściągnij normalne 4.18.
[syntax=basic4gl] Config Timer1 = Timer , Prescale = 8 'Parametr Prescale może być równy:1, 8, 64, 256 lub 1024 [/syntax] Potem w programie możesz sobie odczytywać zawartość tego licznika w następujący sposób (np.): [syntax=basic4gl] Stan = Timer1 'Zmienna Stan typu Word [/syntax] robiw
Witam! Potrzebuję zmienić TIMER1 do obsługi PWM na TIMER2 ktoś pomoże? ATMEGA32 BASCOM
Z tego co porównuję z listingiem źródłowym z książki to masz kilka błędów: sprawdź: [syntax=basic4gl]Config Lcd = 16 * 2[/syntax] oraz umiejscowienie [syntax=basic4gl]Cls[/syntax] w pętli a u ciebie jest poza pętlą oraz wyrzuć konfigurację [syntax=basic4gl]Config Timer2 = Timer , Async = On , Prescale = 128[/syntax] sprawdź także ustawienia Fuse CKSEL3..0...
...Co bym nie robił... wynik zawsze jest ten sam... Nic dziwnego, bo Bascom ignoruje polecenie Load Timer2 = 178 Zmień na Load Timer2 , 178 'lub Timer2= 256 - 178 i sprawdź :-P
Timer2 jest nieco inny niż Timer1. Timer2 w M8 może pobierać sygnał zegarowy z oscylatora taktującego procesor bądź z kwarcu małej częstotliwości. Spróbuj dodać do Config Timer2 ASYNC = OFF . Skieruje to do Timera 2 sygnał zegarowy generatora uC. P. S. Jak chcesz sprawdź to sobie ustawieniach rejestrów. Mnie się nie chciało. Poczytaj sobie helpa. No...
Tak po krótce przeanalizowałem wątek TIMER2 tego nowego programu. Po prześledzeniu kilku instrukcji i "śladów skoków" mogę stwierdzić, że nie jest dziwne, że gdy aktywny jest TIMER2 i jego przerwania to wszystko siada. Pojawia się przerwanie TIMER2, program wskakuje do jego obsługi a tam napotyka: GOSUB w inne miejsce, gdzie napotyka GOTO w jeszcze...
Zegarek oprócz funkcji wyświetlania czasu ma pokazywać temperaturę i mieć możliwość sterowania z pilota (RC5). Normalnie (by default) Bascom używa Timer0 dla RC5. Jeżeli Timer0 masz zajęty do inego celu, więc potrzebujesz skonfigurować Timer2 dla RC5. e marcus
Coś mi się zdaje że przerwanie się nie wykonuje. W symulacji się wykonuje, ale co 65536 cykli. BASCOM coś pierdzieli. Może przejdz na Timer0 albo Timer2 , przynajmniej dla testu.
Nie ma, timer2 na as i liczysz na piechotkę , oczywiście kwarc musi być podłączony (32768 na osci osco).
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
Całości kodu nie wstawiałem bo chodziło tylko o tą część którą napisałem, po prostu powinno działać zamiennie a nie działało.Problemem okazał się jak zwykle Bascom po aktualizacji do wersji 2.0.7.3 polecenie CONFIG TIMER działa poprawnie Dziękuje wszystkim za chęć pomocy Dodano po 52 Trochę się dokształciłem międzyczasie i sprawdziłem w starym Bascom'ie...
Witam. Można np. tak :) 6 x Pwm Config Timer0 = Pwm , Prescale = 1 , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja Timera Config Timer2 = Pwm , Prescale = 1 , Pwm = On , Compare A Pwm = Clear Down , Compare B Pwm...
Te procesory się aż tak nie różnią. Dodatkowe funkcjonalności pinów nie przeszkadzają w niczym dopóki ich nie uruchomisz. (PCINT - Pin Change Interrupt trzeba wiedzieć jak włączyć). Jest duża różnica jeśli chodzi o Timery właśnie. Mega8 ma na przykład tylko jeden rejestr Compare dla Timer2 dlatego inaczej się nazywają. Opisałem to u siebie na stronie...
Próbuję uruchomić programowy zegar w Bascom na arduino Mega 2560 Kompiluje się bez problemu ale niestety nie działa. Jakiego 'działania ' się tu spodziewasz? -ma poruszac wskazówki, czy też wskazywac czas na dysplay leżącym w szufladzie? - a może przekładac kartki kalendarza? Nie bardzo będziesz mógł uruchomic 'Bascomowy- softwarowy' zegar na Arduino...
Nie chce mi się zagłębiać dalej w pisanie. Tych trybów możesz sobie dopisać ile chcesz. I jak Przewijajac menu naciśniesz Set to zmień tryb na, na przykład, "Ustawiam_temp" i w tym trybie znów przyciski Plus i Minus bedą działać dla zmiennej ustawianej. Potem naciskasz ESC i wracasz do trybu jakiego chcesz.. to proste i pewne. [syntax=basic4gl]$regfile...
Może to ja zrobiłem błąd, który kompilator zignorował i przepisał po swojemu... no nie wiem Nigdy nie było oficjalnie takiej konstrukcji polecenia CONFIG TIMER2 z takim parametrem jak klauzula PWM A = 8. Aczkolwiek czasem polecenia CONFIG przyjmują różne klauzule, ale ich działanie odbiega od założeń. Np. do niedawna można było w CONFIG ADC napisać...
Proszę. Gotowe bo jak widzę kilka If`ów do tej samej zmiennej zamiast Select Case i tym podobne kwiatki... [syntax=vbnet]$regfile = "m32def.dat" $crystal = 11059200 $hwstack = 64 $swstack = 16 $framesize = 64 Const Timeout_time = 8 'x500ms Config Submode = New ' config LCD 2X16 Config Lcdpin = Pin , Rs = Porta.2 , E = Porta.3 , Db4 = Porta.4 , Db5 =...
Witam ogarnąłem już dużo na temat programowania w bascom, tylko mam kolejny problem, mianowicie chciałbym zaprogramować obsługę serwa pilotem nadającym w RC5 lecz gdy połączę obsługę rc5 i serwa mam takie błędy i nic nie działa: ........ Pojedynczo programy działają ok. ................. Rc5+ servo (nie działa) Pozdrawiam. Zauważ że zarówno 'Config...
GETRC5 używa licznika TIMER0. Albo TIMER2 jeśli go układ posiada i tak go skonfigurujesz w CONFIG RC5. Aby ustrzec się dziwnych błędów (z adresami linii poza programem) nie zapomnij o wpisaniu nazwy pinu w CONFIG RC5. Sam kod bazuje na dokumentach ATMELa: http://www.atmel.com/dyn/resources/prod_... I tam można całą procedurę prześledzić....
Proszę, może to Cię zachęci do przeczytania reszty we własnym zakresie. Program "miga" nośną 38kHz co 1ms ;) http://obrazki.elektroda.pl/5631733100_1... [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 $swstack = 32 $framesize = 32 Config Timer2 = Timer , Prescale = 1 , Compare = Toggle , Clear Timer = 1 Compare2...
łatwiej się już chyba nie da. Sorki, ale ja bym raczej powiedział, że: "JUŻ GORZEJ SIĘ NIE DA :(" Co to za rozwiązanie gdzie w środku siedzi jeszcze obrzydliwy Wait !!! brrr ale żeby nie być gołosłownym, który tylko krytykuje.... Ok, panowie - widzę, że wasze zmagania spełzają na niczym, pokażę wam więc jak się powinno podchodzić do programowania....
Pozwolę sobie umieścić post pod postem żeby wiadomość dotarła do zainteresowanego. Jeszcze lepszym wyjściem dla takiego zegara będzie zastosowanie dedykowanego rezonatorka 32768Hz (32,768KHz) Wartość 32768 to w zapisie binarnym dokładnie piętnaście bitów. Jeśli więc Timer będzie zliczał generowane impulsy to po 32768 uzna że mineła sekunda :D Bascom...
Witam. Oto kod w Bascomie $sim $regfile = "m8def.dat" Dim Kat As Word Kat = 110 Config Timer2 = Timer , Prescale = 256 Enable Timer2 Start Timer2 Timer2 = Kat On Timer2 Przerwanie Enable Interrupts Do nop Loop Przerwanie: Timer2 = Kat Return Moj problem polega na tym iz w zaden sposob nie moge uruchomic timera2 przy podziale 256 i wyzszym. Przy innych...
. Deklarując zmienną "dowpisania" jako bajt nic się nie zmienia. W czasie jednej pełnej pętli głównej licznik zwiększa się o 3, więc dla najwyższej możliwej częstotliwości pętla wykona się 16 razy zanim dojdzie do przerwania, nawet zostawiając w głównej pętli wysyłanie ocr2 przez uart, gdyby wywalić tę linijkę, pewnie trwałoby to jeszcze krócej. Nie...
Tylko jak teraz dopisać tą konfiguracje led? Tak jak chcaiłem z rgb zrobić
witam ze specyfikacji wyczytalem ze ten procesor ma dwa wyjscia pwm, jedno pod wyjsciami pd4 (oc1b) i pd5 (oc1a) (timer1), a drugie pod wyjsciem pd7 (oc2) (timer2) .... pierwsze wyjscie dziala bez problemu natomiat drugiego nie moge skonfigurowac (pod bascom-em), wyskakuje mi error86 przy lini w ktorej konfiguruje timer2 ... nawet kiedy wpisuje: config...
Witam serdecznie zrobiłem zegar na w/w procesorze i wyświetlaczach 7 segmentowych led. Sekundę odmierzam z wykorzystaniem Timera 2 w trybie asynchronicznym z dodatkowym kwarcem 32,768Khz. Multipleksowanie wyświetlaczy realizowane jest za pomocą timera0. Do tej pory wszystko działa świetnie, Chciałbym jednak dodać jeszcze zliczanie setnych sekundy i...
Przepraszam że odkopuję temat ale miałem identyczny problem który po długich zmaganiach udało mi się rozwiązać, więc chciałem się z nim podzielić. Rozwiązaniem jest ręczne ustawienie rejestrów specjalnych odpowiadających za konfigurację PWM. Tak ja korrus666 napisał Bascom używa pewnie tych samych rejestrów do obsługi LCD i PWM z Timer2. Usuń linijke:...
Witam Czy potrafi któryś z was przekonwertować taki fragment kodu w BASCOM na C (Atmel Studio 6) ? Config Adc = Single , Prescaler = Auto , Reference = Avcc Start Adc Tak, Ty też to potrafisz.... Zapoznaj się (przestudiuj) ten tutorial: http://www.youtube.com/watch?v=51QJ_WHN7... A "konversja " będzie: zamiast M328; przekonvertujesz do M16 Nie ma czegoś...
Pod tym linkiem [url=https://bart-projects-forum.cba.pl/... znajdziesz dwa, na pewno działające, kody do QM5883L i HM5883L. Te moduły nie są zamienne wprost i dlatego kody są dwa. Mogę tak napisać bo to moje kody które sam napisałem i sprawdziłem :D Mam gdzieś z tego film. Jak znajdę to wrzucę. Wszystko było uruchamiane...
Wszystko wyjaśniłem w Post #5. Dodano po 16 Wewnętrzny oscylator nie ma nic wspólnego z kwarcem 32.768 . Oscylator ten napędza sam uC, natomiast kwarc zegarkowy ma napędzać dodatkowo jakiś timer.W przypadku Bascom jest to Timer2, gdzie są dodatkowe instrukcje do ustawienia i pracuje asynchronicznie. Przykład w Bascom. Config Timer2 = Timer , Async =...
Zacznijmy od tego, że w Tiny2313 nie ma ADC więc tu pytanie jest bezprzedmiotowe :D W Tiny261 timery są ciut nowsze niż w przypadku Mega8 i Tiny13. Wystepują tam już podwójne rejestry dla Timera0. Są to odpowiednio A i B czyli COMPARE 0 A i COMPARE 0 B. Zero odbosi się właśnie do Timera 0 Ogólnie dla nowszych prockow AVR jest to normą że tych rejestrów...
Witam, napisałem program zegarka, ale nie jestem jeszcze pewien kilku rzeczy. Mianowicie mam zamiar użyć kwarcu zegarkowego 32,768kHz. Daje schemat: http://obrazki.elektroda.net/48_12275438... Zdaje mi się, że jest on dobrze podłączony, ale jestem początkujący więc mogę się mylić. I nie wiem jak w bascomie zrobić żeby co sekundę mi zwiększało...
http://obrazki.elektroda.pl/6856023800_1... Od kilku tygodni zmagam się z problemem dokończenia wsadu Bascom na sterownik do rolet i oświetlenia. Otóż pierwszy problem to wyświetlanie "krzaków" na LCD 2*16 takich jak na zdjęciu. Otóż sterownik na przemian z czasem po 20sek wyświetla temperaturę. Sterownik po włączeniu zasilania pracuje...
Myślę że forum jest nie tylko po to by pytać. Kolega zdążył zamknąć wątek i napisał że Bascom nie pozwolił na skonfigurowanie Timera i musiał to zrobić na rejestrach. Nie wiedział jak, a ja chciałbym dla potomnych zostawić instrukcję. Dołączyłem ten post i odblokowałem temat. Tak to wygląda i się kompiluje: [syntax=basic4gl]$regfile = "m128def.dat"...
Witam! Jestem początkującym programistą i chciałbym zrobić sobie zegarek na LCD. Napisałem kod w BASCOM z wykorzystaniem TIMERA1 i wewnętrznego oscylatora, ale on się śpieszy. Nie mogę wcale ustawić aby dokładnie odliczał jedną sekundę. Czytałem w internecie, że do tego trzeba wykorzystać TIMER2 i zewnętrzny kwarc zegarkowy 32,768kHz, ale ja mam problem...
Ja bym zdeassemblował kod i zobaczył jak BASCOM robi to na Timerze0 i tak samo bym to zrobił na Timerze2 ;) Dodano po 13 Na początek: $regfile = "M16def.dat" $hwstack = 32 $swstack = 32 $framesize = 32 $crystal = 16000000 '---------------------------------------... Dim Licznik_servo As Byte Dim Servo As...
Witam Z ciekawości uruchomiłem czujnik MPU6050, kod wykorzystałem z jednej z niemieckich stron - poniżej. Nie jestem pewien, czy kod jest poprawny, bo wyniki są bardzo "ruchliwe". Tzn. gdy płytka czujnika leży nieruchomo na stole to wyniki się zmieniają i o to sporo. Przykładowo: Accx zmienia się od np 10 do 270 Accy cały czas jest duże - nawet ponad...
Mimitron widzę, że nawet nie sprawdziłeś co robi config clock w bascomie, na wyświetlaczu nie będziesz miał cały czas jednej godziny bo bascom tym poleceniem ustawia timer2 do pracy anachronicznej, ustawia odpowiedni preskaler, konfiguruje przerwanie od przepełnienia i tworzy funkcje obsługi przerwania w której automatyczne zwiększa te zmienne. Wystarczyło...
1Hz to raz na sekundę. 8MHz to osiem milionów razy na sekundę. Sekunda jest tu kluczowa. W ciągu sekundy procesor taktowany 8MHz przetworzy około 8mln instrukcji (pomijam te które wymagają dwóch taktow) no a jak podłączysz do procesora taktowanie 16MHz to odwali dwa razy tyle roboty w ciągu sekundy . Zerknąłem na twoje kody i mam kilka rad. W Bascom...
A tak w szczególe to na TIMER0 nie ma PWM w M8 . Jest natomiast na TIMER2
Witam. W pewnym sofcie dla Atmega16 wykorzystałem już: - Timer1 (16 bit) do odliczania 0,0001s odcinków czasu - Timer2 (8 bit) jest wykorzystywany przez odbiornik podczerwieni (instrukcja getrc5) Timer 0 niby jest wolny, ale nie wiem / nie jestem pewien czy nie jest on wykorzystywany przez jakieś używane przeze mnie instrukcje (np. print dla sprzętowego...
Dzięki, widze teraz, że jednak troszke namieszałem ustawiając Timer2 ;) Nie wiem tylko dlaczego Bascom przepuścił moją konfiguracje Timer2. W pierwszej wersji programu, która była bez wykorzystania PWM (poprzez Timer2), program odliczał czas (Timer1), zliczał impulsy na Timer0 i migał diodą. W związku z tym pętla w programie głównym była pusta (Do-Loop)....
Uruchom symulację w BASCOM i włącz opcję podglądu przestrzeni IO (Nie zapomnij włączyć też Refresh Variables). Sprawdź czy w ASSR znajdzie się wartość 08 jak program przeleci przez CONFIG TIMER2. Kompilacja Twojego programu w BASCOM AVR 1.11.9.4 daje poprawne rezultaty w rejestrach. Możesz spróbować też wgrać wersję skompilowaną w najnowszej wersji....
W chwili gdy obsługuje 1-Wire, Bascom ZAWSZE nawet na czas generowania resetu, co trawa ok 500us, później presence, co daje razem ok 800us, zawiesza przerwania. To samo w czasie transmisji danych, transmisja bajtu to ponad 500us zawieszone przerwania. W tym czasie nie wykona się przerwanie od timera, od i cała tajemnica. Ale zabobony. Każdy może otworzyć...
TIMER2 jest ośmiobitowy więc nie ma rejestrów H i L bo nie ma czego podzielić na dwa. Dla ATmega328 i TIMER2 możesz w Bascom używać takich nazw i zerknij na ich adresy. Jeśli sa takie same to oznacza to że nazwy są zamienne. [syntax=basic4gl]ASSR=$B6 ; - ASYNC TIM(2) - OCR2B=$B4 ; - TIM2 - PWM2B=$B4 ; - TIM2 - COMPARE2B=$B4 ; - TIM2 - OCR2A=$B3 COMPARE2A=$B3...
Disable Interrupts Call Gettime Enable Interrupts Jeżeli funkcja Gettime trwa zbyt długo to gubisz przerwania od timera. Jak zmieniłeś preskaler, to masz przerwania co 8ms i pewnie już się wyrabia. Co takiego robi w Bascom Gettime, że trzeba wyłączać przerwania?
timer2 bascom bascom timer2 portd bascom timer2 portu
agregat napięcie odbiornik radiowy kanałowy krzywa grzewczy grzejnik
interfejs multidiag grupa pompowa
Zasilacz PC Corsair/Seasonic/Be Quiet – brak obrotów wentylatora po zwarciu zielonego z czarnym, tryb półpasywny czy usterka? FirstChip chipYC2019 USB Shows 0GB Capacity Issue