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.
a zmieniłes Fuse Bity?? Bo Attiny2313 pracuje standardowo z zegarem chyba 1MHz.
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...
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"...
Odpowiedź masz w swoim poście, który założyłeś 1h20 minut wcześniej :)
Poniżej masz zdekompilowany fragment kodu 'bascomowego' do obsługi przerwania: etykietaprzerwania: portb7 = not portb.7 timer0 = 200 return Widać że odkłada wszystkie rejestry jak leci - 80% z tych instrukcji możnaby wywalić, a każda z nich bierze cykle zegara - możesz sobie policzyć ile dokładnie. +0000002C: E084 LDI R24,0x04 Load immediate +0000002D:...
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
w/w procek ma 4 kanaly pwm. z tego co wyczytalem w dokumntacji to ten dwa dodatkowe sa na timer0, tyle ze bascom nie ma takiej opcji :( moze ktos wie jak to zrobic? probowalem podobnie ja pwm na timer1 ale bscom nie chce tego skapilowac. z gory dzieki za pomoc!
Witam. Na początek napiszę że to ma być mój pierwszy program napisany w tym języku i pierwszy kontakt z mikrokontrolerami. Nie mam pomysłu jak się zabrać za uruchomienie jakiegoś "zegara". Wydaje mi się że wtrącenie w pytaniu „jakiegoś zegara” wprowadza ludzi w błąd. Z dalszej części wynika że raczej potrzebujesz obsługi TIMERA wbudowanego...
Witam Jak wielu spotkałem się z problemem problemem kłopotliwej obsługi pilota z RC5. Po poszperaniu w necie wpadłem na http://www.elektroda.pl/rtvforum/topic20... ten temat. Jak się okazało wszystko na tym programie pracowało, ale nie zawsze. Kłopotem było napisanie programu "pod pilota". Oczywiście pochwała dla Sabotaz'a który problem "ruszył"...
Konfiguracja timera '51 jest inna : [syntax=basic4gl]Składnia: CONFIG TIMERx = COUNTER | TIMER , GATE = INTERNAL | EXTERNAL , MODE = 0 | 1 | 2 | 3 gdzie: x0 – TIMER0, 1 – TIMER1, Opis: TIMER0 i TIMER1 mogą pracować jako liczniki impulsów zewnętrznych gdy pierwszy parametr jest ustawiony jako COUNTER. Impulsy zliczane muszą być dostarczane...
Wydaje mi się, że najpierw powinno być „uruchomione” odliczanie tych 0,1 sek, wyzwalane pierwszym pikiem z „paczki”. Potem trzeba odczekać te 0,1 sekundy na zanik „szumów” i zacząć zliczanie w czasie 0,9 sek. Ilość zliczonych pików podzielona przez czas da mi częstotliwość. Wynik ma się utrzymywać na wyświetlaczu...
Witam, nie mogę sobie proradzić z obsługą timer0 w przerwaniu. Zamiast wł/wył port po początkowym opóźnieniu co 0,5s ustawia się w stan wysoki i tak sobie świeci w nieskończoność. Co jest nie tak? Kod poniżej: $prog &HFF , &H73 , &HFF , &H00 $regfile = "ATtiny13.DAT" $crystal = 128000 Wyj Alias Pinb.1 'wyjście Config Wyj = Output 'ustawienie...
Witam, Mam problem z obsługą timerów w Attiny2313. Korzystam ze środowiska Atnel studio 6. Przechodząc do rzeczy, napisałem sobie kiedyś program w Basomie, w którym odmierzałem czas za pomocą Timer0. Poniżej fragmenty kodu odpowiedzialne za konfigurację tego timera: [syntax=basic4gl] Config Timer0 = Timer , Prescale = 256 Load Timer0 = 45 On Timer0...
Witam Mam następujący problem: Chcę sobie pomrugać diodą na attiny13 ale za pomocą przerwania. Oto mój program: $regfile = "attiny13.dat" Config Portb = Output $hwstack = 32 $swstack = 16 $framesize = 8 Dim A As Byte Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie Enable Interrupts Enable Timer0 Start Timer0 Do Loop end Przerwanie:...
Witam Potrzebuję programik na attiny2313 napisany w bascom. Mam ten procek , oscyloskop i trochę ogarniam bascoma a potrzebuje to dopasować do zepsutego urzadzenia. Podane czasy są orientacyjne , wyliczone na kartce. Te czasy będę musiał dopasować , stąd potrzebuję to w bascom , opóźnienia związane z obsługą "coś ma zrobić" są nieistotne , skoryguję...
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 =...
Witam, zaprogramowałem Attiny 2313 w bascomie tak aby co sekundę gasła i zaświecała się dioda led podpięta do PORTD.6. Ustawiłem obsługę przerwań, konfigurację TIMERA1 podzieliłem go przez 64. Oscylator procesora jest ustawiony w FUSEBITS na wewnętrzny 4Mhz ( 100010:int. RC Osc. 4 Mhz; Start-up time: 14 CK + 65 ms; Config Portb = &B11111111 Portb =...
Witam, Dochodzę do szału ponieważ nie mogę odliczyć 1 sekundy w BASCOM-AVR $regfile = "attiny2313.dat" $crystal = 4000000 Config Portb = Output Config Portd = Output Config Timer0 = Timer , Prescale = 1 Dim Tim As Byte Dim Sek As Byte Dim Przerw0 As Word On Timer0 Odmierz Enable Interrupts Enable Timer0 Timer0 = 0 Do If Sek = 10 Then Sek =...
Mam prośbę, jeżeli możesz to sprawdź w swoim BascomAVR czy występuje problem z konfiguracją liczników T0,T1 dla tego procesora. Z tego co wyczytałem z noty katalogowej Atmela i helpów do Bascom'a wszystko powinno działać, tymczasem podczas sprawdzania syntax check wywala mi błąd. Jedyne co kompilator przyjmuje to: Timer1 = Timer, Prescale (1,8,64,256,1024)...
Witam Mam problem z kodem do silnika krokowego, otóż wszystko działa jak należy, jednak czasami coś się wiesza i silnik krokowy zatrzymuje się ,a za 2s znowu działa jak należy. Proszę o pomoc [syntax=basic4gl]Dim Przycisk As Byte , Kropy As Byte Config Portb = 255 Portb = 255 Config Portd = &B1111100 Portd = 127 Config Timer0 = Timer , Prescale = 1024...
Witam problem polega na tym, że po podłączeniu zegara czasu rzeczywistego PCF8583 (schemat i program ze strony http://www.grifo.com/PRESS/BLT_APPL/uk_a... do attiny2313 układ nie działa. Znaczy dioda miga ale tylko gdy zakomentuje instrukcje settime i gettime. Gdy próbuje ustawić czas lub go odczytać ukłąd nie odpowiada. Proszę o sprawdzenie czy...
Witam prosiłbym o skompilowanie programu ponieważ od pewnego czasu po zmianie systemu na windows 7 , każdy program który chce skompilować pokazuje mi błędy. Jaka może być tego przyczyna?? oto program do kompilacji [syntax=basic4gl]************* Konfiguracja uC ***************** '***************************************... $regfile = "attiny2313.dat"...
Witam, Problem który nie daje mi spokoju na pierwszy rzut oka wygląda banalnie. Postanowiłem użyć czasomierza Timer0 do odmierzania odcinków czasowych za pomocą przerwania od przepełnienia licznika. Program który zamieszczam poniżej powinien pracować w nastepujący sposób: 1. po wciśnięciu przycisku (PB1) dioda LED mruga 1 raz na sekundę 2. przycisk...
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
(at)ElektrodaBot powyżej 255 licznik źle zlicza dając ) co może być źle w tym kodzie: [syntax=text]$regfile = "attiny2313.dat" ' 2KB FLASH|128B SRAM|128B EEPROM $crystal = 8000000 $hwstack = 40 $swstack = 8 $framesize = 24 Config Timer0 = Timer , Prescale = 64 On Timer0 Wyswietlanie Config Pina.0 = Input Config Portb = Output : Segmenty Alias Portb...
Nie wiem po co sobie utrudniasz z "programowym" pwm . Attiny13 ma timer0 i dwa kanały sprzętowy pwm (OC0A i OC0B) . Jeden kanał używasz do migania LED a drugi do sterowania serwem , w "case" gdzie masz serwo musisz tak manipulować zmienną dla led i serw po przez np: pętle i będzie chodzić. Najlepiej to zmień procesor np: na attiny2313 , trochę większy...
Dwa razy włączasz Timer0. A pewnie chodziło Ci o to żeby włączyć Timer0 i potem Timer1.
To co napisałeś to pewnie bascom ,ale po pierwsze nie używasz przerwania int0 tylko portu jako wejścia . Żeby używać int0 jako przerwania powinieneś po pierwsze skonfigurować jakie zdarzenie na int0 ma wywołać przerwanie zmiana stanu , poziom .Zezwolić na obsługę przerwania int0 i odblokować globalnie przerwania . po wystąpieniu zdarzenia nastąpi skok...
Acha rozumiem, czyli ta linijka odpowiadająca za Timer0 jest zbędna wystarczyło dodać "Compare B Pwm" do linijki Timer1. Jeszcze pytanie dla ścisłości : ta komenda jest poprawna w przypadku Timer1? Compare1a = 1000 Compare1b = 400
Dzisiaj na stronie elportalu znalazłem komentarz na temat bascoma i ATtiny. Bascom nie obsługuje prawidłowo ATtiny. Start Timer0 czy stop Timer0 nie działa (przynajmniej dla ATtiny2313). Trzeba wpisać do odpowiedniego rejestru właściwą wartość żeby timer wystartował itp. Trzeba się zapoznać z dokumentacją. Rejestry sterujące timerami są podzielone na...
zagladałem i wiele nie znalazłem, mam taki mniej wiecej program i nie wiem.... moze czegos brakuje? szukałem juz na elektrodzie, ale nie znalazłem niczego... [code] $crystal = 3500000 $regfile = "2313def.dat" Ddrb = &B00111111 Ddrd = &B11111111 '****deklaracje zmiennych Config Timer1 = PWM , PWM = 8 , COMPARE A PWM = CLEAR UP Config Timer0 = Timer ,...
przepraszam, slepy jestem. mam $regfile = "2313def.dat" zamiast $regfile = "attiny2313.dat" teraz sie kompiluje, zaraz będe sprawdzać czy będzie generować. sprawdze jeszcze: Set Tccr0b.cs00 'start timer0 Set Tccr0a.wgm00 'mod pwm prawdłowej częstotliwości Set Tccr0a.com0a1 'wyjście pwm1 enable Set Tccr0a.com0b1 'wyjście pwm2 enable a wersja bascom-avr...
Witam, Z racji ograniczonej ilości portów, zostałem zmuszony do multipleksowania dwóch wyświetlaczy LED 7 segmentowych poprzez rejestr 74HC595. Na początku dla testów napisałem krótki programik. Program działa, lecz ......... Myślę sobie: poczekam parę milisekund po każdej cyfrze. Wstawiłem w pętli głównej waitms 1 i jakie jest moje zdziwienie że po...
Witam.Pan Mirley napisał mi program do prostego termostatu.2 diody led (czerwona się świeci jak grzałka grzeje,a zielona się świeci jak grzałka nie grzeje).Temperatura załączania grzałki jest ustawiana w programie (w kodzie w bascomnie) o raz histereza 2C.Przekaźnik podczepiony pod port scalaka.Tak samo DS18b20.Mój problem polega na tym, że mi to nie...
1) Dałeś tytuł "multipleksowanie", w programie i twojej wypowiedzi widzę że multipleksu tam nie ma. Czyli że chcesz najzwyklejsze sterowanie równoległe, było tak odrazu pisać. Więc bajer z odpowiednim połączeniem nie jest ci potrzebny 2) Płynne zapalanie i gaszenie, tak więc potrzebujesz programowy PWM (no bo chcesz sterowanie równoległe) 3) Twój program...
W attiny2313 masz wyjścia b i d a ja potrzebuję generować to na port d bo akuratnie będzie mi łatwiej wszystko podpiąć. Na porcie D masz OC0B (pin PD5) więc konfiguruj odpowiednio Timer0 w CTC z wyjściem "Toggle OC0B" Patrz Datasheet str.79; Tab.40 Mode2 oraz str. 78; Tab 37 Na podstawie tych tabel i potrzeb wyedytuj dwa rejestry: TCCR0A oraz TCCR0B....
Witam wszystkich Przeczytałem kilka postów, szukałem w google, ale i tak nie mogę zrozumieć pewnej sprawy, mam kłopot ze zmiennymi żeby je umieścić w pamięci nieulotnej. Jest to wyświetlacz 3-cyfrowy 7-seg. multiplex, na razie sterowany przyciskami, może później będę chciał dorzucić sterowanie podczerwienią, ale to jeszcze sporo nauki przede mną (:....
Mam jeszcze pytanie o maskowanie bitów Będę odczytywał dane z PCF8563, a on wymaga maskowania bitów po odczycie. Jako, że na aktualnie używanej płytce nie mam RTC PCF8563, na razie na "sucho" wymyśliłem coś takiego: [syntax=c] void Czas(){ // definiujemy sobie dla polepszenia czytelności programu typ wyliczeniowy // wskazujący nam później na odpowiednie...
Powinno działać zmniejszanie, aczkolwiek nie testowałem. Napisałem tak na kolanie, ale i tak znów pomimo dodania funkcjonalności zajmuje mniej ;) Dodatkowo: PORTB w Attiny2313 ma już osiem pinów a nie jak poprzednio... [syntax=vbnet]$regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 32 $swstack = 14 $framesize = 32 $baud = 38400 Config Submode...
dzięki Stefan, poprawiłem i program się skompilował jednak po wgraniu do procka nie działa Oczywiście że nie może działac. Procedury warunkowe " If... then... " mają zakończenie " End if ", Natomiast procedury wykonywane w subrutynach lub Labels (etykietach) kończone są przez " Return " a nie na odwrót lub 'przeplatane'. Wtedy wchodzisz z jednej etykiety...
Witam, zacząłem budowę ściemniacza do "halogenów" opartego na mikrokontrolerze, narazie wybór padł na Attiny15L bo taka była pod ręką. Docelowo Attiny2313 albo coś większego. Jestem na etapie testów i niestety nie wypadły one pomyślnie. Skonstruowałem taki układ: http://obrazki.elektroda.net/24_12234045... Wiem, że Attiny15L nie jest zbyt dobrym...
Witam Ostatnio zająłem się nauką programowania procesorów i postanowiłem napisać program zegara. I oto i on Ddrd = &B1111100 Portd = 127 Ddrb = 255 Portb = 255 Config Timer0 = Timer , Prescale = 64 Enable Interrupts : Enable Timer0 On Timer0 Zegar Dim Liczsek As Word , Liczsekz As Byte , Liczwys As Byte Dim Setmin As Byte , Dziemin As Byte , Setgodz...
tak wyglada teraz pogram 'zegarek v.1.0 Dim Godz1 As Byte , Godz2 As Byte , Minut1 As Byte , Minut2 As Byte Dim Sek1 As Byte , Sek2 As Byte , Wysw As Byte , Kropka As Bit , Po As Byte Dim Sekjed As Byte Config Portb = 255 : Portb = &B255 Config Portd = &B1111100 : Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Config Timer1 = Timer...
aha, rozumiem, a czy ktoś mógłby podpatrzeć ten kod? bo wywala mi błąd: ''''''''''''''''''''''''' 'Nowy Elektronik '12-kanałowe zdalne sterowanie na podczerwień 1.0 'Kuczuś 'Procesor ATtiny2313 'Kompilator Bascom AVR ''''''''''''''''''''''''' $crystal = 12000000 Dim Flaga As Bit Dim Rozkaz As Byte , Adres As Byte Portd = 255 Portb = 255 Config Rc5 =...
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ę...
http://obrazki.elektroda.net/76_12349093... Włącznik komputera zintegrowany z igorplug Ostatnio postanowiłem zmontować sobie komputer pracujący w roli "Media Center". Jako zdalne sterowanie wykorzystałem odbiornik igorplug ( http://obrazki.elektroda.net/86_12349099... Wszystko działało bardzo pięknie - pojawił się tylko jeden problem -...
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...
Ja dopiero sie uczę i jestem początkujący. Próbuje sprawdzam. Datasheet nie czytam ponieważ bardzo slabo znam angielski, a zwłaszcza ten techniczny. Wpisałem wszystko co mi podałeś Saabotaz, ale nadal nie działa. Dziwne rzeczy wyskakuja na wyświetlaczu, a działam na plytce ZL11AVR. Jeżeli ktoś by zechciał tutaj badz na PW mi to wytlumaczyć bym był bardzo...
Niestety. Twój kompilator jest chyba zbyt leciwy by skompilować to poprawnie(j). No to trzeba mu zrobić "kuku" ;) Dziękuję za przetestowanie Timer0 :!: Idę... porozmawiać z posiadaną wersją [B] i podjąć odpowiednie kroki. Dam znać czy/jak i u mnie zagra :D Pozdrawiam
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...
Tak.
Lecz zrobiłem sobie testy: Że na wyświetlaczu wyświetlam wartość B, i jak się okazało, jeśli zamienię Config Timer0 = Timer , Prescale = 1 na Config Timer0 = Timer , Prescale = 8 to wartość B zmienia się szybciej! Dlaczego tak się dzieje? Może dlatego że jest jest prescale =1 to przerwanie jest wykonywane co 32us czyli w czasie tego waitams 20 trafia...
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ł...
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...
witam ! '2 wyświetlacze LED 7segmentów 'fusebity ustawione fabrycznie $regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output 'katody segmentów LED Config Portd = Output Anoda1 Alias Portd.0 Anoda2 Alias Portd.1 Dim Nr_wysw As Byte Dim Cyfra2 As Byte Dim Cyfra1 As Byte Dim Temp_liczba_1 As Word Dim Temp_liczba_2 As Word Config...
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...
[syntax=basic4gl] $crystal = 4000000 Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111100 Portd = &B1111111 Config Timer0 = Timer , Prescale = 64 Enable Timer0 Enable Interrupts On Timer0 Co1ms Dim Liczba As Single Dim Ktorywysw As Bit Dim Lol As Byte Dim Jednostki As Byte Dim Dziesiatki As Byte Dim Pomoc As Bit Dim Aaa As Word Dim...
Czyli jeśli dobrze rozumiem z tego co przeczytałem w tematach podanych wyżej Attiny2313 ma 4 kanały PWM. 2 są powiązane z Timer1 a 2 pozostałe z Timer0. I mam pytanie czy te dwa kanały z timer1 mogą pracować z różną częstotliwością ? Czy Timer0 który jest 8 bitowy pozwala na generacje sygnału PWM tylko poprzez napsanie programu zaświeć diodę zaczekaj...
Probowałem timer0 i timer1 ale obliczenia się nie zgadzają z rzeczywistością
Funkcja Getrc5 działa z przerwaniem INT0 lub INT2. Z INT1 nie można jej skonfigurować. Ustaw w programie Timer0 i podłącz odbiornik na Pind.2 (dla ATtiny2313).
Po co stosować tu przerwanie? Kardynalny błąd to stosowanie polceceń opóźnień w przerwaniach. W tym programie problem tkwi w: If Przycisk = 0 Then Waitms 100 If Przycisk = 0 Then Incr Sekwencja If Sekwencja = 0 Then Incr Sekwencja If Sekwencja = 4 Then Sekwencja = 1 End If End If End If End If Popraw na: If Przycisk = 0 Then Waitms 100 If Przycisk =...
timer0 attiny2313 attiny2313 timer0 bascom timer0
hyundai falujące obroty ferguson enigma wentylator kabina
bateria parkside zmywarka whirpool mruga start
Inwerter hybrydowy EASUN SMG 11 kW - instrukcja PL Regulacja wysokości koszenia w kosiarce rotacyjnej PZ CM 211 – budowa i ustawienia