Na razie patrzyłem tylko w dokumentację Bascoma... dokumentacje tego procka ma coś koło 250 stron :/ Jeśli już wiesz ogólnie jak działają avr-y , to wtedy dokumentację czytaj wybiórczo , czyli tę część która Cie interesuje ;) Z dokumentacji Bascoma wynika, że stosując polecenie config timer nie da się ustawić prescalera dla trybu PWM... Między innymi...
Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
Mimo że port ma 7 wyprowadzeń to zawsze ustawiaj 8 bitów, bo to wciąż port 8-bitowy tylko że z obciętymi nóżkami. Regulację szybkości robi sie łatwo. Dodajesz jakąś zmienną np LICZ i teraz co każde wejście do przerwania timera to zwiększasz tą zmienną o 1. Teraz porównujesz ją z drugą zmienną np SZYBKOSC. Jeśli LICZ > SZYBKOSC to wykonujesz zawartość...
O układ DS3231 lekko zahaczyłem (...) Cenę sprawdziłeś? Dodano po 1 W pętli głównej procesor nie robi nic. ************************************* Do Loop End ************************************* Oznacza to, że czas odmierzasz w przerwaniach. Mam nadzieję, z timer pracuje w trybie CTC. W takiej sytuacji w pętli głównej usypiaj procka. Bascom ma odpowiedni...
Hmm Nie jest to takie proste jak sobie wyobrażasz. Najprostszy zegar jaki ja często stosuję: Oczywiście preskaler i początkowa wartość timera dostosowana jest do 8Mhz Jeśli chcesz zastosować zegar z innym taktowaniem musisz sobie obliczyć początkową wartość i preskaler. $regfile = "m8def.dat" $crystal = 8000000 Dim Sekunda As Byte Dim Minuta...
Witam. Ostatnio zacząłem bawić się w obsługę RC5, ponieważ jest mi ona potrzebna w pewnym projekcie. Po uruchomieniu odbiornika na M8 przyszedł czas na nadajnik. Prowizoryczny był na M8 jednak docelowy miał być na attiny45, ale trochę zbyt późno dowiedziałem się, że Attiny nie posiada 16-bitowego timera1, a także Bascom nie potrafi skonfigurować jego...
Witam Wszystkich Pisze kod do zegarka binarnego (zaczynam) jestem na etapie sekund. Licznik działa ale nie włącza poszczególnych diod led. Sterowanie diod jest za pomocą multipleksowania. Skupiłem się na razie tylko na wyświetlaniu sekund jak to ruszy to reszta pójdzie łatwo. Procesor attiny 2313 kwarc 20MHz Bascom. [syntax=basic4gl] $regfile = "attiny2313.dat"...
Witam, Chciałbym napisać sobie taki program. Jeśli Pind.6 zewrzemy do masy (Pind.6 =0) to wtedy zostanie wyświetlony komunikat SUPER, Jeśli w ciągu następnych 2 sekund drugi raz zewrzemy go do masy, to otrzymamy komunikat EXTRA, Jeśli zaś zewrzemy ten pind.6 po upływie 2 sekund, to nic się nie stanie. Mam taki ogólny zarys tego w Bascomie $regfile =...
Witam niedawno zacząłem przygodę z programowaniem mikrokontrolerów w programie który zamieściłem poniżej chciał bym dorobić miganie diody po przez jakiś podprogram ale tak żeby główny program działał a nie zatrzymywał się na podprogramie. Nie wiem z której strony to ugryźć na czerwono zaznaczyłem miejsce gdzie ma migać dioda aha i dioda ma migać dopóki...
Witam zainteresowanych tematem. Uplynelo juz wiele dni kiedy ostatni raz opisalem swoje dzialania z modulem RFM65W. Teraz zebralem wiele doswiadczen i doszedlem do wniosku, ze ustawienie rejestrow w RFM65W jedynie udalo mi sie za pomoca ARDUINO po wgraniu programu w /w tego opisu. https://forum.arduino.cc/index.php?topic... Ale to jest przejsciowe...
Witam Piszę program (bascom) i nadziałem się na problem z którym nie mogę sobie poradzić. Timer 1 pracuje jako zegar i po spełnieniu warunku , ma załączyć przekaźnik który ma być załączony na czas_pracy i po odliczeniu czasu pracy ma wyłączyć się na czas przerwy i zablokować włączenia przekaźnika na ten czas. Tak w skrócie: kod : $regfile = "m8def.DAT"...
Witam. Napisałem sobie taki program, początkowo bez timerów lecz nie działał jak chciałem, Zrobiłem z timerem i niestety nic to nie dało. Program wygląda tak: $regfile = "attiny2313.dat" 'typ proca $crystal = 1000000 'taktowanie Config Portb = Input 'port b jako wejścia Portb = &B00111111 Config Portd = Output 'pprt d jako wyjścia Portd =...
Dzięki zbig_wwl. Pokombinuje z tym stosem. A co do PWM to faktycznie nie używam go bo i po co:) Pilot ma następujące zadanie: Po uruchomieniu włączone zostaje przerwanie int0. Po wciśnięciu przycisku zewnętrznego (dodane obwody eliminujące drgania styków) program wyłącza przerwanie int0, generuje zmienne na podstawie zawartości timera0. Następnie odblokowywane...
Odkopię temat bo mam problem też z Attiny13. Problem jest następujący: po skonfigurowaniu timera0 jaki licznik zaczyna on zliczać kolejne takty procesora z określonym preskalerem. Jeżeli skonfigurujesz którykolwiek Timer (w dowolnym AVR) jako licznik (COUNTER) to przestaje on zliczać takty processora, a oczekuje na taktowanie zewnętrzne na odpowiedni...
Racja. Do tego typu obliczeń są potrzebne większe procki. Wracając do tematu licznika. Stworzyłem już kod, który odlicza czas i zlicza naciśnięcia(maksymalne wychylenia). Nie mogę dojść do sposobu jakim mam obliczyć resztę. Nadal ufam,że jeszcze na ATtiny uda mi się to zrobić :) Wzór G = k * l/T^2 gdzie k tam stały współczynnik 39,44 l - długość, zakładam...
Witam wszystkich wszech wiedzących. Mam taki drobny problem, otóż w zestawie uruchomieniowym zl11avt zaprogramowałem mikrokontroler attiny 2313 żeby na wyświetlaczach led był zegarek z budzikiem. Po zastanowieniu sie zobaczyłem że mam 4 porty wolne i mogę wykorzystać je do czego chce. Chciałbym żeby to był normalny zegarek ale gdy na PD2. (wolnym) pojawi...
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ę...
Witam. Podczas pisania testowego programu (do płytki testowej z kursu Bascoma) do sterowania falownikiem wyskakują mi błędy 7 i 123. Korzystam z wersji demo Bascom 2.0.7.5. Oto mój program Dim Czestotl As Byte , Do_zaokr As Single , Do_timera As Long , Ktorapol As Bit , Odliczanie As Long , Blokada As Bit , Powitanie As Bit Config Pind.0 = Input , Pind.1...
Zrobiłem to tak ale BASCOM pokazuje jakieś głupoty. Dim W1 As Word Dim W2 As Word Dim W3 As Word Dim W4 As Word Dim W1_previous As Byte Dim W2_previous As Byte Dim W2_previous As Byte Dim W3_previous As Byte Dim Koncz_liczenie As Byte Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Timer0_int Do Timer0 = 0 W1 = 0 W2 =...
Witam Jestem początkującym więc wybaczcie jakieś niedociągnięcia. Gdzie jest problem : Kupiłem książkę i płytkę z układem - Mikrokontrolery dla początkujących. Jest to kurs programowania w BASCOMIE. W rozdziale opisującym programowanie EEPROM nie jestem w stanie zaprogramować EEPROMa. Sprzęt : 1) Programator STK500 po USB 2) Procesor jak w temacie Błąd...
Witam, miałem na zaliczenie zrobić jakiś projekt z wykorzystaniem mikrokontrolera AVR, jako ze miałem tak mało czasu jak doświadczenia to zrobiłem działający projekt ze strony '************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat" $crystal = 16000000 Config Portb = &B11111111...
Nie przesadzaj ;) Jestem programista ale akurat bascom mi nie podchodzi. Do tego slyszalem ze odmierzyc tam cos precyzyjnie nie idzie - stad opinia. Co do kodu to co tu pokazywac? toggle portd.0 .... waitus ... toggle itd? Tak czy siak twoj kod nie dziala odnośnie gotowca od kolegi pixel.... Juz naprawilem kod. Napilem sie kawy a nastepnie jeszce raz...
waitms zdaje się korzysta właśnie z tego timera więc dlatego może masz ten problem. Spróbuj sobie wrzucić obsługę wyświetlacza w timer1 i wtedy waitms będzie może działał dobrze pozdrówka Robię to na Attiny 26L, wg pdfa on ma dwa timery. Być może ten drugi jest jakiś specjalny, póki co w programie po prostu pozmieniałem "timer0" na "timer1" i niestety...
Zrobiłem jakiś czas temu taki układzik na attiny-13 do sterowania dwoma serwami i linijką diodową pokazującą położenie. Niestety do obsługi dwóch serw trzeba po zaprogramowaniu zablokować ISP: '(Program sterownika dwóch serwomechanizmów. Mikrokontroler Attiny 13. Funkcjonalność: Sygnały Ppm 1 - 2 ms: Sygnał Ppm Serwo1 - Port Pb0 - Pin 5...
Witam. W przerwaniu wpisałeś : Timer1 = 131 do zliczenia zostało 65536 - 131 = 65405 Przy wpisaniu do Timer0 tej samej wartości do zliczenia pozostaje : 256 - 131 = 125 impulsów. Myślę, że dobrze zrozumiałem Twój post.
To po prostu fototranzystor odbiorczy+dodatkowy, i sygnał z takiego "odbiornika" (np. post #29) wrzucasz na Timer skonfigurowany podobnie jak miernik częstotliwości. Ciebie interesuje jedynie, czy jest odbierany sygnał czy nie, czyli z odpowiednim bramkowaniem, jeśli nastąpi przepełnienie Timera to sygnał jest odbierany, jeśli nie nastąpiło to brak...
... choć nie wiem jaka jest różnica między programowy pwm a "sprzętowym" pwm. Taka jak obsługa oddziału banku przez jedną osobę (kierownika) w stosunku do obsługi przez kierownika i kilku pracowników. W pierwszym przypadku może się uda, ale na wiele więcej kierownik czasu mieć nie będzie lub nawet nie wyrobi się z pracą. W drugim przypadku na pewno...
No toż pewnie, że możesz używać tzn odczytywać wartości z latającego licznika. Ale jeśli zaczynasz się już nim bawić w ten sposób, że chcesz go resetować w locie (czyli zapisywać), że chcesz zmieniać preskaler na inne wartości niż ustawiony został za pomocą polecenia ConfigRC5 (a został tylko ty tego nie widzisz) to nie dziw się, że potem coś ci nie...
Zawsze możesz wysterować do testu jedną cyfrę bez używania timera . Ustawiając odpowiednie porty w stan wysoki. Jeśli cyfra świeci dobrze a dopiero podczas multipleksowania zaczyna świecić znacznie słabiej oznacza że nie bierzesz pod uwagę średniego prądu segmentów jeśli przełączasz 4 cyfry to każda z nich świeci przez 1/4 czasu więc prąd segmentów...
Co do kwarcu to definiujemy go zawsze, niezależnie od tego czy proc pracuje na zewnętrznym, czy na wewnętrznym, bo to jest informacja dla kompilatora, wg jakiej wartości ma wyliczyć czasy dla różnych instrukcji. Jeżeli to jest "nówka sztuka" to pracuje na wewn. 1MHz. Jak sam zauważyłeś, instrukcja "Loop" powinna znajdować się po ostatnim "Endsub", ale...
Mniej więcej tak: $regfile "Attiny2313.dat" $crystal = 4000000 Config Pind.3 = Output Config Pind.0 = Input Config Pind.1 = Input Config Pinb.3 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Dim I As Byte S1 Alias Pind.0 S2 Alias Pind.1 Set Pind.1 Set Pind.0 Pwm1a = 0 Do If I...
Spróbuj zrobić tak Co4ms: 'procedura obsługi przerwania od Timera T/C0 wykonywana co 4ms Timer0 = 6 'załaduj do Timera0, żeby zliczył 250 (=256-6) impulsów Incr Licznik If Licznik = 6 Then 'zmienna Licznik liczy do 6 aby Licznik = 0 'sprawdzanie stanu przycisku następowało If Pind.0 = 0 Then 'co ok.24ms If Pomoc = 1 Then 'jeśli zmienna Pomoc...
Działanie Timerów jest opisane na forum. W pdf poniżej są przedstawione dwa przykłady na Timer0 i Timer1. Attiny ma również takie wbudowane. http://ep.com.pl/files/4910.pdf Jak jest w przykładzie możesz zwiększać sobie daną liczbę w przerwaniu, a następnie ją sprawdzać w programie głównym "do...loop". Warunkami "If...then" określić przy jakich wartościach...
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...
C czy Bascom? Jeżeli Bascom to konkretną odpowiedź masz tutaj: [url=http://www.elektroda.pl/rtvforum/to... Co do C, konfigurację znajdziesz [url=http://www.elektroda.pl/rtvforum/to... Wystarczy zamienić tylko niektóre rejestry, ctrl+f w datasheet'cie aby zobaczyć który od czego.
Cześć. Po dłuższej przerwie wróciłam do AVR i Bascom. Mam program na Attiny 2313 - działa. Program przepisałam teraz na attiny261, kompiluje sie normalnie, niestety nie mam procesora żeby sprawdzić. Program to proste zależności - "jeśli tu stan niski, to tam i tam też" Żadnych wodotrysków typu ADC czy PWM, nawet z timerów nie korzystam... Czy może mnie...
... Co jest nie tak? Grzech stary jak AVR-y :D Zmień w kodzie Pinb.1 na Portb.1 i pomyśl ;) Piotrek
Przerwania i Timery to rozwiązanie idealne i książkowe, na początek, ale tylko do nauki możesz zrobić na Wait'ach, ale nie polecam tej metody bo prowadzi do złych nawyków...
trochę mały ten preskaler.
Witam Musisz skonfigurować Timer i za jego pomocą odliczyć 4 minuty. $Crystal = 11059200 Config Timer1 = Timer, Prescale = 1024 Load Timer1 , 10800 On Timer1 Sekunda Config Pind.1 = Output : Wy Alias Portd.1 Config Pind.2 = Input : We Alias Portd.2 Dim Licznik_1 As Byte Dim Wsk As Bit Enable Timer1 Enable Interrupts Licznik_1=0 Wsk = 0 Do If...
Nie bawiłem się ATtiny2313, ale jeśli ma PWM to da się zrobić jakieś odtwarzanie dźwięku z próbek. Robiłem takie coś na ATmega128. Puszczasz generator PWM na najwyższej częstotliwości i jakiś timer do generowania przerwania okresowo. Timer determinuje częstotliwość prókowania. Podczas każdego przerwania timera wpisujesz nową próbkę do rejestru generatora...
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ć....
Akurat ważniejszy jest mały spadek napięcia, żeby stan niski pozostawał niskim również za diodą. Zrobiłem szkic pokazujący o co chodzi w tym różniczkowaniu i ANDowaniu: http://obrazki.elektroda.pl/7732349900_1... Przy zwykłym różniczkowaniu widać, że brakuje szpilki wskazującej początek impulsu pierwszego kanału. Można ją odtworzyć...
Jak użyć timera (tzn. jak wyciągnąć z niego np zmienną dodawaną, lub resetowaną co określony czas?) Boję się jeszcze TIMERów :) Nie ma się czego bać. Oto prosty programik, który na pewno pomoże. 796182 Jednak dziwię się dlaczego nie używasz sprzętowego PWM. Attiny 2313 posiada ich cztery. Na każdym z timerów po dwa. [syntax=vbnet]Dim R As Integer Dim...
Poza zmianą nazwy portów będziesz musiał odpowiednio skonfigurować obsługę timera bo z pewnością on jest wykorzystany do liczenia czasu i obsługi wyświetlacza led .
Dawno Bascoma nie używałem ale to będzie coś takiego: On int0 czas 'przerwanie zewnetrze (wejście impulsów) do czestotliwosc=1/czas 'obliczenie czestotliwosci z czasu pomiedzy impulasmi loop czas: stop timer0 'zatrzymaj timer czas=timer0 'odczyt z timera timer0=0 'wyzerowanie timera start timer0 'ponowne uruchomienie timera return Oczywiście...
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...
Jak już pisałem, dawno nic nie robiłem w bascomie, ale poniżej daję ogólny zarys opóźnienia dla przycisku przy użyciu licznika Config Timer0 = Timer , Prescale = 1024 Enable Interrupts On Timer0 , Czas Dim Flaga As Bit Main: Do If Pinx.x = 0 and Flaga = 0 Then Load Timer0 , 25 '0,0256s. dla 1MHz Enable Timer0 End If If Flaga = 1 Then Reset Flaga...
9600000Hz/70000Hz=137 takty 9600000Hz/150000Hz=64 takty Z takimi rozdzielczościami się tam musisz liczyć. Dla 37kHz i innych konfig uzyskasz klikając CTRL+SPACE. Bascom sam podpowiada jakie masz możliwe ustawienia. Nie pamiętam tylko czy jest to FastPWM czy PhaseCorrect który jeszcze spowolni sprawę o połowę. W Tiny85 masz Timer który może być taktowany...
Dzinx Zaraz się zabieram za Twojego help'a ;) Już - stestowane : Dodano po 31 $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = Output 'Portb = 0 Config Portd = Input Portd = 0 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 Start Timer1 Config Timer0 = Pwm , Prescale = 8 ,...
Parę zmian i z 117% zrobiło się 91% :), a można jeszcze niżej zejść. Mam nadzieje że byka nie zrobiłem :): [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 ' dodano wielkości stosów i ramki ----------------- ' jeżeli będzie za mało ramu wartości można zmienić $hwstack = 40 $swstack = 16 $framesize = 32 '---------------------------------------...
Aż se na płytce złożyłem ten układ i program sprawdziłem. No i faktycznie świeciło na stałe. Do poprawienia były bzdety. Wklejam jeszcze raz, przetestowany i na 100% wszystko działa jak chciałeś [syntax=basic4gl] $crystal = 8000000 'Deklaracja częstotliwości kwarcu $regfile = "attiny2313.dat" Config Timer1 = Pwm , Pwm = 8 , Prescale = 8 , Compare A...
Może spróbuj w ten sposób : $crystal = 4000000 Config Pind.5 = Output 'ustawienie wyjścia na pinie który standardowo sygnalizuje przepełnienie timer-a Config Timer0 = Timer , Prescale = 1 'ustawienie timer1 dzielnik 1 On Timer0 Przerwanie_timer1 'wywołanie przerwania po przepełnieniu timera Timer0 = 145 'wartość początkowa od której timer bedzie zliczł...
Czyli zwykły prosty miernik częstotliwości z jej porównaniem przy pewnej wartości - bez problemu się to na jednym timerze realizuje... Zobacz tu: [youtube]http://www.youtube.com/watch?v=... Złapałem tym nawet 40tys. obr/min :) Co prawda to przykład na attiny44, bo obsługa wyświetlacza i takie tam duperele zabierają jednak piny i pamięć...
attiny bascom timer timer attiny attiny timer
błąd przestawienie wałka rozrządu antena siatka pasmo służba nasłuch
electrolux alarmy termopady zotac
Moc trzech grzałek elektrycznych połączonych w gwiazdę Renault Espace IV 2.0 dCi – błąd wtryskiwaczy, brak możliwości kodowania, ECU EDC16CP33, piezo Bosch