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
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ć...
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...
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 ......
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 ! '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...
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...
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...
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...
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...
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...
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)...
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...
Odpowiedź masz w swoim poście, który założyłeś 1h20 minut wcześniej :)
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...
Na razie największy problem dla mnie to operacje bitowe Ćwicz! Tu jest błąd:[syntax=c]LED1_ON PORTB &= (1<<LED1_PIN)[/syntax]
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...
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
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.
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...
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...
[syntax=c]ISR(TIMER0_COMPA_vect){}[/synt...
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...
$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...
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
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...
Dwa razy włączasz Timer0. A pewnie chodziło Ci o to żeby włączyć Timer0 i potem Timer1.
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...
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.
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...
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.
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...
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...
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.
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...
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...
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). Wyjaśnij proszę co to znaczy ? Jeśli masz na myśli że w przypadku ATtiny2313 RC5 działa tylko z pinem Portd,2 to się mylisz. Ta konfiguracja: [syntax=basic4gl] $regfile = "attiny2313.dat" $crystal...
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...
Inkrementacja jest wykonywana po obiegu pętli. Racja, chyba mi się mózg zapętlił :)
Witam , mam problem z uruchomieniem timer1 przez sam rejestr , programowo ok ale potrzebuje jak najwyższą częstotliwość na wyjściu (fusebit omijamy ,ten temat znam) . Jeśli chodzi o tmer0 to ok ale również chodzi o podział większy niż 8 bitów np.16554 , ale również przy najmniejszym podziale jak największa częstotliwość . Korzystałem ze strony [url=http://lx-net.pl/hr/gen1/gen1.html]...
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...
To odblokuj jeszcze timer0 Ją też miałem z tym problemy bo potem odczytywał kody ale się procek zawiązał Musisz chyba jeszcze dać disable int0
Tak powinno działać. Kiedy odbiera poprawny kod czyli dwukrotnie 97 to ustawia zmienną Timeout. Sterowanie przekaźnikiem zależne jest od tego timeoutu. Jeśli w ciągu 500ms (można zmienić) ponownie odbierzemy poprawny kod to timeout zostanie przedłużony i przekaźnik podtrzymany a jak nie to wyłączony. Czas można sobie dobrać eksperymentalnie. Inną sprawą...
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
Zmienić się da, ale jest to przeróbka całego programu. Nie wystarczy zmienić definicję w dyrektywie .include . Jeśli w Twojej płytce siedzi ATTiny2313 to poza zmianą połączenia z diodą z wyjścia PB0 na PB2 (funkcja alternatywna OC0A) i modyfikacją wartości ładowanej do DDRB; reszta programu powinna być taka sama (Timery0 są takie same w obu układach)....
Witam wykonałem termometr z tej strony mirley niestety po wgraniu programu na attine2313, na wyświetlaczu migają tylko środkowe poziome kreski , wszystkie elementy i luty sprawdziłem więc musi to być program, a aż takich umiejętności nie mam żeby napisać program ,na razie się tego uczę , chodzę do technikum proszę o pomoc. schemat: kod programu: [syntax=vbnet]'*************************...
też niedawno zacząłem zabawę z uP ale naskrobałem coś takiego, jeśli źle, to mnie poprawcie. $regfile = "attiny2313def.dat" 'attiny2313 $crystal = 1000000 ' 1MHz Config Portb = Output Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.0 , Rs = Portb.2 Config Lcd = 16 * 2 'wyświetlacz 2 linie po...
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 ,...
Witam, Czy mogłbyś podzielić się kodem źródłowym? Albo chociaż fragment dotyczący konfiguracji timerów. Ostatnio miałem problem z konfiguracją pwm na timer0 w tym AVR. Zrobiłem to więc na jednym pwm i przełączam go między diodami za pomocą tranzystorów. Natomiast timer0 wykorzystam pewnie do obsługi pilota w kodzie rc5. I drugie pytanie to czy do zmiany...
Czytałem i niestety nie wiem co wpisać w TCCR0A oraz TCCR0B czy możesz mi podać co wpisać aby ten Timer działał tak samo jak Timer1 ? Timer1 masz skonfigurowany w trybie "Phase Correct PWM" - stąd obliczysz częstotliwośc. Więc sonfiguruj go podobnie jak Timer1 z pewnymi różnicami: Config Timer0 = Pwm , Prescale = 64 , Compare A Pwm = Clear Down , Compare...
Witam Potrzebuję oprogramować w najprostrzy sposób Attiny2313 i z [url=http://www.cyfronika.com.pl/kityavt... kodu zostawiłem tylko sam licznik impulsów bo nie potrzebuję wyświetlacza, ale nie wiem co dalej bo potrzebuję wiedzieć ile impulsów na sekundę będzie odpowiadało np prędkości 5km/h. Zliczanie nie musi być dokładne gdyż nie...
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...
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...
Po długich bojach ustawiłem w końcu timer1 w tryb CTC wyniki podam jutro, Teraz mam nową prośbę w jaki sposób można zoptymalizować ten kod źr, ponieważ jest tam masa różnych "niepewnych" i pamięcio-żernych rozwiązań oto kod po dodaniu CTC #include <avr/io.h> #include <avr/interrupt.h> const unsigned char znaki[10] = {0xC0,0xE7,0x89,0x83,0xA6,0x92,0x90...
Witam , po przerwie , Nie, w zależności od szacowanych obrotów wybierasz metodę pomiaru, w której wykorzystujesz jeden (dowolny) timer, lub oba w której jeden odmierza czas a drugi zlicza impulsy. Ta ostatnia jest alternatywą do tej którą zastosowałeś lecz czas jest mierzony timerem a nie przez processor instrukcją Wait . Ta druga metoda polega na pomiarze...
Nastąpiły niewielkie postępy. Udało się uruchomić wewnętrzny timer, ale wynik bardzo odbiega od rzeczywistego. Najczęściej pokazuje wynik 0 lub jakąś liczbę jedno czy dwu cyfrową. Bardzo rzadko jest to liczba trzycyfrowa. Program teraz wygląda tak: 'Samochodowy obrotomierz 'Marcin Wiązania 'E-mail: mwiazani(at)poczta.fm $regfile = "attiny2313.dat"...
Witam, proszę o pomoc w zmianie programu: [syntax=bascom] '**************************** 'Konfiguracja '**************************** $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111111 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Przerwanie0 Enable...
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.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...
Czyli Help kłamie? This statement is based on the AVR 410 application note. Since a timer is needed for accurate delays and background processing TIMER0 is used by this statement. The interrupt of TIMER0 is also used by this statement. TIMER0 can be used by your application since the values are preserved by the statement but a delay can occur. The interrupt...
Widzę,że nie ma zainteresowania tematem. A mnie na razie udało się stworzyć układ na Attiny2313. Config Portb.0 = 1 ' ustawienie całego Portu B0 jako wyjścia Portb.0 = 1 ' stan spoczynkowy Portu B0 ustawiony na 1 Config Portb.1 = 1 ' ustawienie całego Portu B1 jako wyjścia Portb.1 = 1 ' stan spoczynkowy Portu B1 ustawiony na 1 Config Timer0 = Counter...
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....
Lysoleq -> ... poczekaj, ale ty po wejściu w przerwanie INT1 inicjujesz Timer0 prawda? czyli ma się wykonać za jakiś tam czas przerwanie no i wykonuje się. Czyli po rozkazie reti skacze do obsługi przerwania timera0. Przecież w pętli głównej masz tylko nop - więc co ten cały program ma robić? jak rozumiem czeka na zbocze opadające na INT1, w tym przerwaniu...
Witam Czy ten program ma prawo działać na ATtiny2313 z wewnętrznym oscylatorem RC o wartości 8MHz jako sterownik silnika bipolarnego, gdyż po podłączeniu do l293d sterownik się strasznie grzeje a silnik delikatnie przekręci się o jeden krok a następnie przerwa i jeden krok do tyłu. [syntax=c]/* #include <avr/io.h> #include <avr/interrupt.h>...
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Jak to uzupełnić? Tutaj jest strona całego projektu: http://mirley.firlej.org/termometr_uniwe... edit: chciałbym, żeby to wyglądało w ten sposób (chyba) [syntax=basic4gl]'**********************... 'Konfiguracja '**************************** $regfile = "attiny2313.dat" $crystal = 12000000 Config Portb = &B11111111 : Portb = &B11111111...
do avr sprzedają takie specjalne kwarce (np 4.194304MHz). prescale 1024 i tajmer 1 8 bitowy generuje ci idealnie 16 przerwań na sekundę. W przerwaniu ovf timer0 inkrementujesz sobie zmienną (albo jeden wybrany rejestr tylko do tego) i jak większy to zero i zwiększasz sobie zmienną sekundową. Nie potrzeba żadnych auto przeładowań, konfig, odpalasz i...
Toż to BASCOM! '$sim $regfile = "ATtiny2313.dat" $crystal = 20000000 $hwstack = 64 $swstack = 16 $framesize = 32 Enable Interrupts Config Int1 = Falling Enable Int1 'włączenie przerwania On Int1 Imp Config Timer1 = Timer , Prescale = 64 Enable Timer1 'włączenie przerwania On Timer1 Wylacz Stop Timer1 Config Timer0 = Timer , Prescale = 1024...
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ą (:....
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 wszystkich Mam problem nad którym siedzę od wczoraj. Szukałem odpowiedzi na forach, w googlu i nie udało mi się znaleźć odpowiedzi. Otóż za nic nie mogę odebrać informacji w RC5 w przerwaniu INT1 w ATtiny2313. Co ciekawe, procek w przerwanie wchodzi, nie zacina się (sprawdziłem diodami i odpowiednio ustawiając porty) ale nie chce zdekodować rozkazu...
Witam, napisałem sobie taki program do PWM-a na OC0A: [syntax=c]#include <avr/io.h> #include <util/delay.h> void pwm_init() // inicjalizacja PWM { TCCR0A |= (1<<WGM01)|(1<<COM0A1)|(1<... // timer0 TCCR0B |= (1<<CS00); DDRB |=(1<<PB2); } int main(void) { pwm_init(); uint8_t jasnosc = 0; while(1){ if(0 ==...
Nie analizuję jak to działa, ale zmieniony tak jak pisałem kompiluje się bez problemu. Jeśli poniższego listingu nie potrafisz skompilować to znaczy że używasz jakiejś archaicznej wersji i nie da się pomóc dopóki nie przesiądziesz się na nowszą. WDVALUE=16,32,64,128,256,512,1024,2048,4... Zawsze możesz wpisać mniejszą wartość dla Config Watchdog.....
po kolei chcialbym aby kolory sie mieszaly. lagodnie przechodzily jeden w drugi i w trzeci. do tej pory zrobilem takie cos ale to zle dziala. i tak zeby mniej wiecej gdy jedna juz do polowy zgasla to zaczelaby sie zaswiecac kolejna o poprzednia zeby wciaz spadala do zera '*********** 4 x PWM ********* $regfile = "attiny2313.dat" Dim I As Integer Ddrb...
Prześledźmy Twój tok myślenia. Program ciągle sprawdza czy pilot coś nadaje. Funkcja Getrc5 to funkcja mierząca czasy pomiędzy zboczami wykorzystując Timer0 a jeśli zboczy nie ma to zwraca wyniki 255,255. Przypuśćmy że nacisnąłeś przycisk pilota w momencie kiedy sprawdzanie wejścia przez mikrokontroler zostało zakończone i teraz sprawdzany jest warunek...
Wy edytowałem takie coś. [syntax=basic4gl]'************* Konfiguracja uC ***************** '***************************************... $regfile = "m8def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Dim Wynik As Long Dim Wynik1 As Long...
$regfile = "attiny2313.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Timer0 = Timer , Prescale = 256 Config Pind.0 = Input Config Pind.1 = Input Set Portd.0 Set Portd.1 Dim G As Byte 'konfiguracja zmiennych Dim M As Byte Dim...
No to do dzieła. Zmontowany termometr działa bez zarzutu, teraz kwestia dołożenia dodatkowego czujnika. Zmiana mogłaby się odbywać np po przez wciśnięcie przycisku bądź co np 5s., jak to zrobić, co należy zmienić? Podaje aktualny program który aktualnie działa i obsługuje jednego ds-a. '**************************** 'Konfiguracja '****************************...
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...
Witam. Korzystając z płytki testowej zaprogramowałem układ AT90S2313 tak by pełnił funkcje najprostszego zegara i tak sie stało. Jednak gdy to samo chciałem zrobić z układem ATTINY2313 korzystając z tego samego kodu układ odmówił posłuszeństwa, a konkretnie obraz zaczął migać i czas był opóźniony o kilka sekund. Można to zrobić zwiększając częstotliwość...
Witam ponownie. Chciałem odświeżyć temat. Mianowicie napisałem kod który będzie zliczał ilość impulsów w czasie 1 sek i zapalał diodę jeśli przekroczy limit. .............. Poniżej kod: Oczywiście, tak ma być z tymi dziwnymi objawami. Po pierwsze; Attiny 13 nie ma 'praktycznej' możliwości pracować przy 1 MHz; możesz skonfigurować go dla: 1.2 MHz; 4.8...
Mam taki problem Robię komunikacje dwóch AVR-ów. Pierwszy wysyła ciąg 30 bajtów drugi odbiera zawsze bezbłędnie z tym nie ma problemu. Gdy odbierze dane poprawnie od razu odsyła pierwszemu znak "T" dając pozwolenie na wysłanie nowych danych. Zrobiłem sobie taką próbę że pierwszy wysyła dane co 20ms nie czekając na zgodę na nadawanie czyli tą zwrotną...
Witam Zrobiłem ten termometr: http://mirley.firlej.org/termometr_domow... Jednak programowanie AT89C2051 nie należy do najłatwiejszych, więc chciałbym prosić o pomoc w "przerobieniu" tego kodu pod kontroler ATTINY2313. Zrobiłem już programator pod ATTINY2313 więc to byłaby najprostsza droga. Proszę o pomoc. Oto kod pod AT89C2051:...
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...
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...
Witam. Mam taki mały problem i potrzebuje waszej pomocy. Pragnę zbudować ściemniacz. Jednak natknąłem się na mały problem. Otóż korzystając z płytki testowej Demo Board AVT 3500 zaprogramowałem układ Attiny2313 i podłączyłem diodę oraz MOC3043(zgodnie z schematem poniżej) pod nóżkę PD.2. Efekt był taki, że dioda świeciła poprawnie a żarówka podłączona...
Do tej pory troszkę bawiłem się AT89C2051. Wykonałem pewien układzik który za pomocą Timera0 zliczał impulsy na wejściu T0 podczas 1sekundy którą odmierzałem Timerem1. Jako, że musiałem przeprogramować 51 do innych celów chciałbym go zastąpić Attiny2313 bo mam dwie sztuki. Zacząłem czytać książkę Dolińskiego aby wykonać program ale mam pewne problemy....
Witam! Główne założenie tej części programu miało być takie, że program sprawdza zmienną w przerwaniu wywoływanym przez timer0 (co 1s) i jeżeli jest warunek spełniony to zwiększa odpowiednią zmienną co 1s. #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> // funkcje sei(), cli() #include <avr/iotn2313.h>...
attiny2313 timer0 attiny2313 przerwanie timer0 attiny2313 bascom timer0
uszczelnienie kanału wentylacyjnego cienie ekran laptop c20ne schemat
kontroler napięcia zmiennego marantz pm6010
Ford S-Max 2006 Diesel – niedziałająca klimatyzacja, diagnostyka, typowe usterki Schemat sterowania alternatorem TG15C135 w Citroën C4 Picasso 1.6 HDi