Oto prosty przykład: $regfile = "m8def.dat" $crystal = 4000000 Config Timer1 = Pwm , Prescale = 1 , Compare A = Disconnect Compare1a = 32768 On Compare1a Oc1a_int Enable Compare1a Enable Interrupts Do nop nop nop nop Loop Oc1a_int: nop nop nop Return Reszta opisana w Helpie :wink: Piotrek
No jak za każdym razem do licznika wpisujesz zero to jakim cudem ma być spełniony ten warunek timer1= A?
A gdzie instrukcja CONFIG TIMER1 = COUNTER?
Chodziło tylko o zamianę Timer1 na Timer0, ale ok mogę pokazać który nie działa... a właściwie który już działa... dobrałem wartości prescale i load całkowicie doświadczalnie... miałem nadzieje że ktoś wyjaśni co i jak z tym przy okazji ale ok... Przy taktowaniu 16 MHz; Versja 0 dla Timer1 masz zalozone: const Timer1Reload = 700 config timer1=timer,...
Witam. Zapis (składnia) Load Timer1 jest zły. Sprawdź w pomocy Bascoma.
Jeżeli to jest przetwornica to nie pisz UPS. To kwestia tylko zamiany przed główną pętlą Do Loop: Reset tr1 Set tr1 W kodzie tym początkowym. Pamiętaj o tych 10ms.
to zatrzymanie timera przed załadowaniem wartości jakby pomogło (przynajmniej nie zachowuje się dziwnie) teraz miga w równych odstępach ... Home Lcd "P=" ; P ; "us" Lowerline Lcd "I=" ; I ; "us " ; Licznik If Licznik = P Then Portd.2 = 0 End If If Licznik >= C Then Portd.2 = 1 Licznik = 0 End If ... Dobra odczepiam się od portów :) I już mówię dlaczego...
To nie Bascom jest przyczyną tylko źle napisany program ;). 1. odczyt timera1 16bit odbywa się po przez rejestr pomocniczy TEMP, ten rejestr jest też używany przez inne procedury i funkcje i jeśli jest użyty to właśnie niszczona jest wartość High timer1 bo ona tam jest wpisana gdy używasz komendy. wpisując tak timer1 do tablicy możesz gubić High timer1....
Timer1 jest 16-bitowy. 2^16 = 65536.
Sprawdź w symulacji co się dzieje z rejestrem TCCR1B (a szczególnie z bitami CS10 - 12) po komendzie "timer1 = 0".
Nie mam noty przed sobą, ale o ile mnie pamięc nie myli to timery 0 i 2 mają możliwość zrobienia przerwania typu Compare w trybie CTC. Sprawdź to.
Prototyp zrobiłem na pomiarze napięcia (ADC) na fotodiodzie - to chodziło, dopóki nie zacząłem testu na dworze.... Fotodioda łapała podczerwień z... no właśnie, skąd? Nie wiem. To oczywiste. Światło z otoczenia również zawiera podczerwień, więc pojawiają się zakłócenia. Po odłączeniu fotodiody i dotykaniu kabelkiem do + na wyświetlaczu także pokazywały...
... wydawało mi się, że w trybie CTC mogę za pomocą OCR1A i OCR1B oddzielnie regulować częstotliwość na wyjściach OC1A i OC1B ... Masz racje , tylko Ci sie wydawało ;) W trybie który ustawiłeś , timer zlicza od zera , do wartości w OCR1A.Jeśli w OCR1A masz 1562 , a do OCR1B zaaplikujesz 3124 , to na wyjściu OC1B nic nie zobaczysz , bo NIGDY nie nastąpi...
Witam! Potrzebuję zmienić TIMER1 do obsługi PWM na TIMER2 ktoś pomoże? ATMEGA32 BASCOM
Program działa i nawet licznik się zatrzymuje tylko jaką mam pewność że jest to 250ms? chodzi mi o to żeby uzyskać jak największą dokładność. Dzięki za ten przykład, spróbuję... Nie wiem dokładnie , do czego Ci to potrzebne ale przykład z przerwaniem , który podałem wcześniej działa z dokładnością do ~2 cykli zegara(500)ns.Czy to niezbyt dokładnie...
Przerwanie miałbyś z częstotliwością 32000Hz(8000000/250), gdybyś tylko przeładowywał Timer w przerwaniu. [syntax=basic4gl] Prztimer1: Load Timer1, 250 '<----- w tym miejscu na przyklad Incr Licznik If Licznik > 100 Then Licznik = 0 End If[/syntax]
Robisz prosty błąd w składni. Poczytaj w helpie o Load. Nie tak: [syntax=basic4gl]Load Timer1 = jakas_wartosc[/syntax] tylko tak: [syntax=basic4gl]Load Timer1 , jakas_wartosc[/syntax] Z tego co pamiętam można również tak. przykładowo: [syntax=basic4gl]Timer0 = 249[/syntax] co jest równoważne: [syntax=basic4gl]Load Timer0 , 6[/syntax] Ale to sobie musisz...
Widzę że nie rozumiesz zapisu WGM13:0. To oznacza 4 bity. WGM13 WGM12 WGM11 WGM10 Czyli do tych 4 bitów musisz wpisać 15(d)=1111(b). W tabeli 39 na stronie 99 dokumentacji masz nawet to rozpisane.
c1 to przerwanie na nodze procesora atmega8 pod tytułem "ICP" Portb.0 wystarczy że zamiast pod int0 podepniesz się tutaj.
niekoniecznie, chyba nie czytales uwaznie watku :) pisalem o przerwaniach od Timer1 :)
Uruchomić timer w trybie CTC. Tryb CTC [syntax=vbnet]CONFIG TIMER1 = ..... CLEAR TIMER = 1[/syntax]
Spróbuj na tym: http://www.frank-zhao.com/cache/avrtimer...
Witam dziękuje za podpowiedz to prawda ściągnąłem wersje Avr Help jest tam dużo ciekawych rzeczy z tym że mam kompilator Bascom 8051 wersje demo kod żródłowy nie daje się z kompilować wersja nie generuje tak dużego kodu wynikowego wyświetla mi błąd Error alows 2048 bytes of code only in file Czy jest większa wersja demo dla procków z serii 8051 czy...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Proszę o pomoc. Pierwsza zasadnicza uwaga to nie zauważyłem w programie konfiguracji interruptu0- coś np. takiego: config INT0=...
Timera1 nie użyjesz do RC5 ale jak poczytasz HELP Bascomiczny to zobaczysz z łatwością, że można spokojnie podłączyć go do Timera2 Tak więc albo możesz zmienić RC5 na Timer2 ale możesz nie zmieniać tylko swoją procedurę w Timer0 przenieść do Timer2 i po zawodach . Reasumując masz dwa wyjścia a ty szukasz trzeciego z Timerem1 ;)
Że jak? Do Loop Load Timer1 , 5 Return Czy to co powyżej (do,loop) to przemyślane działanie czy jakaś opcja debug'ujaca? A - i jak wywnioskowałeś, że nie działa przerwanie?
Możesz skonwertować godzinę na sekundowy format ( typ long, 4 bajty) ss=24*60*H +60*M+S Reszta to Twoja inwencja :-)
witam jest zrodełko w bascom z obsługą Timer1 ale niepotrzebuję aby timer1 obsługiwał mi port zewnetrzny T1 (portb.1) w atmega16 ,jak mozna wyłaczyć go z obsługi przez timer1 w Bascom ? poniewarz potrzebuję go do sterowania lcd i chce go z tego powodu wykluczyć :(
Dziekuje za pomoc, teraz wszystko działa jak należy, teraz pojawił się następujący problem: Ponieważ transoptor który służy do wykrywania zera, wykrywa zero ok 2ms po faktycznym zerze sieci, nie mogę dostać pełnej sinusoidy zasilającej żarówkę, ponieważ nawet gdy wyzwalam triak w momencie uruchomienia przerwania int0 (timer1=65535) to zostanie podana...
Dwa razy włączasz Timer0. A pewnie chodziło Ci o to żeby włączyć Timer0 i potem Timer1.
Właśnie w tym tkwi problem że nie mam oscyloskopu i nawet nie mam do kogo jechać żeby sobie sprawdzić. Może jakiś pomysł jaki układ dostosowujący zastosować?? Sama dioda nie wystarczy??
Witam Przyznam szczerze, że właściwie nie miałem problemów z timerami w Bascomie (większych) jednak w zamieszczonym programie nie podoba mi się sposób deklaracji zmiennych. Dlaczego tego nie porozbijać na osobne linijki ? W dodatku pomieszane typy zmiennych... -- pozdrawiam
Sprobuj tak: On Timer1 Seb Nosave Pozdro Dexter
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
Tomsyty zobacz w dokumentacji do Tinny26 (kompletną) na stronę 23 pierwszy akapit. Tam Jest prawdopodobna przyczyna Twojego problemu. Timer T1 pracuje z zegarem mnożonym przez 64 względem zegara rdzenia!! Więc Twój układ dostał na preskaler Timera1 nie 8MHz jak chciałeś tylko 512 MHz !! Znaczy się zamiast 36kHz za preskalerem masz około 2,3 MHz !! Sprawdź...
Cały ten układzik ma posłużyć do kontroli maszyny zmęczeniowej , w której ważna jest właśnie ilość wykonanych cykli i częstotliwość z jaką maszyna jest ustawiona. Jezeli to ma sluzyc jako wyniki konkretnych badan "na endurance", to musisz dolozyc staran aby wyniki byly dokladniejsze a moc processor byla bardziej prawidlowo wykorzystana. Wiec tak na...
Czy przed załączeniem PWM mam używać enable time1 i po wyłączeniu disable timer1
"Czy ktoś wie żeby przerwanie mogło zakłucać pracę 1wire?" Oczywiście że może jeśli wypadnie podczas transmisji danych z DS'a Przed każdą komunikacją z DS'em zablokuj przerwania. Np: Disable Timer1 a po komunikacji odblokuj Enable Timer1.
Sygnałem wyjściowym hallotrona jest napięcie. Tak więc przez 1/2 LM358 pracująca jako komparator i zasilona napięciem takim jak procesor. Ważna jest biegunowość napięcia wejściowego.
Witam, potrzebuje zbudować generator z 2 częstotliwosciami rzędu kilku 1-2kHz. Do tego celu przeznaczyłem Timer1 i rejestry OCR1A i OCR1B i tryb CTC. Generator będzie miał dodatkowo zmieniane wypełniania impulsów, wiec zbudowałem sobie taki odo program: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 64 'Stos Systemowy , Gosub...
Ten typ zegarka musi być napedzany przez rezonator kwarcowy "zegarkowy" Podłącza się go do pinów TOSC1 i TOSC2 jak na obrazku ;) http://obrazki.elektroda.pl/7500713300_1... Udanych testów :D P.S. Można kilkoma instrukcjami uruchomić zegarek bez tego rezonatora używając Timer1.
Proszę o podpowiedź gdzie robię błąd. Czytał kolega to: https://avrhelp.mcselec.com/index.html?c... ?
Z tego co wiem to bascomowe procedury LCD odliczają opóźnienie potrzebne wyświetlaczowi przy pomocy tego timera. Spróbuj zmienić timer albo poszukać w helpie bascoma.
Jak poprawnie skonfigurujesz to zadziała. Oczywiście sam licznik to nie wszystko, trzeba jeszcze ustawić port jako wyjście.
Jaka wersja BASCOM?
Witam. Problem leży w obsłudze Timera1. W Bascomie Timer1 jest uważany jako 16 bitowy. Natomiast układ ATiny25 posiada liczniki 8 bitowe. A więc nie możesz użyć Timera1 a jedynie Timera0 ( 8-bitowy ) i odpowiednio zmodyfikować program.
A dałeś PORTB na włączone rezystory podciągające?
Kolego FREDY "rozsypie" to miałem na myśli ten czas obsługi. Jeśli bym jednak wykorzystał timer1 tylko do celów PWM programowego czy może być konflikt miedzy między dwoma timerami
A nie prościej liczyć to za pomocą Timera1 czyli na sekundę ma być np. wyświetlonych 50 obrazów i każdy z nich zawiera np. 10 części. Daje nam to 500 przerwań na sekundę. W przerwaniu Timer1 ustawiasz za każdym razem początkową wartość timera i ustawiasz jakąś flagę. Możesz również dodać zwiększanie licznika od tego co ma być wyświetlane. W programie...
Witam, a po choinkę wyłączać Timer przy organizowaniu wymiany danych z PC ??? poczyta sobie kolega o takich poleceniach jak np: Config Serialin - dzięki któremu można ustawić sobie bufor wejściowy, do tego proszę zobaczyć co przy tym poleceniu robi Bytematch - dzięki, któremu można sobie ustalić po nadejściu jakiego znaku ma się zainicjalizować np jakaś...
Hej! Masz rację - ztym kontrolerem (lub Bascomem) jest coś nie tak, ponieważ próbowałem zrobić na nim prosty sterownik z użyciem IR "Get RC5", i niestety bascom wywala error, że niemożliwe w tym chipie najpewniej błąd Timera (nie pamiętam 0 czy 1). Tak zechyba nie robisz błędu, tylko w Bascomie w stosunku do tego procka jest coś spaprane.
Przede wszystkim musisz zacząć kolego od poznania timerów. Do odmierzenia czasu używamy timerów ponieważ zlicza nam czas w tle działania procesora. Używając polecenia wait zatrzymujesz kompletnie uC na ten czas. Konfiguracja dla AtMega8 8Mhz u mnie wygląda tak: Config Timer1 = Timer , Prescale = 256 ''''konfiguracja timera On Timer1 1s ''''przy przerwaniu...
jeśli przerwanie jest co 100msek a obsługa procedury wywołanej w przerwaniu będzie trwała 101msek to przed zakończeniem pierwszej procedury i powrotu z przerwania program uruchomi drugi raz tę procedure potem trzeci itd . dojdzie wreszcie do zapełnienia stosu i "zwis" programu Gdy procedura wykonywana jest w pętli głównej jest zezwolenie od przerwania...
Dzięki za radę, ale niestety nic z tego. Spróbowałem i kompilator wyrzuca błąd, że nie ma odpowiedniej onstrukcji asemblerowej... Dziwna sprawa, jeśli zmienię plik z TINY45 na TINY26 to błędu już nie ma. Wygląda na to, że chyba coś jest nie tak z BASCOMem- natknąłem się już wcześniej na kilka błędów. W takij sytuacji pozostaje grzebanie w rejestrach...
No właśnie do tego migania LED ustawia się odpowiednio Timer1, którego BASCOM w emulacji nie obsługuje. Czyli nie mogę w niej sprawdzić czy wszystko funguje OK. więc jak soft będzie w kupie zostaną nam eksperymenty jak z pierwszym piórnikiem.
OC2 to wyjście wykorzystywane przez Timer2 - nie Timer1. Wystarczy skonfigurować T2 - i po kłopocie... (Przestudiowanie noty katalogowej układu rozwiązałoby problem)
Oczywiste że tak zawsze będzie. Tym licznikiem możesz liczyć tylko impulsy które są ukształtowane np z enkoderów, natomiast dla styków mechaniczynych musisz albo je ukształtować sprzętowo, albo zrobić debouncing programowy. Chodzi o to, aby z sieczki krótkich impulsów które powstają po wciśnięciu przycisku zrobić jeden impuls wydłużony. Można to zrobić...
Ale jak to zrobić, programowałem do tej pory tylko przy użyciu BASCOM-a. A chodzi o wszystkie funkcje związane z Timer1 n.p. "Timer" ; "Pwm".
tak, przepraszam za literowke, oczywiscie mam w programie napisane tak: config timer1=counter reszta jak wyzej
[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
(at)ElektrodaBot W twoim programie wg BASCOM-AVR są błędy: Error : 254 Line : 17 Variable expected [TIMER1 OVERFLOW] Error : 46 Line : 17 Assignment error, unknown variable (DIM) [___WR24: 0 TIMER1 OVERFLOW: 0] Popraw program.
Jak napisałem nie wnikam w sedno tego zegarka,chodziło mi tylko o zwrócenie uwagi na błąd polecenia Load Timer1 ,...
Nigdy nie miałem do czynienia z Bascomem 5051, możesz mi podpowiedzieć co to za polecenia i jakie są adekwatne polecenia w Bascom AVR?
Kod wydaje sie ok, przy czym moje walki z odmierzaniem czasu mowia ze trzeba brac poprawke na Bascoma /i to duuuza/. Sprawdzilem pod symulatorem (Bascom) i program dziala, w realnym procku pewnie czasy sie rozjada.
Przede wszystkim to masz tutaj błędy składniowe. Np: [syntax=vbnet]On Timer1[/syntax] i tyle. A powinno być: [syntax=vbnet]On Timer1 nazwa_funkcji[/syntax]
A nie lepiej byłoby wykorzystać PWM? Wtedy można dosyć precyzyjnie ustalać częstotliwość na wyjściu, oczywiście ustawionym w tryb Toggle... Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Toggle , Prescale = 8
Drogi kolego jest coś takiego jak "Help" w bascom i jest on bardzo przejrzysty. Tak na logikę. Deklarujesz Timer1 jako timer a wpisujesz wartość do countera? Nie dziw się że wywala błąd. Spróbuj "Timer1 = 120".
Witam. Mam problem z zawieszaniem się programu po kilku kilkunastu sekundach i nie wiem o co chodzi. $regfile = "m32def.dat".dat " $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config 1wire = Porta.4 Config Portc = Output Deflcdchar...
no wcześniej trzeba zatrzymać licznik :P to znaczy jest taki kłopot, że jak piszę load timer1, 1234 to bascom mi wpisuje do obu rejestrów 255, podobnie przy timer1 = 1234 :lol: więc wolę wpisać do każdego rejestru osobno bo wtedy jest wszystko ok... może tylko u mnie tak jest, moja wersja bascoma 8051 to 2.0.11 :)
Spróbuj tak: 'czestotliwosc uprocesora w Hz $crystal = 11059200 Config Portb = Output Config Timer1 = Timer , Prescale = 256 On Ovf1 Timer1_tick Portb = 254 'ustawienie komparatora timera '65535 - 43200 = 22335 Timer1 = 22335 ' load timer1 nie działa prawidłowo w Bascomie Enable Timer1 Enable Interrupts Do 'program glowny Loop Timer1_tick: stop timer1...
czy nikt nie pomoże ?
$regfile "m8515.dat" $crystal = 8000000 Enable Timer1 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Timer1 = 34286 dim sek as byte do loop Sekunda: Timer1 = 34286 Incr Sek Return Powinna byc rowna sekunda (wyliczone przez kalkulator avr) Ps. Timer startuje w momencie jego konfiguracji wiec jesli nie chcesz go uzywac odrazu,...
Właśnie cały problem w tym, że program główny ma co robić i nie jest pustą pętlą.. Temperatura musi być stale kontrolowana choćby dlatego aby włączać wentylatory (jest to wzmacniacz) lub reagować np wyłączaniem zasilania.. Dlatego zależy mi aby działało to poza programem głównym.. I pomijając estetykę programu... Czemu to nie chce działać? Co ma odczyt...
W Bascomie AVR jest taka ciekawostka: Load timer1 ,100 - działa błędnie Load timer1,zmienna - działa prawidłowo! dla timer0 jest odwrotnie(ze zmienną nie działa) Np. w symulatorze Bascom AVR: Dim X As Word Config Timer1 = Timer , Prescale = 8 Load Timer1 , 100 ' timer1 = 156 X = 100 Load Timer1 , X ' timer1 = 65436 nop nop
A ja z kolei znalazłem gdzieś taki programik: Enable Interrupts Config Timer0 = Timer , Prescale = 64 On Timer0 Tim Enable Timer0 Dim M As Byte Do Loop End Tim: Timer0 = 6 Incr M Return Jeśli dobrze licze, to przy kwarcu 4MHz przerwanie będzie wywołane co 4ms, zgadza się? Jak to wszystko przeliczać na Hz? Pozdrawiam
emarcus super wykład, dziękuję! Starałem się wytłumaczyć ale faktycznie powinienem napisać - dwa niesymetryczne impulsy masowe w okresie 103ms (jednak wciąż nie jestem pewien czy precyzyjnie). Urządzenie już zrobione, działa. Ale napotkałem problem, o którym wspomniałeś. Mianowicie zawartość Counter1 w momencie rozpoczęcia cyklu jest przypadkowa. Nie...
Zaczyna mieć jakiś sens. Wyrzuć ten waitms200 z przerwania. LCD wstaw do głównej pętli. Wyrzuć LCDbus- przecież definiujesz piny do LCD. Time1 as word- przecież timer1 jest 16-bitowy- zmienna nie będzie dłuższa.
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
Wystarczy wpisać warunek w dodatku prosty If I = 100 then stop timer1 I=0 timer1= 0 start timer1 end if a tutaj Kasowanie: stop timer1 I=0 Timer1 = 0 start timer1 Return W ogóle nie bierzesz pod uwagę z jaką częstotliwością będzie liczył licznik chyba potrzebujesz jakiś konkretny czas...
Tryb Capture służy do przechwytywania zawartości licznika a nie do jego przeładowywania.
Jeśli pomiędzy przerwaniem od timera a wpisaniem do niego nowej wartości upływa zbyt "długi" czas to może się okazać, że timer zgłosił przerwanie w międzyczasie, które zostanie uwzględnione jeśli zapiszemy Timer1 = Timer1+wartość, a utracone jeśli zastosujemy Timer1 = wartość.
OC 1 A, OC 1 B - timer1 OC 0 - timer0 OC 2 A - timer2
Stop timer nie zeruje automatycznie zawartości timera. Nie wiem jak jest z Start timer. A jaki prescale byś proponował ? dla timera 16bit i 8000000Hz, żeby mierzyć dość dokładnie w całym zakresie ? Z moich obliczeń wychodzi 8, wtedy przerwanie będzie co około 65ms. Jeszcze tak się zastanawiam w helpie jest napisane, że "Uwaga! Użycie parametru PRESCALE...
Witam. Wersja 2.0.10.0. Ten kod zachowuje sie tak samo w bardziej rozbudowanym programie jak i w tym co wyzej jest napisany (napisalem sobie to odzielnie bo takze myslalem ze cos napisane jest zle w dalszym programie) Pozdrawiam
Witam! Bawię się czujnikiem ultradźwiękowym mierzącym odległość, z którym komunikuje się za pomocą interfejsu I2C. Dane z czujnika za pośrednictwem amtegi8 (8MHz) wyrzucam na kompa za pomocą RS-232 (9600 baudrate). Problem polega na tym aby obliczyć czas jaki upływa pomiędzy kolejnymi pomiarami i wyświetlać go z resztą danych na komputerze. Trochę poczytałem...
Nie pokazałeś schematu więc nic nie doradzę może poza przeglądnieciem [url=http://mikrokontrolery.blogspot.com... odnośnie minimalnego podłaczenia procesora. Napisz programik testowy dla timera1 z preskalerem 256 i zmianą stanu pinu portu w przerwaniu. Dla kwarcu 16MHz przerwanie wystąpi co około 1 sekundę. Jak to...
podaje blad przy kompilacji - albo nieumiejetnie wstawiam ten czynnik:)
........ chce wykorzystać wewnętrzny kwarc 8Mhz po trzecie czytając helpa jesli dobrze rozumiem to timer1 jest 16bitowy a timer0 jest 8 bitowy emarcus - gdybym chciał wykorzystać twój pomysł to gdybym zostawil timer1 jako counter a jako timer wykorzystał timer0 ktory by zliczał czas w jakim sa zbierane impulsy - jeśli o to ci chodziło i jeśli jest...
Tylko jak teraz dopisać tą konfiguracje led? Tak jak chcaiłem z rgb zrobić
Timer0 ma też tryb CTC i przy ustawieniu prescale 1024 i odpowiednim ustawieniu rejestru OCR0 da się z niego uzyskać 100Hz. Wtedy można użyć Timer1 do liczenia.
I tylko timer1 ma możliwości zliczania impulsów z zewnątrz?
Mój błąd zegar ma 8MHz
Czyli jest maly postęp. Sprubujmy takiej przeróbki: Pob_rc5: Disable Int0 Disable Timer1 Enable Interrupts Getrc5(address , Command) Enable Timer1 Command = Command And &B01111111 Set Odebrany_kod Return Ciekawe co zrobi. Chyba że jest błąd w książce.
Mimo wszystko dopisz w programie głównym Timer1=64700. W pod programie pozostaw.
2 kanaly na timer1 a kolejne 2 na timer2 :]
Tak.
Dokładnie tak samo jak w przypadku TIMER1: CONFIG TIMER3 = PWM , PWM = 8 | 9 | 10 , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM NO_OUTPUT ] = CLEAR UP | CLEAR DOWN | DISCONNECT Licznik TIMER3 jest dokładną kopią licznika TIMER1 zatem wszystkie opcje jak i nazwy rejestrów są takie...
odpowiem sobie sam, sprawdzilem w symulatorze bascom i działa
może jednak lepiej wsadzic tyłek w krzesło i posiedzieć nad C lub asm. bascom? proste rzeczy jak najbardziej. ale tylko proste rzeczy
Nie napisałeś , że ten pilot nie pracuje w kodzie RC5 , ale też nie napisałeś , że w tym kodzie pracuje :wink: Inna wersja Twojego programu: $regfile = "m32def.dat" $crystal = 8000000 '11059200 Dim Adress As Byte , Command As Byte , X As Byte , Tmpcode As Word Dim Odebrano As Bit , Flaga As Byte Config Pind.2 = Input : Portd.2 = 1 Config...
bascom timer1 timer1 counter1 bascom bascom timer1 przerwać
excel losować liczba pamięć eeprom radio bezpiecznik kuchni elektrycznej
kocioł beretta super exclusive napęd prędkościomierza
Adaptacja siłowników Citroen C2 Sensodrive 2004 Adaptacja skrzyni MA w Citroenie C2 2004 za pomocą Lexia