W Bascomie nóżki konfiguruje się przez Config Portx = input/output - dla całego portu Config Pinx.y = input/output - dla jednej linii Sugerowałbym zatrzymać licznik przed załadowaniem do niego wartości. W nocie można znalźć info, że mogą pojawić się przypadkowe wartości w rejestrach przy zapisie na pracującym liczniku.
Witam ATMega8 ma Timer1 16-Bitowy i do odczytu lub wpisu służą dwie dane: "TCNT1L" - odczyt lub zapis "dolnej" 8-Bitowej części i "TCNT1H" - odczyt lub zapis "gónej" 8-Bitowej części n.p. stan licznika "21456" odpowiada : TCNT1H =83 ; TCNT1L=208 bo 21456:256(pojemność TCNT1L=256)=83+208 Aby wszystko było OK to obie wartości (TCNT1H i TCNT1L) muszą być...
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....
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...
Tryb Capture służy do przechwytywania zawartości licznika a nie do jego przeładowywania.
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...
odnosnie zegarka to ja bym to zrobil na timer1 - 16 bitowy licznik, i uzaleznil to od przepelnienia tylko nalezy ustawic preskaler na 256 wpisac poczatkowa counter=conter+34286 oczywiscie przy rezonatorze 8 MHz 8000000/256/(65536-34286) = 1 sekunda pozniej tylko zliczanie a i jeszcze jedna sprawa nalezalo by zmienic wartosc dwojkowa na kod BCD :)
Witam, potrzebuje prostego programu który zliczy ile razy na sekundę wciskany jest przycisk. Np na jednym z portów pojawi się 0 kiedy przycisk zostanie wciśnięty, program ma zliczyć ilość impulsów przez sekundę i zwrócić daną do zmiennej. Proszę o pomoc lub podpowiedź. Niestety jestem początkujący i niezbyt rozumiem Liczniki-Czasomierze Timer0 i Timer1....
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...
zacznijmy od tego, ze kod umieszczamy w klamrach Dodano po 10 to jest kod na jedna sekunde $regfile = "m8def.dat" $crystal = 8000000 Config Pind.7 = Output Portd.7 = 0 Przekaznik Alias Portd.7 Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Enable Interrupts Enable Timer1 Load Timer1 = 31250 Do Loop End Sekunda: Load Timer1 =...
wynik końcowy faktycznie za każdym razem jest inny. (at) emarcus możesz podpowiedzieć jak powinien wyglądać serwis int1? Popatrzyłem troche bliżej na twoj kod. Z jakiego powodu potrzebujesz otrzymać wynik ("Czas_2") z dokładnocią aż do 9 miejsc decimal? Jeżeli jeden z czynników iloczynu (rozdzielczość timera) jest liczbą wymierną z dokładnościa do...
Poi pierwsze. Do BASCOM-a jest pomoc - także po polsku, której to zresztą jestem autorem. Wersję on-line (beta) znajdziesz na mojej stronie WWW. Jak one działają? Zliczają impusy. Albo z prescalera, albo z zewnątrz. Patrz nota katalogowa. W którą stronę zliczają? Zwykle liczą w górę. W trybach PWM liczą też w obie strony. Patrz nota katalogowa. Jak...
Witam Jako jedno z możliwych rozwiązań podaję kod poniżej. Oczywiście należałoby go traktować jako szkielet i dopracować. $regfile="m8535.dat" $crystal=8000000 Config Timer1=Timer, Prescale=1024 Config Portc.0 = Input : K1 Alias Pinc.0 Config Portd.0 = Output : Wy_1 Alias Portd.0 Config Portc.1 = Input : K1 Alias Pinc.1 Config...
Udało mi się odpalić program z książki Pana Wiązani, ale tam timet odmierza 1s Jak to przeliczyć? Jest jakiś na to wzór? Rzeczywiście musiało się 'udac odpalić' bo ten program nie jest pozbawiony błędów (!) \ A jak zrobić żeby odmierzał np 10 sekund? Zmiana preskalera wydłużyła max do 2sekund czas. Aby timer1 odmierzył inne/dowolne interwały czasu,...
Jeszcze raz od nowa. Tym razem postaraj się bardziej. Ustaw wreszcie te przerwania INTx na jakieś zbocze, a nie poziom. Co z tego, że ustawiłeś Timer1 jako licznik jak nie ma to związku z resztą kodu. Timer sobie działa,a ja się pytam - i co z tego ? gdzie obsługa tego timera?
Witam serdecznie Potrzebuję zmierzyć zewnętrznym licznikiem ile impulsów z timer1 mieści się w czasie kiedy portd.3=0. Kilka dni na googlach i nic , tak jakby to było niemożliwe. W pomocy bascom pisze 'Możesz odczytywać i zapisywać dane z licznika TIMER1, za pomocą 'specjalnej zmiennej systemowej: W = Timer1 Timer1 = W No i brak info gdzie to wpisać
Ustawiasz CTC na bardzo szybki, czas pomiędzy przerwaniami to będzie rozdzielczość regulacji. Reszta to wartości w pamięci(zmienne) odliczające programową syntezę częstotliwości. Aha..oki, dzięki, spróbujemy narazie coś wycisnąć z Bascoma ale czarno to widzę nawet w asemblerze, bo zależy mi na bardzo dokładnej częstotliwości, a przecież już przerwanie...
Nie znam się na bascomie ale czy zmienna T nie powinna być jakoś powiązana ze zmienną Licznik?
Hmm On Timer1 Nazwa_podprogramu nie muszę wcisnąć do podprogramu tego 4 przycisku? Powiedzmy, że dam $crystal = 1000000 do tego prescale=1024, przez 60 sekund Timer1 powinien doliczyć do 58594 (zakładając, że 1 takt licznika trwa 1,024ms), więc potrzebowałbym 5 przepełnień. Tylko jak zliczyć te przepełnienia?
W twoim programie wg BASCOM-AVR są błędy: Error : 254 Line : 17 Variable expected Przepraszam za pomyłkę. W BASCOM-AVR, do przerwań od timera, powinniśmy użyć 'TIMER1_OVF' zamiast 'TIMER1 OVERFLOW'. Podobna sytuacja jest z przerwaniem od INT0, powinniśmy użyć 'INT0_ISR'. Najpierw musimy skonfigurować Timer1 i INT0, następnie włączyć przerwania. Kiedy...
Napisałem coś takiego. Czy to ma sens? Po pojawieniu się pierwszego zbocza opadającego na Int1 powinno uruchomić Timer1 i po podaniu drugiego zbocza opadającego na wyświetlaczu powinno pokazać wartość Timer1. W symulacji pokazuje na lcd cały czas zero. Gdzie jest problem? Na razie chcę mierzyć tylko czas między przerwaniami $regfile = "m8def.dat"...
A ja dzisiaj nie byłem w pracy. Wziąłem zaległy urlop z 2007r. I oto co zrobiłem 'program do pomiaru czasu wciśnięcia przycisku podpiętego do PD.2(INT0) i PD.3(INT1) przez układ RC tłumiący drgania przycisku. 'Przy tych ustawieniach Timer1 zwiększa się co 128us a licznik przepełnia się co 8.389s 'Program sprawdzony i działa. 'W celu...
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...
Taka składnia dotyczy tylko Timer1/Timer3/Timer4/Timer5. Nie zadziała poprawnie dla Timer0 i Timer2. Choć z moich osobistych obseracji to najnowszy BASCOM-AVR i spora grupa procesorów poprawnie obsłuży taką składnię: CONFIG TIMER0 = PWM , PRESCALE = 1 | 8 | 64 | 256 | 1024 , COMPARE A PWM = CLEAR UP | CLEAR DOWN | DISCONNECT , COMPARE B PWM = CLEAR...
Sorry, że wam się wtrące ale też pracuje nad komputerkiem dla Vectry B Silnik na wtrysku paliwa więc wysarczy zmierzyć czas otwarcia wtryskiwacza i tu moje pytanko. Jak najlepiej odmierzyć czas otwarcia wtryskiwacza oraz ilość wtrysków na jednostke czasu? Wtryskiwacz jest sterowany masą wiec spoko można użyć przerwań z końcówki INT1 do wykrycia otwarcia...
To, że program i schemat to jedna całość to akurat wiem :), Napisałem dla przykładu "set PORTB.0". Schemat Poprawiłem, w kodzie tylko ustawienia pinów, nie wiem czy dobrze go okroiłem z wyświetlacza. Jam pozbyć się zewnętrznego kwarcu w kodzie? co trzeba pozmieniać? EDIT http://obrazki.elektroda.pl/9407654700_1... [syntax=basic4gl]$regfile...
w ten sposób to raczej nie przejdzie chodzi o to że timer1 działa jako przerwanie a gdy wykorzystuje do obliczania impulsów drugiego tajmera czyli timer0 to dzieją się cyrki wyśiwetla mi np co druga sekunde itd wszystko to na atmega8
tak właśnie podejrzewałem że bascom nie lubi operacji z dokładnym czasem.Zmiana polecenia z Toggle na not nic nie zmienia.Pozostanie przy sprzętowej generacji.Mam tylko jeszcze jedno pytanie,bo fala którą generuje to będzie nośna dla pilota SIRC.I teraz przy włączaniu i wyłączaniu T1 raz zostaje stan wysoki ,a raz niski na PB1. Na razie załatwiłem to...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Witam muszę zaprogramować atmega8 tym kodem. Niestety on jest dla attiny. jak go konwertować do "*.bin" dla atmegi8 Jak mogę to wykonać? [syntax=basic4gl]$crystal = 4000000 $regfile "attiny2313.dat" ' Miernik prędkoci obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
Chyba coś jest nie tak z moim bascomem bo u mnie nie chodzi poprawnie. Dalej jest pierwszy cykl dobry, a nastepne juz loteria. Wchodzi do podprogramu tylko co jakis czas i z reguly liczba zaswiecen portu w pozniejszych przypadkach nie ma nic wspolnego z iloscia impulsow podanych na port licznika. Może ktoś ma jakiś inny pomysł na rozwiązanie tego. Czasem...
A może by tak dwa liczniki zaprzęgnąć do jednego zadania... Timer0 byłby generatorem PWM 8-bit z regulowanym wypełnieniem, z zewnętrznym taktowaniem z koncówki T0. Timer1 byłby generatorem o regulowanej częstotliwości (Tryb CTC) i za pomocą przerwań zmieniałby stan końcówki wyjściowej, którą to podłączysz do wejścia T0.
Czyli reasumując Kod: $crystal = 8000000 $regfile = "m8def.dat" Config Timer0 = Timer , Prescale = 64 ' 8 us Config Timer1 = Counter , Edge = Rising Dim Wartosc As Word Dim Licznik As Integer Config Portb.1 = Output Reset Portb.1 Config Portb.2 = Output Set Portb.2 On Timer0 Timer0_int Enable Interrupts stop timer0 Timer0 = 131 Licznik...
czesc mam taki projekcik obrotomierza. program wyglada tak: $crystal = 4000000 $regfile "m8def.dat" Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.2 , Db5 = Pb.3 , Db6 = Pb.4 , Db7 = Pb.5 , E = Pb.1 , Rs = Pb.0 Set Portd.2 ' Miernik prędkości obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter...
To jest fragment kodu, którego używałem , żęby zrobić obsługę licznik, ale nie działa w symulacji $sim $regfile = "m8def.dat" 'Informacja dla kompilatora. $crystal = 8000000 'Też dla kompilatora,zastosujemy kwarc zewnętrzny 10MHz. Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E =...
Właśnie mam już cały program gotowy w bascomie , nie umiem w tej chwili na tyle dobrze C żeby napisać obsługę PCF, dwóch DS18B20 plus MPX4115. Także chodzi właśnie mi tylko o rozwiązanie pomiaru ciśnienia co 5-10 minut. Ok doszedłem wkońcu jak to zrobić . [syntax=basic4gl] Config Pinb.1 = Input 'usatwiamy Portb.1 jako wejscie Set Portb.1 'ustawiamy...
Dzięki wszystkim którzy coś podpowiedzieli. Już trochę wiem o timerach w ATmegach 8. Chciałbym zakończyć ten temat (by najmniej z mojej strony) Jeszcze raz dzięki. A tak a propo Bascom AVR to jest w nim skucha , a mianowicie brak jest poleceń compare2 , pwm2 z tego też względu trzeba używać nazw rejestrów np: Tccr2 = 97 - PWM 8bit pin OC2 - 0 gdy licznik...
Nie ma się co poddawać. Prędzej czy później i tak będziesz musiał używać przerwań i liczników bo bez tego większość programów robi się zagmatwana o ile nie niemożliwa do napisania. W necie jest dużo przykładów, Bascom jest o tyle prosty, że nie grzebiesz po rejestrach. Timer już masz, dodatkowa linia konfiguracji i kawałek kodu da Ci obsługę przerwania...
Witam. Próbuję napisać program odpowiedzialny za pomiar odcinków czasowych pomiędzy impulsami sygnału S1 i S2 (zgodnie z załącznikiem). Proszę o prześledzenie kodu, wszelkie uwagi i sugestie mile widziane. Nie mam pewności co do poprawności pobierania wartości licznika TIMER1 za pomocą TCNT1. 'program do pomiaru okresu sygnałów podpiętych do PD.2(INT0)...
ok zrobilem cos takiego , wyjasnie jeszcze zasade dzialania mamy dwa sygnaly z silnika 1. sygnal zaplonu ( 4 impulsy na cykl pracy) 2 sygnal pierwszego cylindra ( jeden impuls na cykl pracy , pomiedzy impulsami zaplonu) program dziala tak ze zeruje licznik za kazdym razem wystapienia sygnalu 1cylindra , nastepnie przy kazdorazowym sygnale zaplonu ,...
Mam mały problem chcę zrobić prosty miernik częstotliwości w bascomie do ok. 600KHz Warunek ma mierzyć z dokładnością 1Hz i niestety nie wychodzi mi to. Taimer 1 mam skonfigurowany jako taimer (Config Timer1 = Timer , Prescale = 8) taimer 0 skonfigurowany jako licznik (Config Timer0 = Counter , Edge = Falling ) z resztą zamieszczam fragment kodu [syntax=basic4gl]$regfile...
Witam Mój problem wygląda następująco: -układ na jakim pracuje to atmega 8 a srodowisko programowania Bascom Po zalaczeniu i skonfigurowaniu countera w sposob następujący Config Timer1 = Counter , Edge = Rising , Noise_cancel = 1 Enable Interrupts Enable Timer1 Podczas odczytu wartości countera licznik szaleje (sam nalicza jakies nie stałe wartości)...
emarcus da się wogóle zastosować Twój pomysł w pętli? Próbuję i za każdym razem inne efekty :( Raz skonfigurowany i zastartowany timer1 lub inny, liczy impulsy lub przedzialy czasowe wg tej zadanej konfiguracji w kolko; nikomu to nie przeszkadza. Nie musisz go zatrzymywac lub startowac znow. Jesli zachodzi potrzeba wykorzystania jego uslug, wystarczy...
Po co stosujesz Timer1 do generowania sygnału buzera . Zastosuj buzer z generatorem a Timer1 wykorzystaj do czegoś innego. Zmień strukturę programu , dokładnie opisuj poszczególne linijki kodu , musimy zgadywać co autor miał na myśli ? Wywal wszystkie Wait'y z programu Przykład jak powinieneś układać linie kodu : If Przycisk = 0 Then 'jeśli przyciśnięty...
no, to tak pierwsza przymiarka: $regfile = "M8def.dat" $crystal = 8000000 Config Lcd = 20 * 2 Config Lcdpin = Pin , Db7 = Portc.0 , Db6 = Portc.1 , Db5 = Portc.2 , Db4 = Portc.3 , E = Portc.4 , Rs = Portc.5 Config Timer1 = Timer , Prescale = 1024 Config Int0 = Rising 'Config Pind.2 = Input Enable Interrupts Enable Int0 On Int0 Zliczaj Enable...
1 obrót cylindra to 1 arkusz więc jeśli na osi umieścimy "podziałkę" z drukarki atramentowej HP (taki foliowy krążek z naswietloną podziałką) i element odczytujący (takze z tej drukarki) wtedy uzyskamy kilkaset impulsów na 1 obrót - czy wtedy bedzie łatwiej? np. 1 obrót = 500 impulsów 500 impulsów = 1 ark. 250 impulsów/sek = 0,5 ark/s =1800ark/h Zakres...
Witam! Pierwsze kroki z uC, czyli próba stworzenia zegara matki dla czasomierza podobnego do $regfile = "m8def.dat" $crystal = 2000000 Config Pind.0 = Output Config Pind.1 = Output Config Timer1 = Timer , Prescale = 64 Dim Licz_2s As Byte Dim Parz As Bit Enable Interrupts Enable Timer1 Load Timer1 , 62500 Licz_2s = 0 Parz = 0 Do Loop End Odmierz_1m:...
Pracuję nad odczytem ramki z ALPINE M-BUS i wysyłaniu do Terminala po RS232 Temat był kiedyś poruszany.Ogólnie M-BUS pracuje na zasadzie PWM ,tzn, 0 i 1 są transmitowane z różną szerokościa impulsów . Joerg Hohensohn zrobił już coś takiego w języku C. www.jevinskie.com/mbus/ Chce zrobic tosamo w bascomie. Docelowo ma być pózniej emu zmieniarki na module...
Do przeładowania Timer'a1 używaj: Int_timer1: Load Timer1 , 62500 [...] Return Mam jeszcze jedną regułę z przeszłości aby nie używać obsługi pamięci EEPROM w obsłudze przerwań (starsze wersje BASCOM'a przy rozbudowanych programach powodowały błędne działanie programu). Stosuję to do dziś dnia i nie mam zamiaru sprawdzać to w nowszych wersjach...
Sorry, Wiesz ja to sie z tym bawie tylko i program pisze w bascomie metoda prob i bledow. Za bardzo sie na tym nie znam tylko sobie przerabiam inne projekty na moje potrzeby. Chodzi mi tylko o to czy dobrze rozumiem te taktowanie procesora. no ale jak co to tu masz caly kod: $regfile = "m8def.dat" $crystal = 12000000 Config Lcd = 16 * 2 Config...
zobacz sobie temat: http://www.elektroda.pl/rtvforum/topic81... program będzie bardzo podobnie wyglądał. Chodzi mi o Timery. Dodano po 2 ale czy te diody mają się świecić cały czas to znaczy, że jeśli będzie więcej impulsów niż 200, to mają się świecić wszystkie 3 diody czy tylko 3 dioda?? Tak na szybko napisałem( nie testowałem ale powinno działać):...
Czytam i czytam o tym trybie ctc i wiem tylko tyle że trzeba wpisać do rejestru OCR1A wartość 100 i jeśli licznik doliczy do wartości w OCR1A to ma zrobić toggle czyli zmienić stan wyjścia OC1A na przeciwny. Problem w tym, że nie wiem jak to zapisać w Bascomie. Czy to ma być jakoś tak?? $regfile = "m8def.DAT" $crystal = 8000000 Config Lcdbus...
WItam kolegów jest taki problem podaję na wejśie T1 atmega8 przy kwarcu 16Mhz impulsy o okresie 11us co daje około 90kHz i procek zlicza jak należy bo porównuję z oscyloskopem, ale problem rozpoczyna się gdy włączę INT0 na którym też są te same impulsy ,gdzie sprawdzany jest kierunek obrotu enkodera , wtedy licznik zlicza głupoty w zasadzie około dwa...
Witam Piszę na atmedze8 w bascomie program do odczytywania danych z odbiornika GPS. GPS jest podłączony RSem do Atmegi, obsługuje go sprzętowy UART. Transmisja jest realizowana z prędkością 4800, megę taktuje zewnętrzny kwarc 7,3728 Mhz (ale na wewnętrzym 4 Mhz też próbowałem). Oto kod obcięty o parę chwilowo nieistotnych rzeczy (definicje zmiennych,...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
Witam Tak jak w temacie. Jak liczyć czas między pojawieniem sie na porcie impulsów stanu niskiego (o ile stan niski można nazwać impulsem)? tzn tak: pojawia się 0 timer rusza, pojawia sie 0, timer się zatrzymuje, zczytuję stan timera, robie z tym to i tamto, zeruje licznik i od początku, czekam na 0, licznik rusza, itp. Nie chcę korzystać z licznia...
Witam Postanowiłem zbudować miernik odległości wykorzystujący ultradźwięki. Zakupiłem 2 czujniki w TME http://www.tme.pl/przetwornik-ultradzwie... http://www.tme.pl/dok/b14/100902_bpu-164... Jednego używam do wysłania fali a 2-go do odebrania. Po przejrzeniu postów na Elektrodzie i innych www...
Po długim analizowaniu problemu narodziło mi się coś takiego: 'pętla główna Dim I As Integer Dim Impulsy As Long Dim Sek As Integer Tccr1a = &H00 'ustawianie trybu pracy timera1 Tccr1b = &H0C Ocr1ah = &H7A 'załadowanie liczby 31250 do licznika Ocr1al = &H12 'przykładowa liczba do odmierzania (1s) Tcnt1h = &H00 ' zerowania rejestrów do zliczania...
Witam potrzebuje pomocy w zrobieniu programu który będzie działał na płytce która podałem w temacie, za bardzo nie znam się na bascomie( w nim muszę napisać program) i znalazłem tylko programik który działa na atmega8 ale z tego co się już dowiedziałem nie będzie działać na mojej płytce, i pytanie, szybciej się poprawi program który już został napisany...
Próbowałem ustawić prescale timera 1 na 8 co powinno dać przerwanie co 32,768ms i w przerwaniu zwiększałem liczniki mikro\milisekund co eliminowałoby opóźnienie przed zmianą wartości licznka. Wynik bez większych zmian - również około 1s\2h, może minimalnie mniej. Przerw: Timer1 = Timer1 + 49911 Incr S If S = 60 Then S = 0 Incr M End If If M = 60...
Witam, $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pind.1 = Output Config Timer2 = Timer , Prescale = 128 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 8 Cls Cursor Off Portd.0 = 1 Portd.1 = 0 Set Portd.4 On Timer2 Czas1s Dim Licz8ms As Byte Dim Wartoscpwm As...
Witam Mam za zadanie zrobic pomiar czasu wtrysku w ms poprzez przerwanie ICP1 Niestety po wielu bojach z rejestrami Tccr1B Tccr1A oraz Timsk i innymi , program nie dziala jak potrzeba w Proteusie Czytalem w dataszicie ze licznik T1 musi byc ustawiony w trybie TOP i musie byc wlaczony Noise Canceler , wszelkie ustawienia WGM nie dzialaja :/ Bardzo prosze...
Zmieniłem jeszcze raz program, tak aby nie wykonywał dodatkowych pętli. W sumie działa sprawniej niż poprzednie wersje ale po pewnym czasie nadal się restartuje [syntax=basic4gl]$regfile = "m8adef.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 Config Pind.0 = Output Config Pind.1 = Output Config Pind.6 = Input Config Pind.7 = Input...
Witam. Chciałem w celach edukacyjnych zrobić częstotliwościomierz. Ponieważ nie mam za bardzo skąd wziąć zewnętrznych impulsów postanowiłem, że jeden pin procka będzie je generował, a przerwanie int0 będzie liczyć ile tych impulsów było. Do odmierzenia czasu posłużył timer1, który ma odliczyć sekundę (więc wynik od razu w Hz). Po upływie sekundy ma...
Co do bascoma...jako ze generuje wolny kod to nie możesz wepchnąć rozbudowanej obsługi licznika w przerwanie, bo pogubisz takty albo wykopyrtniesz procesor bo sie stos przepełni(w przypadku gdybys w obsłudze przerwań nie wyłączał przerwań, a w trakcie trwania jego obsługi wystąpiło następne przerwanie i tak w kółko) Musisz wziąć pod uwagę czas reakcji...
Witam. Napisałem prosty programik na atmege8 i lcd 16*2 do pomiaru temperatury silnika i prędkości obrotowej , wszystko działa ok ale chciałbym dodać jeszcze parę rzeczy w postaci ze jeśli obroty silnika przekroczyłyby np: 3000 rpm to wyświetliłby się komunika "zbyt wysokie obroty" lub coś w tym stylu bądz temp. przekroczy 110 st.C to "wysoka temp silnika"...
witam W przykładzie podanym przez Ciebie ustawiasz tylko liczniki do pracy jako PWM. Aby zmieniać współczynnik wypełnienia należy wpisać do odpowiedniego rejestru ,który będzie odzwierciedlał współczynnik wypełnienia. $regfile = "m8def.dat" $crystal = 10000000 Config pinb.1=output config pinb.2=output Config Timer1 = Pwm , Pwm = 8 , Compare...
Napisałem program nadajnika i odbiornika, dla długich czasów trwania impulsu, np 1s wszystko jest w porządku. Odbiornik się synchronizuje, odbiera dane i dekoduje. Natomiast gdy impuls trwa 10ms już jest problem. Albo wyświetla się out of synchro, czyli brak synchronizacji, a jak już ma odebrać dane to błędnie je odbiera i wyświetla wartości dziwne...
Witam. Jestem początkującym programistą AVR ;) Grzebałem i szukałem "trochę" po forum ale nie znalazłem nic co by mi pomogło. Próbuje zbudować obrotomierz do motocykla na układzie Atmega8 który wynik wyświetla na panelu LED a nie jak większość projektów na LCD 2x16. Dodatkowo mam takie Ciśnienie by napisać program w języku C który dla mnie jest mniej...
W sumie z tego co widzę nie potrzebujesz generować sygnału PPM - wystarczy Ci jego detekcja, wyznaczenie neutrum (1,5 ms, ale nie przywiązuj się do dokładnej wartości) oraz po zauważeniu założonego odchylenia od neutrum proste załączenie jakiegoś PINu (ewentualnie danie tam sygnału PWM żeby ładnie migacz migał) Jak pisałem nie znam Bascoma, programuje...
witam , potrzebuję pomnożyć 7razy impulsy wejściowe , częstotliwość wej nie jest duża max 200hz , znalazłem podobny program na pic16 mnożacy 39razy i kawałek kodu na atmege8 również mnożący 39razy , jednak zupełnie nie mam pojęcia jak cos takiego napisac w bascomie kod dla pic: Device 16F628A Config INTRC_OSC_NOCLKOUT, WDT_OFF, PWRTE_ON, LVP_OFF, MCLRE_ON...
Witam wszystkich, Tak jak w temacie: Poszukuje sprawnego programu aby zrobić zegar LCD na ATMEGA8. Program musi być w języku bascom. Znalazłem coś takiego ale nie działa :/ Opoźnienie sekundy wynois jakies 4s 'Program zegara wykorzystującego przerwania od Timer1 'Przerwanie przepełnienia Timer1 jest generowane co 1 s '8 MHz/256/31250 = 1 s 'Przycisk...
Witam, Projektuje sobie urządzenie które w zasadzie będzie zegarem, ale z kilkoma funkcjami. Chodzi mi o to że np. o godzinie 12 w południe chcę aby na jednym z pinów procesora pojawił się stan wysoki do np. godziny 13. Zegar programowo jest ok, odlicza czas, wszystko jest na LCD, nie wiem tylko jak zrealizować te ustawiane godziny. Prosiłbym żeby mnie...
Programuje uC rodziny AVR hobbystycznie na razie, ale często mam problemy poprawnością działania moich programów, czasami zdarzają mi się jakieś kolizje zdarzeń w programach, przez co jakaś funkcja czy procedura nie działa prawidłowo lub jest pomijana, diody migają nie równo, multipleksowanie wyświetlaczy 7seg działa nieprawidłowo i pokazują się artefakty......
Witam jest to mój pierwszy {większy} program oczywiście przeszedłem kursy bascoma z zapalaniem diódek. Przychodząc do tematu to z zasobów internetu i własnych umiejętności napisałem program dla zegara i dla termometru i chciałbym teraz te dwie funkcje połączyć w całość. Owszem zrobiłem efekt jest bardzo fajny i wszystko działa ale pod względem w programie...
janbernat: Ja zaczynałem od VHDL. Przenoszę się na schemat bo to przynosi lepsze efekty (w przypadku jak ja projektuję). Kod w VHDL napisałem już ponad rok temu i od tamtej pory zawsze coś w nim udoskonalałem i tak z do tej pory. Więc o VHDL nie tylko słyszałem ale nawet go trochę znam. Choć jestem raczej początkujący. Ale ostatnio zmieniam i zmieniam...
Witam, Mam pewien problem z Rc5 w bascomie, chodzi mi o to, że instrukcje odpowiedzialne za rc5 są wykonywane tylko kilka razy a później, kaplica coś się zapycha:) i pilot nie działa. Cała sytuacja ma charakter nieliniowy tzn. że raz wykryje 3 naciśnięcia przycisku na pilocie a raz np. 5. Po zresetowaniu procka znowu RC5 działa przez parę cykli uP....
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
Hmm po dodaniu zmiennej Pr i zrobeniu działania Pr = Pwm1a / 2.55 wyświetla mi na LCD gdy mam 255 85 % w czym robię błąd. $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A Pwm = Clear Up Dim Pr As Integer Declare Sub Zwieksz 'Deklaracja procedury zwiększajšcej stan rejestru...
KaJakKrzysztof: W katalogu Bascoma w program files masz katalog Samples. Jest tam o ile się nie mylę zegarek, jakiś bardziej skomplikowany zegarek i mnóstwo innych przykładów zastosowań timerów, przerwań itd. Na pytanie - czy coś takiego będzie działać odpowiedz sobie sam, załaduj program do AVR-ka. Timer od countera różni się tym, że służy do ODLICZANIA...
Witam Próbuje zrobić zegar z książki Marcina Wiązania "Programowanie mikro kontrolerów avr w języku Bascom" Przepisałem cały program z książki, podłączyłem według schematu http://obrazki.elektroda.pl/8287318100_1... , i niestety na lcd pojawiają się kwadraciki. Programator mam usbasp, i program mkAVRCalculator. W zakładce fusy uproszczone...
Witam Ostatnio złożyłem z książki Marcina Wiązani-"Programowanie_mikrokontrolerow_... dwa układy zegarka i termometru. Próbowałem połączyć te dwa układ i napisałem taki program $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 ,...
Robię to w Bascom, oto program... [syntax=vbnet]$regfile = "m8def.dat" $crystal = 11059200 'kwarc $hwstack = 128 ' default use 32 for the hardware stack $swstack = 128 'default use 10 for the SW stack $framesize = 128 'default use 40 for the frame space ' $prog &HFC , &HAE , &HC9 , &H00 ' generated. Take care that the chip supports all fuse bytes. Ocr1a...
Witam Mam płytkę sterującą dwoma kanałami PWM - przez ULN oraz MOSFETY. Płytka ma dwa wejścia oraz wejście czujnika PIR - INT1. Ma przede wszystkim sterować włączaniem taśmy LED 12V z czujnika PIR ( oprócz tego z drugiego wejścia ). LED włączona przez PIR ma docelowo świecić określoną ilość czasu ( zależną od natężenia światła ) i się wyłączyć. Żeby...
Witam, jako, że kończą się wakacje postanowiłem udoskonalić trochę soft piórnika - chcę dodać odczyt temp., tylko nie wiem gdzie ją umieścić. '***************************************... '* Program Piórnik Mini wersja 1.0 Beta *' '* Pomysł: FICU *' '* Programista: Jacek R (Black Jack) Kompilator:...
Zegarek oprócz funkcji wyświetlania czasu ma pokazywać temperaturę i mieć możliwość sterowania z pilota (RC5). Tutaj pierwsze pytanie, czy GETRC5() wprowadza jakieś opóźnienia? Mam na myśli to czy nie zakłóci to zliczania czasu. Dodatkowo obawiam się, że będzie problem z płynnym sterowaniem, a to dlatego, że nie jest podłączony pod INT0 albo INT1 http://obrazki.elektroda.pl/5338684500_1...
Witam. Chciałbym sobie wykonać zegar z tego tematu [url=http://www.elektroda.pl/rtvforum/to... ale chciałbym dodać do tego zegar RTC. Myślałem żeby użyć DS1307 lub PCF8583, do obsługi tego drugiego znalazłem taki oto fragment kodu: [syntax=basic4gl]Config Sda = P3.5 'konfiguracja linii SDA magistrali I2C Config Scl = P3.7 'konfiguracja...
Witam. Chciałem zrobić sterownik wzmacniacza audio na bazie kitu AVT2829. Szczególnie zależy mi na uczeniu się dowolnego pilota. Zrobiłem płytkę przystosowałem do niej program, użyłem większego procesora (atmega8) no i program działa ale strasznie ułomnie. Procedura zapamiętania kodów z pilota przebiega jak należy ale już samo działanie jest strasznie...
Witam. Na wstępie przepraszam za mało czytelną nazwę w temacie ale nie wiedziałem jak inaczej opisać mój problem w tak małej ilości znaków. Temat powinien brzmieć: $regfile = "m8def.dat" $crystal = 8000000 $baud = 9600 '-- Wejscia przycisków Config Portb.4 = Input Config Portb.5 = Input ' -- podciągnięcie Set Portb.4 Set Portb.5 ' -- porty...
Jak obiecałem wcześniej, zmontowałem ponownie zegar i działa bez zarzutu z rezonatorem kwarcowym jak i pod generatorem. Jak ustawić w bascom atmege żeby działał z generatorem 16mhz ? Przestaw fusebit na zewnętrzny zegar (0000:external clock) 'zegar binarny joboo $regfile = "m8def.DAT" $crystal = 16000000 Dim Sekjed As Byte , Sekdzies As Byte...
Witam Próbuje ogarnąć temat generowania częstotliwości Postanowiłem wykonać generator 22kHz Mam straszny problem z wyliczaniem ile należy wpisać do licznika aby uzyskać odpowiednią częstotliwość pozłużyłem się kalkulatorem ze strony 'Generator 22khz $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3...
Dziekuje za wytlumaczenie. Rozjaśnia mi się już bo widzę przykłady. Nie wygląda abyś rozumiał w pełni koncept przerwań. Poprzedni mój post zawierał cały, gotowy, pracujący program dla dwóch czujników (z pełnymi objaśnieniami), oparty o timer1, skonfigurowany do pracy w trybie CTC. Jeżeli tamtego nie zrozumiałeś, to naturalnie i tu masz poważne problemy....
Udało mi się zejśc do Iśr= 1mA wyłączając na czas uśpienia przetwornik i zmniejszając częstotliwość oscylatora. Da się jeszcze niżej zejść kod [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb = &B111111 Portb = &B111111 Config Portd = &B11111111 Portd = &B01111111 Config Portc = &B100000 Portc = &B011100 P_godz Alias Pinc.2 P_min...
Znalazłem na forum kod dostosowałem do swoich potrzeb: /* Test serwo*/ /* Programik przykladowy */ /* typ uC: ATmega8 1MHz */ /* licznik/timer1 w trybie PWM */ /* Sygnal impulsowy (50Hz) na wyprowadzeniu PB1(OC1A) */ /* Przyciski sterujace szerokoscia impulsu przylaczone miedzy PD2 i mase oraz PD3 i mase */ #define F_CPU 1000000L...
Zamieszczony wcześniej kod jest sprawdzony - działa na atmega8 Również po pomyfikacjach portów działa na attiny2313 i zajmuje 65% flash, wiec jest jeszcze miejsce na jakieś "wodotryski". Używam Bascom demo w wersji chyba najnowszej: 1.11.8.7 build 001 MS windows XP SP-2 Program pod attiny2313 na płytce uruchomieniowej ZL11AVR (Płytka ZL2AVR pod megę...
Można by to troszkę inaczej rozwiązać, cześć tekstów można by dać do eeprom Czy tak to ma wyglądać?; Te wszystkie sztuczki pozwolą ci zaoszczędzić parę bajtów , ale największe oszczędności przyniesie ci rezygnacja z liczb zmiennoprzecinkowych. Próbowałem ale nie wiem jak to zrobić w tym konkretnym programie. Chyba za głupi jestem na to.
Witam serdecznie Program ma obsługiwać pomiar napięcia i wyświetlić na wyświetlaczu Led wartość odpowiadająca do 1 do 6 oraz wartość n. Problem polega ze dla wartości 1 oraz 2 brak stabilności pracy. Napięcie jest mierzone na pinie 23 uP przez dzielnik napięcia. Moje pytanie czy jest możecie sprawdzić źródło pod katem błędy dlaczego tak się dzieje?...
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...
Może ma ktos z was gotowy program do wyswietlania cyfr na dwóch wyswietlaczach? Może w przerwaniu. Mam cos takiego ale wyswietlacz mruga. Używaj znaczników "code" jak wklejasz kod. Poprawiłem $regfile = "m8def.dat" $crystal = 8000000 Config Portd = Output Config Pinb.0 = Output Config Pinb.1 = Output Config Pinb.2 = Output Config Pinb.3 =...
Witam!! Układ sterownika tampoprintu zbudowany na bazie mikrokontrolera AVR, schemat poniżej, zasilanie dostarczane przez dwie osobne przetwornice +5V dla logiki oraz +24V dla elektrozaworów i oświetlenia, na przewodach zasilających koraliki ferrytowe, pole masy na płytce, tranzystory sterujące cewkami zabezpieczone diodami, przy samych cewkach we wtyczkach...
bascom atmega8 timer1 timer1 atmega8 bascom atmega8 bascom timer1
klepie wymianie rozrządu płyta główna radio pioneer spalić lutownica
toshiba 32l4353d toshiba 32l4353d
Amiko A11 Green – brak możliwości instalacji Netflix, certyfikacja, Widevine L3, Android 11 Dioda blokująca do paneli fotowoltaicznych – STMicro, Vishay, TE Connectivity, dobór i zakup