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.
Bascom jeszcze nie obsługuje PWM w Timer0 z poziomu CONFIG. Trzeba skonfigurować "ręcznie" przez bezpośrednią modyfikację rejestrów sterujących licznika. :(
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 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
a zmieniłes Fuse Bity?? Bo Attiny2313 pracuje standardowo z zegarem chyba 1MHz.
(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...
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...
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...
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...
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
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 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...
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ą (:....
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...
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...
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 -...
Odpowiedź masz w swoim poście, który założyłeś 1h20 minut wcześniej :)
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...
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:...
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...
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!
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...
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...
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 =...
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)...
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...
Pobawiłem się dziś chwilkę programowym PWM. Jest to rozwiązanie na 8 kanałów - 25 może być ciężko pociągnąć ale oczywiście możesz próbować rozbudować program i zmienić częstotliwość zegara czy wywołania przerwań. Pierwszy to demonstracja tworzenia w zasadzie dowolnie biegnącego światła - dane umieszczamy w liniach Data (wartości od 0 zgaszone do 8 max...
Witam.. Od godziny próbuję dojść czemu wyświetlacz tak niemiłosiernie mruga. Gdyby ktoś mógł rzucić na to okiem: $regfile = "attiny2313.dat" 'model proca $crystal = 1000000 'taktowanie Dim Cyfra As Integer Dim Her As Byte Declare Sub Wyswietl Declare Sub Pokaz Dim A As Byte Config Portb = Output 'port b jako wyjścia Portb = &B00000000 'stan...
Tu masz program pod ATtiny2313, jeśli potrafisz programować, to też potrafisz przerobić program na ATMegę: [syntax=basic4gl]' Bardzo prosty zegar bez możliwości ustawiania Dim Sekjed As Byte , Sekdzies As Byte , Minjed As Byte , Mindzies As Byte Dim , Godzjed As Byte , Godzdzies As Byte , Mux As Byte , Migaj As Bit Config Portb = 255 : Portb = &B255...
...Spróbowałem własnymi siłami zmienić ten kod, ale nie dałem rady(błędy kompilacji)... Aby to zrobić bezbłędnie, należy znać oba proce na "tip-top" :D Ja zrobiłbym to tak: 'Termometr Domowy' $regfile = "attiny2313.dat" $crystal = 8000000 'Config Timer0 = Timer , Gate = Internal , Mode = 2 'okres Timera0 250*12*Tosc=250us Config Timer0 =...
Wklejam kod. [syntax=basic4gl]'ATtiny2313 mruga dioda ustawienie portów. $regfile = "ATtiny2313.dat" $crystal = 10000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , Rs = Portd.4 , E = Portd.5 Config Portd.6 = Output 'podłączenie diody pin nr 11 Config Timer0 = Timer , Prescale = 1024 Dim...
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
Pozamieniałem. Ale z tym "On Timer0 Odmierz" chodzi o to aby umieścić w pętli Do..... Loop ??? Może mi ktoś przerobić ten program? PS: Te "wykłady" to przerobiona książka Programowanie mikrokontrolerów AVR w jezyku BASCOM Marcina Wiązania.
Witam. Zaprogramowalem mikrokontroler tym programem: $regfile = "attiny2313.dat" $crystal = 4000000 Config Pinb.3 = Output Config Timer0 = Timer , Prescale = 256 On Timer0 Odmierz_1s Dim Licz_20ms As Byte Enable Interrupts Load Timer0 = 156 Enable Timer0 Do Loop End Odmierz_1s: Load Timer0 = 156 Incr Licz_20ms If Licz_20ms = 100 Then Licz_20ms = 0 Toggle...
O flagach jeszcze nic nie wiem, a te wait 1 są tylko w fazie testów, żeby łatwiej było wyczuć o co chodzi, natomiast waitms 1 jest i pewnie będzie bo mimo iż używam timer0 to jeśli nie wstawię waitms 1 to diody delikatnie mrugają bez przerwy. Jednak byłbym wdzięczny gdyby ktoś przynajmniej jakiś przykład wskazał rozwiązania mojego problemu.
...Napisałem taki soft. Ale nie działa... A dlaczego robisz to programowo(przerwanie) :?: Jeśli musisz otrzymać ten przebieg na PINB.3, to wykorzystaj Timer1, a jeśli możesz użyć PINB.2 , to użyj Timer0. Wykorzystaj tryb CTC, to generowanie przebiegu 36kHz, nie zajmie procowi ani jednej instrukcji ;) ... PS Zapomniałeś o "prologu" i "epilogu", które...
Proszę. Nie opisywałem go i tutaj może wyglądać dziwnie, ale u mnie rysuje linie łączące bloki. Wygląda to jak na załączonym obrazku i nie mam potrzeby dla takiego kodziku tego opisywać. http://obrazki.elektroda.pl/9672124500_1... Błąd mógł się wkraść bo to tylko tak z doskoku dla relaksu napisałem w pół godzinki. Życzę owocnego testowania...
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 '---------------------------------------...
$regfile = "attiny2313.dat" $crystal = 10000000 $hwstack = 32 $swstack = 8 $framesize = 16 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.1 , Rs = Portb.2 'konfiguracja podłączenia LCD,na płytce testowej Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config...
Timer0 jest 8-mio bitowy a preskaler ustawiłeś na 1. Czyli 1Wire ma tylko 256 cykli. A potrzebuje kilkaset tysięcy żeby coś zdziałać z czujnikiem DS18B20. To ma działać w tle? Ładne mi tło: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Ja bym preskaler ustawił na 1024 i kod napisał tak*: Dim Pobierz_temp_counter As Byte...
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...
Witam! Napisałem sterownik do rgb (dioda z wspólnym +), niestety nie chciał pracować, więc zacząłem drążyć... Okazało się, że nawet taki program $regfile "attiny2313.dat" $crystal = 16000000 Config Portb = Output Config Portd = &B11110000 Portb = &B11111111 Portd = &B11111111 Config Timer0 = Timer , Prescale = 8 Enable Timer0 On Timer0 Przerwanie...
Witam, napotkałem na pewien problem przy budowie dużego zegara LED opartego na module RTC i procesorze AVR Attiny2313, w związku z tym liczę na waszą pomoc. Układ przedstawiony jest na załączonym zdjęciu, jest to klasyczne rozwiązanie z tym, że gotowy moduł wyświetlaczy jaki posiadam jest dużych wymiarów stad konieczność zasilania jednego segmentu napięciem...
Witam Piszę program pod sterownik na attiny2313. Na chwilę obecną jest obsługa wyświetlacza LED 3 cyfry multipleksowanego przerwaniami z timer0. Chciałem wprowadzić attiny w tryb power down. Jak doczytałem tryb powerdown powinien ustawić wszystkie porty w tryb wysokiej impedancji więc spodziewałem się, że gdy wejdzie w ten tryb to wyświetlacz zgaśnie....
Bascom mnie odrzuca, ale o ile się nie mylę to wykorzystujesz przerwanie z przepełnienia timera. Prescaler dajesz 256, timer jest 8-bitowy, więc daje przerwanie raz na 65536 cykli, czyli zaledwie 122Hz. I to jeszcze dzielisz na poszczególne wyświetlacze - musi mrugać. Zwiększ szybkość odświeżania, np. poprzez zmniejszenie prescalera. Dopiero przy ok....
Nic z tego nie rozumię, pewnie mi trzeba wszystko łopatologicznie tłumaczyć. Myślałem że w książce prawdę piszą. Wpisywałem zamiast pwm1a=55, compare1a=55 i dalej nic na wyjściu. Wcześniej miałem inny programik i jakiś przebieg był ale TSOP1136 na niego nie reagował ale przebieg był bo świecenie diodą IR w kamerkę było widoczne a teraz nic nie widać....
Nie widzę sensu ,ale prosze. $regfile = "ATtiny2313.DAT" '$romstart = &H8000 $crystal = 8000000 Dim Krok As Word Dim Jeden As Byte Dim Zero As Word Dim A As Byte Config Timer0 = Timer , Prescale = 1 Config Portb = &B11111110 Config Portd = &B11011111 Do Timsk = &H01 Tcnt0 = &HB8 Enable Interrupts Enable Timer0 Set Portd.0.5...
landy13 -> Poprzedni kod źle wkleiłem na forum, sprawdzam kompilując i programując. Przerobiłem kod, wysyła,ale jest problem z czasem... http://obrazki.elektroda.net/33_12548561... 1. Fusebity są OK (załączam dla pewności) http://obrazki.elektroda.net/11_12548558... 2. W kodzie zmieniłem na 8MHz (kod) $regfile = "attiny2313.dat" $crystal...
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...
Witam. Wiem, że podobne problemy był już wałkowane milion razy lecz nie mogę sam sobie z tym poradzić. Do rzeczy: Chcę aby po przyciśnięciu przycisku dioda zapaliła się po pewnym czasie na krótką chwilę. Chcę to wykonać na przerwaniu, zależy mi na precyzyjnie odmierzonym czasie od momentu naciśnięcia przycisku do zapalenia się diody. Czas palenia się...
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...
Spoko, tylko to jest na ATmega128. Co do kart pamięci to musiałbyś napisać obsługę sam. Generalnie poczytaj notę katalogową. //inicjalizacja Timera 0 jako generatora PWM void Timer0_PWM_mode() { DDRB |= (1<<4); TCCR0 |= (1<<WGM00) | (1<<WGM01) | (1<<COM01) | (1<<CS00);...
A start timer to nie jest konieczne do uruchomienia licznika?? Zamiast tego Do 'pętla temonstracyjna zmieniająca położenie serw Wait 4 Pozycja1 = 600 Pozycja2 = 600 Wait 4 Pozycja1 = 115 Pozycja2 = 115 Loop End zrobiłbym raczej coś takiego Do 'pętla temonstracyjna zmieniająca położenie serw Wait 4 timer0 = 250 enable timer0 Pozycja1 = 600 timer1 = 250...
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...
Witam Coś naskrobałem, pytanie co jest źle, wykorzystałem fragment kodu napisanego kiedyś przez kolegę Mimitron z forum, który sugerował cytuję: Dodaj dodatkową zmienną bit która będzie ustawiana np: na 1 po wyłączenia światła przez timer po 30 sekundach a dzięki niej nie będzie ponownie włączane światło przez wciąż otwarte drzwi (stan niski na wejściu...
Witam, Mam problem z uruchomieniem dwóch timerów. Timer0 ma obsługiwać przerwanie pochodzące z INT1 (Signal1), natomiast Timer1 (Signal0) z INT0 (ale może być odwrotnie). Każdy z timerów ma wykryć impuls PWM większy od 1,5ms i zapalić lub zgasić diodę / diody. Po wgraniu poniższego kodu, diodki migają chaotycznie, nie ma żadnej reakcji na zmianę szerokości...
Ja bym to wykonał tak : '---------------------------------------... DS1820 ----------------------------------------... Config 1wire = Portd.2 'deklaracja portu na którym będą podpięte DS18b20 Dim I1 As Integer Dim Dsid1(8) As Byte 'program głowny do If Timer1 > 5000 Then '[8000000/1024] * 0.65s = ~14000 Gosub Temp End...
Witam serdecznie! To jest mój pierwszy post na elektrodzie. Jestem początkującym Bascomowcem. Szukałem długo w necie rozwiązań typu "Tap tempo" dla AVR pod Bascom. Niestety nie było. Napisałem własny programik i działa. 'mój pierwszy program typu "metronom" 'z "nabijaniem tempa 1 przyciskiem 'Działa, ale czy da się prościej? $regfile...
Dzień dobry ! Sprawdź ten kod: [syntax=vbnet] $regfile = "attiny2313.dat" $crystal = 1000000 $hwstack = 8 $swstack = 16 $framesize = 32 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Porta.0 , Db6 = Portd.1 , Db7 = Porta.1 , E = Portb.3 , Rs = Portb.4 Config Lcd = 16 * 1 Cursor Off Cls Const Wartosc_timera = 131 Config Timer0 = Timer , Prescale = 8 On...
Witam i mam takie pytanie: co w tym programie jest źle :?: Kod: [syntax=basic4gl] $regfile = "attiny2313.dat" $crystal = 8000000 Config Portd = Input Portd = &B00000000 Config Portb = Output Portb = &B0000000 Config Timer0 = Timer , Prescale = 64 On Timer0 Przerwanie_co_2ms Dim Licznik As Integer Enable Interrupts Enable Timer0 Timer0 = 56 Licznik =...
Teraz program działa idealnie jeśli chodzi o wybory i realizacje , ale nie podoba mi się robienie przerw za pomocą waitms i chciałem uruchomić timer0 tak żeby można było zmienić czas cyklu od 1 sek do 2 sek. Wprowadziłem zmienna A jako byte , ograniczyłem do 99 , ze są 3 diody to cykl byłby co 33 gdzie wartość 99 mogla przyjąć od 1 do 2 sek . Nie wiem...
Oczywiście, że pomieszałeś, bo pod PD3 jednocześnie masz podłączone sterowanie anodą wyświetlacza i przycisk - jak wciśniesz przycisk, to odpowiednia cyfra wyświetlacza będzie zawsze aktywna... Użyj Timer1 w trybie CTC do odmierzania 0.01s - przy F_CPU = 1MHz chcesz mieć przerwanie z f=100Hz czyli odliczasz do 10000-1. To będzie za mała częstotliwość...
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
Odświerzę trochę temat. Ja konkretnie muszę w miarę precyzyjnie zmierzyć prędkość obrotową w możliwie krótkim czasie. prędkość w zakresie 750-6500 obr/min. Dysponuje tarczą 25 nacięć na obrót i fotokomórką szczelinową która daje ttl na wyjściu. Puki co ttl generuje z generatora ne555 by uniknąć błędów pomiarów związanych ze stroną mechaniczną systemu....
Przejrzałem program i kilka rzeczy od razu sie rzuca w oczy 1. brak procedur obsługi przerwań od przepełnienia Timer0 i timer1 Po skonfigurowaniu powinneś określić do jakiej procedury program ma wskoczyć po odliczeniu przez timer np 10ms Powinno być zaraz po konfiguracji timera On Timer0 etykietka A na końcu programu etykietka: ... instrukcjie ........
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 Mam pewien problem z tym kodem If Alarm = 2 Then Goto Alarmowanie Alarm = 0 End If to wszystko działa. Zmienną definiuję następująco: dim alarm as byte Nie mam pomysłu co robię źle.
Witam Podam prosty przykład programu w "BASCOM" i proszę o podanie zmian jakie należy wprowadzić, aby był "idle" oraz gdy "power down" i w jaki sposób wychodzić z tych stanów. Przykład programu: $regfile = "ATtiny2313.dat" $crystal = 8000000 Config PortB.0 = 1 'wyjście na diodę LED PortB.0 = 1 Config PortD.0 = 0 'wejście na mikrołącznik PortD.0 = 1...
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...
mam taki kod '**************************** 'Konfiguracja '**************************** $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = &B11111111 : Portb = &B11111111 Config Portd = &B11111011 : Portd = &B11111111 Config Timer0 = Timer , Prescale = 256 Enable Timer0 : On Timer0 Przerwanie0 Enable Interrupts '****************************...
Witam mam taki programik w bascom który odlicza mi od 0 do 99 chciałbym zrobić to na trzy cyfry a nawet więcej oto on $regfile = "attiny2313.dat" 'najpierw określamy typ proca $crystal = 1000000 'definiujemy z jakim taktowaniem będzie pracował 'definiujemy z jakim taktowaniem będzie pracował Dim Jedn As Byte , Dzies As Byte Dim Ktorywys As...
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...
$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...
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...
timer0 attiny2313 attiny2313 timer0 bascom timer0
małe obroty wentylatora prezentacja power point słuchawki mikrofonem laptopa
sterowanie napięciem sieciowym
ASUS R751J – samoczynne resetowanie, przegrzewanie, zasilanie, RAM, BIOS, diagnostyka Jak znaleźć zmienione ustawienia czasu w kotle Vaillant?