Witaj, Brakuje jeszcze paru informacji: 1. deklaracji zmiennej licznik 2. gdzie definiujesz zegar ? 3. czy prawidłowo masz ustawione fusebity?
np. Nie da się. TImer0 może zliczać tylko z pinu PD4. I to z PinD.4 a nie PortD.4 ;) Można i z PinD.0, ale nawet przerwania żadnego do tego nie ma więc trzeba by programowo. A nawet jak przerwanie by było (mowa o przerwaniach INTx) to Timer tego nie zliczy. Trzeba by programowo zwiększać zawartość licznika Timera0, ale po cholerę. Jeżeli to ma być...
Load Timer0 = 45 - jak sądzę oznacza nadanie wartości początkowej timerowi. Oznacza to, że powinieneś załadować tę wartość do rejestru TCNT0. Zakładam, że funkcja inicjująca BASOM inicjuje go w tryb normalny (czyli mode 0). W funkcji przerwania: - Incr A, Incr B - po prostu dodaj jeden do zmiennych A i B lub wykonaj inkrementację - If A = 305 Then ......
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.
Problem pewnie tkwi w tym ze masz żle ustawione fusebity. Jest taka opcja ze moża sygnał zegarowy dzielic prze 8 i wtedy procesor pracuje 8 razy wolniej. Zamias sie bawic w fusebitach mozesz po prostu zmienic program. Zamiast: Prescale = 64 wpisz: Prescale = 8 W załączniku są pokazene ustawienia fusebitów. Strzałką zaznaczyłem fusebi odpowiedzialny...
Timer rusza tylko po odblokowaniu przerwania. Po dodaniu instrukci start timer0 wogole nic sie niedzieje.(dioda nie miga) Spróbuje z timer1.
a zmieniłes Fuse Bity?? Bo Attiny2313 pracuje standardowo z zegarem chyba 1MHz.
Na razie największy problem dla mnie to operacje bitowe Ćwicz! Tu jest błąd:[syntax=c]LED1_ON PORTB &= (1<<LED1_PIN)[/syntax]
Pozmieniałem troche program ale nie działa prawidłowo prędkość strasznie skacze od 0 do 240 km/h -bo nie zerujesz co 1 sec. licznika impulsów (Timer0), ponadto ,masz zbyt duży błąd zaniżając zakrses zmienmnej "Licz" - as byte Porównaj: $regfile = "2313def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin ,...
$regfile "attiny2313.dat" $crystal = 1000000 Config Portb.4 = Output Dim I As Byte Config Timer0 = Timer , Prescale = 1024 On Timer0 Przerwanie 'Start Timer0' nie potrzebne Enable Timer0' zezwolenie na przerwanie timera Enable Interrupts Do Loop Przerwanie: Incr I If I > 10 Then Toggle Portb.4 I = 0 End If Return
Dodaj Waitms przed Loop: [...] Waitms 10 Loop
Mam Attiny2313 pracujący na wewnętrznym oscylatorze 8MHz, który może być dzielony przez 8, Więc raz jest 1Mhz, a raz mogę ustawić 8Mhz. To jest prawda, chyba nie robisz tego w programie tylko(!). O ile wiadomo to funkcja 'GETRC5' używa Timer0 oraz Timer0 Interrupt, zatem używanie timera0 w programie do innych celów staje się dyskusyjne. e marcus
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
Chyba najprostszy jaki można napisać. Dim Wynik As Long Config Timer0 = Counter , Edge = Rising Do Timer0 = 0 Start Timer0 Wait 1 Stop Timer0 Wynik = Timer0 * 50 'to przykład może być *50,20,1... Locate 1 , 1 Lcd Wynik Locate 1 , 5 Lcd "rpm" Loop End
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
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ł"...
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ł...
Witam, mój problem polega na tym, że chcę włączyć tryb CTC dla Timer0. Próbuję to zrobić (ASM i C) i w efekcie licznik się nie zeruje na wertości TOP, ale leci do MAX (255). Jednak tak samo napisany kod dla Timer1 już działa zerując licznik po osiągnięciu wartości TOP (np. 50). TIMER1 CTC MODE: [syntax=asm] ldi r16, 0x63 ; out OCR1AL, r16 ; ldi r16,...
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...
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"...
czy mógłby mi ktoś podpowiedzieć jak odbierać rc5, chodzi mi o rozwiązanie czasów odbioru, czy umieścić odbiór w timerze1 jeśli tak to jak go ustawić żeby odmierzył te 864us, prosiłbym również o podpowiedź jak rozwiązać sam odbiór, zapisywać stany do zmiennej??(przeglądałem forum[i nie tylko] ale informacji dla c nie znalazłem)
Witam! W jaki sposób mogę ustawić częstotliwość Timera 0? Potrzebuję częstotliwość 122Hz. Do wejść XTAL podłączony mam rezonator kwarcowy 4MHz. Czy częstotliwość obliczam tak jak przy AT90S2313? W pętli głównej programu wpisałem: (...) TCCR0B = 1<<CS01 | 1<<CS00; TIMSK = 1<<TOIE0; (...) A dalej w przerwaniu: SIGNAL(SIG_OVERFLOW0) {...
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...
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 =...
Mam problem z timerem w Attiny2313 Dokładniej czytałem coś takiego: http://obrazki.elektroda.net/44_12866590... I gdy przetestowałem ten kod, to moja dioda zmienia zaświeca się po 8 sekundach i gaśnie po 8. Więc jest coś źle. Jedyna różnica to to, że mam Attiny 2313, a Nie Atmege8, Ale to chyba nie jest problemem?
Tak to kiedyś zrobiłem dla attiny2313 [syntax=c] #include "defines.h" #include <avr\interrupt.h> //#include <stdbool.h> //#include <stdint.h> //#include <stdio.h> #include <avr/io.h> //#include "hd44780.h" #include "hd44780.c" unsigned char sign1[16]; unsigned char i,keys,kdelay,krepeat=20,menu,filter_dly... unsigned char...
Witam, potrzebuje na Attiny2313 uruchomić 3xPWM. Dwa odpaliłem na Timer1, natomiast nie mogę sobie poradzić z odpaleniem PWM na Timer0. Oto ostatnia kombinacja jaką sprawdzałem #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> int main(void) { DDRB= 0xff; DDRD = _BV(5); //TCCR0A = (1 << COM0B1)...
Mam nadzieję że to nie pójdzie do kosza: $crystal = 4000000 '4MHz $regfile = "attiny2313.dat" Config 1wire = Portd.5 Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie0 Enable Interrupts Enable Timer0 Start Timer0 Porta = 0 Portb = 0 Portd = 0 Config Porta = 0 Config Portb = 0 Config Portd = 0 '**************************** 'Zmienne...
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 Potrzebuje program na mikrokontroler Attiny 13 który po wciśnięciu przycisku załączy przekaźnik na 7 godzin. Nie potrafie go sam napisać a jest mi bardzo potrzebny. Pozdrawiam
Poczytaj tematy i uzyj szukaj. Attiny2313 nie posiada adc wiec potencjometrem nie dasz rady tego sterowac. Domyslam sie ze robisz do w bascomie. Tu masz kawalek kodu jak konfigurowac timery zebys mial 4 pwm. '******* procek ******* $regfile = "attiny2313.dat" $crystal = 8000000 $hwstack = 30 $swstack = 30 $framesize = 30 '****** dioda R/G...
Po ciężkich zmaganiach z metodą losową dla kolorów postanowiłem porzucić ten pomysł i zastosować przewidywalny sposób który będzie się powtarzał co jakiś czas. Może i nie jest to rozwiązanie pierwsza klasa, ale działa. Nie stosowałem jednak korekcji gamma, bo przy rozdzielczości PWM 8 bitów i zastosowaniu płynnego rozjaśniania było widać przeskoki (mruganie)...
Co do źródeł promieniowania podczerwonego, to najoczywistszym jest Słońce, dalej wszystkie żarowe źródła światła, no i ostatecznie wszystkie inne piloty IR :-) TSOP1736 odbiera podczerwień i z odebranego sygnału wybiera tą część, która przejdzie przez filtr o częstotliwości około 36 kHz. Dzięki temu nie zareaguje na słońce lub żarówkę. Na jego wyjściu...
Witam! Mam problem z timerami w języku C (w moim projekcie) dlatego zwracam się do Was o pomoc. Napiszę od początku, żeby przedstawić o co mi chodzi. Zbudowałem kiedyś sterownik taśmy led RGB oparty na mikroprocesorze attiny2313, w którym za pomocą jednego przycisku zmieniam podstawowe kolory na pasku ledowym (czerwony, zielony, niebieski) oraz ich...
regfile = "2313def.DAT" $crystal = 11059200 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7 'Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.1 , Db6 = Portb.0 , Db7 = Portd.6 , E = Portb.3 , Rs = Portb.4 Cursor Off Config Pind.6 = 1 Config Pind.0 = 0 Portd.0...
Ja osobiście nie mam problemów z przenaszalnością kodu w firmowym asemblerze Atmela, nawet pomiędzy różnymi wersjami rdzenia, gdyż są w nim wbudowane definicje pozwalającej na asemblację warunkową. Przykład - instrukcja lpm , zamiast której używam następujące makro: .macro LpmPlus #if ((__CORE_VERSION__==V2E)|...
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...
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
Odpowiedź masz w swoim poście, który założyłeś 1h20 minut wcześniej :)
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...
$regfile = "attiny2313.dat" 'model proca $crystal = 8000000 Dim Cyfra As Integer Dim B As Byte Declare Sub Pobierz(byval Cyfra As Byte) Dim A As Byte Dim C As Byte Dim D As Byte Dim Nrwys As Byte 'numer wyswietlacza do wlaczenia Config Portb = Output 'port b jako wyjścia Portb = &B00000000 'stan spoczynkowy-0 Config Portd = Output...
[syntax=c]ISR(TIMER0_COMPA_vect){}[/synt...
http://obrazki.elektroda.pl/9785417500_1... Witam wszystkich Przyszedł czas aby wykorzystać przedstawiony przeze mnie w http://obrazki.elektroda.pl/6714514800_1... Sygnał start i stop jak widać na schemacie przechodzi przez tranzystor Q1 i Q2, bramki Schmitt’a i podawany jest na wejścia INT0 i INT1 procesora. Diody...
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...
Inkrementacja jest wykonywana po obiegu pętli. Racja, chyba mi się mózg zapętlił :)
Dlatego właśnie napisałem, że w swoim programie używasz niewłaściwego przerwania. Znajdź odpowiednik tego które podałeś wyżej, ale dla ATtiny2313: http://www.nongnu.org/avr-libc/user-manu... Do tego właściwą flagę w rejestrze TIMSK. I pokaż cały program po tych modyfikacjach. Teraz będziesz już na właściwej drodze do sukcesu...
Chyba porypana. Ale spróbuj obliczyć ile zajmuje ustawienie portu (i jak) i jednak częstotliwość zegara/kwarcu. Wyżej zegara nie podskoczysz. ATtiny2313 chodzi do 16MHz. Jak pracujesz na fabrycznych ustawieniach 1MHz to i ASM nie pomoże. I w zasadzie czego spróbowałeś? Jak "nosave" to nie ma opóźnienia w odkładaniu/zdejmowaniu ze stosu. Bo tego nie...
Nie wiem, czy Timer0 obsługuje tryb PWM w Twoim procku, jest to wątpliwe. Niestety Attiny2313 obsługuje PWM z TIMER0 i do tego dwa kanały.
Witam. Nie wiem jak w asemblerze wykonać przejście mikrokontrolera ATtiny2313 w trym oszczędzania energii, gdy brak będzie zasilania z sieci (praca na baterii). W bascomie po skonfigurowaniu PORTD.2 (INT0) jako wejście podciągnięte do + i podłączenia do niego +5V i rezystora do masy sprawę załatwiał poniższy fragment programu [syntax=vbnet]Do If Pind.2...
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...
Nie wiem czy dobrze kombinuję: $regfile = "ATtiny2313.DAT" $crystal = 8000000 Config Timer0 = Timer , Prescale = 256 On Timer0 Sekunda Enable Interrupts Enable Timer0 Dim Scnt As Integer Sekunda: Incr Scnt Return Czego tu jeszcze brakuje? Bo w symulatorze nie działa, tzn nie zwiększa zmiennej scnt.
Dwa razy włączasz Timer0. A pewnie chodziło Ci o to żeby włączyć Timer0 i potem Timer1.
Hym.... Ma ktoś pomysł jak ustawić Timer0 na Attiny2313? Tam są dwa kanały Pwm, ja bym potrzebował tylko jednego, wiem, że to trzeba ustawić "ręcznie" i że trzeba wpisać odpowiednie wartości: Tccr0a=? Tccr0b=? Tylko nie wiem jakie. Szukałem i próbowałem dwa dni ale nic z tego nie wyszło. I jeszcze jedna sprawa. Na ATmega8 przy wew. oscylatorze 1mH działa...
Programu tego nie skompilujesz ponieważ Timer0 w ATtiny2313 jest 8bitowy. Jeśli jest to program do projektu z Twojego innego tematu to tam był użyty uK z rodziny AT89..., nie znam ich, więc nie wiem jakie tam są timery. Musisz od początku skonfigurować Timera0 lub innego tak, aby zliczał sekundy. Dlaczego chcesz użyć zewnętrznej pamięci EEPROM? ATtiny2313...
Witam. [syntax=basic4gl]Ustaw F_CPU na 8000000 Hz 'Declarujemy zmienną np.Licz Dim Licz As Byte Config timer0 = Timer , Prescale = 256 Enable Interrupts Load Timer0 , 250 '--przerwanie będzie co 8ms On Timer0 Przerwanie 'W przerwaniu: Przerwanie: Load Timer0 , 250 Incr Licz If licz = 125 Then Licz = 0 Toggle Portb.6 '--- zmiana stanu co 1sek End If...
Timer0 i timer1 używają tego samego preskalera. Dlatego instrukcja prescale=64 zmienia warunki dla funkcji getrc5. Rozwiązaniem może być dopasowanie się z timer1 do preskalera użytego przez timer0 w obsłudze rc5 lub zmiana kodu funkcji getrc5.
Witam. (Buduję czujnik odbiciowy) Mam duży problem dotyczący generowania 36kHz i podania tej częstotliwości na diodę IR, aby TSOP1736 odebrał sygnały. ATTiny2313 pracuje na kwarcu 4MHz z kondensatorami 27pF. Dioda podłączona jest do uC katodą przez rezystor 220(Ohm) i potencjometr 1k(Ohm). Dioda świeci, sprawdzałem to aparatem cyfrowym. Napisałem taki...
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...
timer0 attiny2313 attiny2313 przerwanie timer0 attiny2313 bascom timer0
częstotliwości radiowe policja sprzedam głośnikowe stawek impreza
mikrokomputer cobra1 wymiana łożysk pralce candy
Kod błędu 88 w pralkach Logik - przyczyny i rozwiązania Kod instalatora Proel KDC 1804-R - jak znaleźć?