Timer1 jest 16-bitowy. 2^16 = 65536.
a to już zupełnie inna historia... Generalnie: nie liczyć zmiennoprzecinkowo - za mały procek - nie pomieści biblioteki. Trzeba liczyć stało pozycyjnie, np tak: x * 0.83 = (x * 849 ) / 1024; // czyli x * 0.84 = (x * 849) >> 10; jak masz zmienną a powiedzmy z zakresu (0.0 , 1.0), to mnożysz ją tak, żeby była z zakresu 0...1023 i zamiast x *a masz (x...
Witajcie. Mam problem z ustawieniem odliczania czasu przez Attiny2313. Według moich obliczeń mikrokontroler powinien co 1s wyświetlać na LCD kolejne sekundy (program jest przykładowy żeby dobrze ustawić czas zliczania bo docelowo chce zrobić pomiar częstotliwość a przez to w dalszej części pomiar indukcyjność). Więc obliczyłem to sobie tak. Kwarc 12MHz...
Powinno pomoc: [url=http://www.gjlay.de/pub/c-code/rc5.... lub [url=http://avr-mcu.dxp.pl/rc5+remote+co...
Natomiast jeżeli zamienię OCR1A = 3906,25; wszystko jest ok Jesteś geniuszem jeśli robisz takie sztuczki! Myślę, że ustawienie preskalera na 36,571428571 powinno rozwiązać Twój problem. Albert
Niestety symulacja programowa liczników w trybie FastPWM jest nieadekwatna do tego co rzeczywiście robi procesor. Trzeba uruchomić w docelowym układzie lub przez JTAG ICE (ale to są koszta).
Witam Ostatnio chciałem zbudować inteligentny wyłącznik na ATTiny2313 zrobiłem układ podłączyłem procesor do niego sprawdziłem wszystkie obwody wejść i wyjść i gdy upewniłem się że wszystko dział sprawnie zabrałem się za pisanie właściwego programu, jednak już przy pierwszych testach okazało się ze procesor działa ale jakby bardzo wolno, postanowiłem...
Mniej więcej tak: $regfile "Attiny2313.dat" $crystal = 4000000 Config Pind.3 = Output Config Pind.0 = Input Config Pind.1 = Input Config Pinb.3 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Dim I As Byte S1 Alias Pind.0 S2 Alias Pind.1 Set Pind.1 Set Pind.0 Pwm1a = 0 Do If I...
Polecam najpierw tak ustawić TIMER1 by pracował w trybie CTC i nie było konieczne jego jawne przeładowywanie.
Musisz zaznaczyć cały tekst który chcesz pokazać jako kod, a następnie zaznaczyć napis Code $regfile = "attiny2313.dat" $crystal = 8000000 'kwarc 1MHz $prog &HFC , &HE4 , &H9F , &H00 ' generated. Take care that the chip supports all fuse bytes. Config Timer1 = Timer , Prescale = 64 'timer1 jako licznik 15536 Config Int0 = Rising 'detetor zera...
Witam , głównie chodzi mi o generator , stałe 50% pwm podziale do 16 bitów na wyjściu . Przy minimalnym podziale rzędu 2,3,4 ... wyjście jak najbliżej częstotliwości oscylatora a 65533 ... rzędu herców ,jak to robie programowo obniża się częstotliwość na wyjściu
tak, teraz te 2 przypisania odnoszą się do Timera 1 i wyprowadzeń oc1a i oc1b, więc poprawnie zakładając, że konfiguracja uwzględnia tryb 10-bit, czyli: Config Timer1 = Pwm , Pwm = 10, Compare A Pwm = Clear Up, Compare B Pwm = Clear Up, Prescale = 1
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?
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 ,...
Witam Na wstępie zaznaczam, że AVR-ami zajmuje się dopiero od tygodnia :). Mam problem jak w temacie. Potrzebuję aby timer 1 (16 bitowy) liczył od ustalonej wartości początkowej, a po wystąpieniu przepełnienia wygenerował przerwanie i się zatrzymał. Potrzebuję odliczyć 25ms. Attiny taktowany jest zegarem 16MHz, dzielnik częstotliwości dla timera 1 ustawiłem...
Chyba, że połączysz dwa układy ATTiny2313 za pomocą SPI (szybka wymiana danych), CKOUT pierwszego <-> XTAL1 drugiego (praca z tą samą częstotliwością), skorzystasz z liczników Timer1 (dwa kanały 10bit PWM). I to byłoby jakieś tam rozwiązanie. A na dokładkę RS232.
Proszę niech mi ktoś powie czy dobrze myślę: Gdy ustawiam Timer1 w tryb CTC = 4 (WGM13=0, WGM12=1, WGM11=0, WGM10=0) to zapis do OCR1A nie jest buforowany, czyli powinien zmieniać się natychmiast po wpisaniu do niego wartości. Timer1 wciąż zwiększa swoją wartość o 1 i gdy osiągnie ona wartość taką jak w OCR1A to wystąpi przerwanie a Timer1 zostanie...
Hmm Nie jest to takie proste jak sobie wyobrażasz. Najprostszy zegar jaki ja często stosuję: Oczywiście preskaler i początkowa wartość timera dostosowana jest do 8Mhz Jeśli chcesz zastosować zegar z innym taktowaniem musisz sobie obliczyć początkową wartość i preskaler. $regfile = "m8def.dat" $crystal = 8000000 Dim Sekunda As Byte Dim Minuta...
Witam, 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 =...
Dzinx Zaraz się zabieram za Twojego help'a ;) Już - stestowane : Dodano po 31 $regfile = "attiny2313.dat" $crystal = 8000000 Config Portb = Output 'Portb = 0 Config Portd = Input Portd = 0 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 Start Timer1 Config Timer0 = Pwm , Prescale = 8 ,...
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ł...
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...
Z moich obliczeń wynika że cos nie tak masz z częstotliwością taktującą AVR-ka. Jeśli założyć, że wartość początkowa timera1 jest 0xd908 i stan niski jest w momencie osiągniecią przez timer1 wartości 0xdafa i trwa on do momentu osiagnięcia 0xFFFF. To mamy że w 1 okresie (no prescaling) stan niski trwa 0x2505 cykli a wysoki 0x1F2 cykli. Daje to na 1...
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...
Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta do PORTB.3 a to jest związane z OCR1A dlatego zle działała. Nie dlatego, nie ma tu żadnego związku. OCR1A jest to wpis do rejestru, który służy do określenia górnej granicy (TOP) do jakiej ma liczyc Timer1 co odpowiada upływowi czasu tu akutat 1 sec., zaczym się wyzeruje. Jeżeli...
AtTiny2313 nie ma wbudowanego przetwornika AD, więc w prosty sposób się nie da. Można zawsze używając kilku elementów zrobić prosty przetwornik, ale patrząc na ceny innych uK, np. AtMega8, który ma dużo większe możliwości, nie ma to sensu. A wystarczyłoby uruchomić PWM w rozdzielczości 10 bitowej i bezpiśrednio przypisywać mu wartość odczytaną z przetwornika,...
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...
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...
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...
No to popróbuj jeszcze :-) Ja tylko tak, aby sprawdzić, napisałem coś takiego: '---------------------------------------... ' ' RC5.bas ' '---------------------------------------... '$sim 'jen pro simulaci $regfile = "Attiny2313.dat"...
C czy Bascom? Jeżeli Bascom to konkretną odpowiedź masz tutaj: [url=http://www.elektroda.pl/rtvforum/to... Co do C, konfigurację znajdziesz [url=http://www.elektroda.pl/rtvforum/to... Wystarczy zamienić tylko niektóre rejestry, ctrl+f w datasheet'cie aby zobaczyć który od czego.
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
Witam ,napisałem program który ma odmierzyć czas lotu helikoptera (do wyczerpania bateryjki) ,niestety po 2 tygodniach utknąłem na czymś takim: $regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.0 = Output 'dioda sygnalizująca odmierzenie czasu Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu...
Witam, Chciałbym mierzyć czas trwania impulsu i napisałem taki prosty programik ale $regfile = "2313def.dat" $crystal = 8000000 Config Portb.0 = 1 Portb.0 = 1 Config Portb.1 = 1 Portb.1 = 1 Config Portd = &B0000000 Config Portd = &B1111111 Config Timer1 = Timer , Prescale = 256 Dim Czas As Integer Dim Zmienna As Bit Czas = 0 Zmienna = 0 On...
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...
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 ?
Jak chcesz uruchomić PWM jeżeli masz wpisane "Config Timer1 = Timer" ?
Witam. Próbuję zrobić prosty obrotomierz do samochodu na Attiny2313. Do testów z jednego Attiny2313 zrobiłem prosty "generator" 100Hz Kod: $regfile = "attiny2313.dat" $crystal = 4000000 Config Pinb.0 = Output Config Timer1 = Timer , Prescale = 1 Timer1 = 45536 On Timer1 Czas Enable Timer1 Start Timer1 Enable Interrupts Portb.0 = 0 Do Loop...
http://obrazki.elektroda.pl/5214176000_1... Witam. Przedstawione rozwiązanie powstało z myślą o zdalnym (radiowym) sterowaniu modelem samochodu. Umożliwia płynne regulacje: kierunku (lewo/prawo) oraz prędkości ruchu (przód/tył). Rozkaz typu "włącz/wyłącz" pozwala np. uruchamiać sygnał dźwiękowy (klakson) lub włączać światła. Spośród...
3? Znaczy się Timer1 kanał B?
Do włączenia trybu CTC dla timera 0 służy bit WGM01, a nie WGM02 jak w timerze 1. Z kolei bit WGM01 jest w rejestrze TCCR0A: [syntax=asm] ; start timer in CTC mode ldi r29, (1<<WGM01) out TCCR0A, r29 ; CTC ldi r29, (1<<CS00) out TCCR0B, r29 ; no prescaling [/syntax]
Przy was widzę jak mało wiem z elektroniki ale jak to mówią im więcej się uczysz tym widzisz jak mało wiesz. W każdym razie, spróbuje z samym tranzystorem. A i czy można jakoś sprawdzić/wyliczyć jaką częstotliwość ja wykorzystuje ?? Mam takie ustawienia: $crystal = 4000000 $regfile "attiny2313.dat" Config Timer1 = Pwm , Pwm = 8 , Prescale...
Mam Attiny2313, wewnętrzny rezonator 4MHz, Timer1 16 bitowy. Czas jednego cyklu dla rezonatora 4MHz wynosi 0,25us Preskaler ustawiony na 1024 Timer ma zliczać do zadanej wartości, zgłosić przerwanie od doliczenia do pewnej wartości i się wyzerować. Ustawiam wartość do jakiej ma liczyć timer: 62500 62500*1024=64M 64M*0,25us=16s Niestety układ zlicza...
Witam! Zbudowałem podstawkę do programowania procesora ATmega8. Prosiłbym o sprawdzenie czy wszytko gra. (kondensatory C1, C2 mają 33pF) http://obrazki.elektroda.pl/9800845300_1... Dziękuję i pozdrawiam Aha i żeby nie zakładać nowych tematów, to jak poruszać serwem modelarskim przy kwarcu 4MHz, z ustawieniem (ATtiny2313) Config Timer1...
A to jest też proste ;) Okres PWM , jest wprost proporcjonalny do aktualnie ustawionej pojemności licznika(maksymalnej wartości do której licznik zlicza) .Ponieważ Timer1 w ATTiny2313 ma aż 16 trybów pracy , to zależnie od efektu jaki chcemy osiągnąć , trzeba sobie wybrać odpowiedni tryb jego pracy.I w tym miejscu , należy udać się (niestety?) do dokumentacji....
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. Chciałbym sobie zrobić elektroniczny licznik (prędkościomierz) do motoru. Zamysł jest taki: Procesor Attiny2313 zlicza impulsy podawane przez czujnik optyczny z myszy komputerowej. Znając czas, obwód koła itd. możemy wyliczyć prędkość. Jest jednak problem. Mianowicie po włączeniu silnika licznik zaczyna wariować... pokazuje jakiś liczby, często...
Ale odpowiedzi dla nouki? W Bascomie można wstawić wartości do rejestrów, niekoniecznie w asemlerze. Ja to robiłem tak: Set Tccr1b.cs10 'start timer1 Else 'a jak nie Czas = Timer1 'odczytaj czas (liczbę zliczonych impulsów) z timer1 Reset Tccr1b.cs10 'zatrzymaj licznik Timer1 = 0 'wyzeruj licznik(żeby po następnej zmianie wyjścia komparatora mógł liczyć...
Mam takie coś: $crystal = 4000000 $regfile "attiny2313.dat" Config Lcd = 16 * 2 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.4 LCD Db5 = Portb.5 , Db6 = Portb.6 Db7 = Portb.7 , E = Portb.3 Rs = Portb.2 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Licznik" : Wait 1 Start Timer1 If Pind.1 Then Waitms 25 Timer1 = 0 Do Timer1...
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...
1. zmień sobie $regfile na $regfile="attiny2313.dat" bo ja testowałem na 90s2313 i masz zły regfile teraz 2. wywal to waitms 10 po bitwait - niepotrzebne... 3. jaki masz oscylator to sobie sprawdź we feusebitach (możesz mieć wybrany 8 lub 4 MHz) 4. nie włączasz podciągania przycisku!! zamiast Przycisk = 1 (czyli Pind.6 = 1) daj Portd.6=1 bo za podciąganie...
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.
attiny2313 timer1 przerwać attiny2313 timer1 przerwanie timer1 winavr
uruchomienie zasilacza sucho otwierać klapa elektryczny radio symphony
interfejs multidiag zmywarka whirpool mruga start
Nawigacja Navitel na karcie SD dla Windows CE - opinie i analiza Zamiennik STK-0050 w METZ Mecasound AX 4960