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...
Timer1 jest 16-bitowy. 2^16 = 65536.
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.
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
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...
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...
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
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 ,...
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...
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...
Powinno pomoc: [url=http://www.gjlay.de/pub/c-code/rc5.... lub [url=http://avr-mcu.dxp.pl/rc5+remote+co...
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...
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
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...
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...
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).
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.
Witam muszę zaprogramować atmega8 tym kodem. Niestety on jest dla attiny. jak go konwertować do "*.bin" dla atmegi8 Jak mogę to wykonać? [syntax=basic4gl]$crystal = 4000000 $regfile "attiny2313.dat" ' Miernik prędkoci obrotowej 'licznikiem 0...65535 jest Timer1 Dim Wynik As Long Config Timer1 = Counter , Edge = Rising 'konfiguracja Timera do zliczania...
Ad.1 - Tak. Coś w tym stylu. Ad.2 - Fakt, pomyliłem sqr z sqrt,ale i tak nie działa. Przy kompilacji "Flash used" jest 125%. Czy w ogóle na ATtiny2313 da się wykonać takie obliczenie? Wklejam przykładowy kod(ten od 125%): EDIT: Kolega podał mi zły wzór, bo w rzeczywistości nie występuje tam pierwiastkowanie,ale ciekaw jestem na przyszłość jak wykonywać...
Jesli nie musi byc to koniecznie Cpp rano podrzuce kod dzialajacy nawet na attiny2313 w bascomie. Plynnie reguluje 1 PWM i pokazuje aktualna moc od 0 do 100%.
Użyłem w schemacie 90S2313 ponieważ w eagle nie znalazłem attiny2313 tylko jest 90S2313 który ma takie samo rozmieszczenie pinów. Wiec układ został stworzony z myślą o attiny2313. Czujnik hala który zamierzam użyć to ugn3140. [syntax=basic4gl] $crystal = 8000000 $regfile "attiny2313.dat" Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1...
Pusty blok jest dlatego, że utknąłem na konfiguracji Timer0. Jeśli chodzi o rejestry, to podejrzewałem, że jest tak, jak Kolega pisze. Wartość TCNT0 = 6; trzeba będzie wpisać do przerwania Timera Przy ustawieniach: [syntax=c] TCCR0A = (1 << CS01)|(CS00); // źródłem CLK, preskaler 64 TIMSK = (1<<TOIE0); //Przerwanie overflow (przepełnienie...
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...
Witam ! Jakiś czas temu chciałem wykonać projekt programu do generowania sinusoidy, otrzymałem taki kod od kolegi Michała SQ3LVJ. Program generuje częstotliwość słyszalną dla ucha, nie sprawdzałem czy to sinusoida. W kodzie nie ma żadnych komentarzy, szkoda ! Może ktoś pomoże mi i zakładającemu post Krzysztofowi SQ3FYK w poznaniu zasady pisania kodu,...
Witam Mam problem z generowaniem tonów DTMF pod ATtiny2313 np piszac prosty program $regfile= "attiny2313.dat" $crystal = 8000000 ddrb = &HFF ' wszystkie port b jako wyjscia Enable Timer1 Enable Interrupts Dim Ton as byte Do For ton = 0 to 9 Dtmfout ton , 500 waitms 500 next ton loop end Fuse bity ustawiony na zewnętrzny kwarc o czestotliwosci...
Programowanie to nie jest chybił trafił i zgadywanie. Co innego jeśli popełni się błąd nieświadomie. Metoda "a może zadziała" nie wydaje się być dobrą. Pomyśl co się dzieje jeśli na początku granica Compare ustawiona jest na 600. Teraz w pętli głównej która przez to że ma tam jakieś swoje opóźnienia, a timer swój preskaler zmieniasz granicę Compare....
Witam Mam problem z ustawieniem PWM na attiny2313 + L293D dla silników. Czy ustawie pwm1a = 255 czy pwm1a = 100 to silnik i tak kręci się z maksymalną prędkością. Pin 1 z L293D podłączyłem pod 16 pin attiny2313, a pin 9 z L293D podłączyłem pod pin 15 w attiny2313. $regfile = "attiny2313.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8...
Config Timer1 = Timer , Prescale=1 Enable Ovf1 On Ovf1 Sprawdz_Klawisze Start Timer1 Enable Interrupts Tyle trzeba dodac do Twojego programu i usunac Do Loop z tego kawalka co sprawdza klawisze, natomiast doadac etykiete Sprawdz_Klawisze: i na koncu tego bloku co sprawdza klawisze zamiast loop dac Return nie wiem jaki masz kwarc ale jezeli to jest 1MHz...
zumek a mogbys podzucic kawalek programu Skoro tak ładnie prosisz :D '*********** 4 x PWM ********* $regfile = "attiny2313.dat" Ddrb = &B00011100 'Oc0a,Oc1a,Oc1b = Output Ddrd = &B00100000 'Oc0b = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up Tccr0a = &B11110001 'Timer0=Pwm ,Compare A Pwm = Clear...
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. Do wejścia ICP podaję sygnał prostokątny (5% wypełnienie) o częstotliwości 200kHz. Procesor jest zaprogramowany i pracuje na kwarcu 6MHz. ICP zaprogramowane i ma reagować na jedno zbocze - opadające. Typowy pomiar okresu. Odczyt ICR1 w przerwaniu TIMER1 CAPT, wartość wykorzystana już poza nim. Ile powinna wynosić wartość rejestru ICR1 dla takich...
Witam! A więc tak jak w temacie chciałbym się dowiedzieć jak się nauczyć przerabiania programu na przykład przeznaczonego na procesor atmega8 , na attiny2313 ? Lub na odwrót. W języku basic w bascomie. . Na przykład taki program jak skonfigurowac pod atmegę 8 ? : $regfile = "attiny2313.dat" 'typ proca $crystal = 1000000 'taktowanie Config...
Linię Config Timer1 daj zaraz po $regfile , bo może kompilator tu coś kaszani , albo zobacz w eepromie , czy nie masz czasem FF. Wyłączenie chyba najprościej , to do PWM wpisać 0. I do eeproma wpisuj A - Writeeeprom A , 1
Atmega8 ma 3 kanały pwm, z czego 2 z Timer1 a 1 z timer2. Jest to trochę niewygodne. Czasami lepiej wziąć attiny2313 który ma 4 pwm, też rozdzielone na 2 timery. [url=www.elektroda.pl/rtvforum/topic2660... masz moją prymitywną konstrukcję na attiny13 z pwm programowym na 4 kanały, bo użyłem diody RGB i dodatkowo W.
Witam mam problem ze stworzeniem 4 kanałów pwm na attiny2313 w bascomie zrobiłem pwm1a i pwm1b na Timer 1 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 64 ale niestety nie wiem jak sie zabrać za pwm0a i pwm0b ? gdy dodaje linijkę Config Timer0 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare...
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...
$crystal = 8867000 $regfile = "2313def.dat" Const T1_prescale = 1024 Const T1_okres = 500 Const Podzial_ms = 1000 Const Okresosekunda = Podzial_ms / T1_okres Const T1delay = _xtal /(okresosekunda * T1_prescale) Const Timer1_wpisz = &HFFFF - T1delay Config Aci = Off Config Timer1 = Timer , Prescale = 1 'T1_prescale Config Portb...
Witam, Chcę zbudować bardzo prosty zegarek a tak właściwie stoper. Chciałbym żeby mylił się co najwyżej 1min/tydzień. Napisałem program z użyciem timera, ale zegarek po ośmiu godzinach spóźnia 20 sekund. Czy wewnętrzny oscylator działa stabilnie, to znaczy jeżeli ma częstotliwość odbiegającą od 4Mhz to taka będzie czy będzie się wahała i miała różne...
A coś takiego będzie dobre? A jak zrobić żeby nie przekręcić licznika bo teraz dochodzę do końca i przeciągam oto program [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 8000000 Config Portd.6 = Output Config Portb.0 = Output Config Portb.3 = Output Dioda Alias Portd.6 Przek Alias Portb.0 Reset Dioda Reset Przek Config Timer1 = Pwm , Pwm = 8...
kupielm Attiny2313 ale po wgraniu programu nie mierzy 1 sekundy tylko dużo wiecej prosze o jakąś porade dlaczego tak sie dzieje $regfile = "attiny2313.dat" $crystal = 8000000 Config Pinb.2 = Output ' dioda pompy Config Pind.4 = Output ' pompa Config Pinb.0 = Output ' dioda sekundy Config Timer1 = Timer , Prescale = 256 On Timer1 Sekunda Dim...
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"...
Szukam porady na temat odpalenia 4kanałow PWM na tiny2313. Kod poniżej uruchamia jeden kanał: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Disconnect , Prescale = 8 Start Timer1 Pwm1a = 100 Próbowałem z Tccr0a = &B00110011 Tccr0b = &B00001000 Ocr0a = 200 Ocr0b = 200 jednak bascom nie "podświetla" Tccr0a tak jak Tccr1a,...
ta procedura Co1s: Timer1 = 3036 '------------ Incr Sek1 : Toggle Kropka 'cala procedura co1s do zapalania kropki oddzielającej godziny od minut 3036 daje 1sek '----------- Return Obsługuje tylko kropkę która ma odzielać godz od minuty i ona dobrze działa, a gdzie błąd w tym kodzie gdzie kolega napisał to nie wiem ?
Config Timer1 = PWM , PWM = 8 , COMPARE A PWM = CLEAR UP , Prescale = 1 Powinieneś dodac owo Prescale = 1 , w helpie tego niema. Nie jesteś pierwszy który stracił cierpliwość :)
Prosiłbym kogoś znającego temat o sprawdzenie moich wyliczeń. Do Attiny2313 podpinam kwarc 8Mhz dla timera daję preskaler 4, czyli ck/256, czyli timer jest naliczany co 32us 1s / 0.000032s = 31250 - czyli 31250 naliczeń timera to dokładnie sekunda timer1 jest 16 bitowy więc liczy od 0 do 65535, czyli 65536 cykli - więc aby przepełnił się po zliczeniu...
Witam, po prześledzeniu masy materiałów dotyczących obsługi PWM, oraz sterowania nim serwa nadal mam kilka pytań. Następująco: Pełen cykl serwa wynosi 50Hz czyli 20ms, podczas którego zwięszkając/zmniejszając wypełnienie o 0.5ms porusza się silnikiem. Problem w tym aby dokładnie podzielić zegar procesora (który wynosi 4MHz) na 50Hz. Przy preskalerze...
Hehe . Może i CE( China Export:) ), ale probowałem kilku różnych ( T4.000 i N4.000) i wszystkie chodziły tak samo (czyli zegar się spóźniał). Zauważyłem ciekawą rzecz, otóż jesli wykreśle z programu następujące linijki : TCNT1L = 0xDC; // załadowanie do licznika TIMER1 wartości początkowych TCNT1H = 0x0B; // określających częstotliwość występowania...
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...
no jak się szybko pisze to tak jest, ale ważne że działa. Po 2 chciałem żeby jak najmniej ingerowac w program tegoż Pana. Mozna dać w przerwaniu od Timera żeby zwiększało sekundy, minuty i godziny. Tak sie powinno dać ale zrobiłem to na szybko. Mniej więcej tak by to wyglądało: $regfile = "attiny2313.dat" $crystal = 8000000 Config Pind.0 =...
Mam problem z zaprogramowaniem żyrandolu RGB na ATtiny2313. Postanowiłem wykorzystać 3 kanały PWM do ustalania koloru świecenia diod. Problem polega na tym, że nie odbiera kodu RC5 nadawanego z pilota. Atmega8 na płytce testowej radziła sobie z tym bardzo dobrze, natomiast tiny na właściwej płytce nie chce. Podaje program jaki w tej chwili mam. [syntax=basic4gl]$regfile...
Witam po raz kolejny pojawił się problem z moim programem otóż chcę aby kiedy wzrośnie temperatura i będzie wyższa lub równa zadanej to serwo obraca się w prawo poczym się zatrzymuje następnie kiedy temperatura będzie niższa od zadanej wtedy serwo obraca się w lewo i zatrzymuje się. [syntax=basic4gl] '************* Konfiguracja uC *****************...
"jacekk232" chodzi mi o to aby mozna regulowac predkosc obrotowa za pomoca przyciskow S1 i S2 z rozdzielczoscia od 1obr/min do maksimum. Zmienilem podlaczenie przyciskow S1 i S2 aby mozna bylo wykorzystac licznik/timer procesora Attiny2313. Tylko nie bardzo wiem jak skonfigurowac timer zeby mozna bylo ustawic liczbe krokow?! Kolejny problem to jak przeslac...
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. 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...
Witam Mam taki mały program sterujący dwoma sekcjami LED. [syntax=basic4gl] $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 9600 ' predkość transmisji $lib "mcsbyte.lbx" '********************* Konfiguracja UART Config Serialin = Buffered , Size = 18 '********************* Konfiguracja wejść i wyjść Config Portb.1 = Input 'wejście IN1 Set Portb.1...
Witam! W związku z prośbami wsad z funkcją PWM, aby działało to z triakiem to program należy zmienić i zbudować układ wykrywania przejścia przez "0", ale halogenkami na 12 V po dołożeniu mostka prostującego można się już pobawić jeśli ktoś ma ochotę. 'odbiornik by bm $crystal = 1000000 $regfile "attiny2313.dat" Declare Sub 1 Declare Sub 2 Config Timer1...
Lysoleq -> "Dlaczego po wykonaniu przerwania INT1_IRQ program skacze do 0x00D a następnie do TIMER0_IRQ?" tak na wstępie - to teraz aż przyjemnie patrzy się na twój kod ;) .... ale do rzeczy - mówisz , że program jakby skacze do przerwania Timera po przerwaniu INT1 .... nie mogę teraz za bardzo tego przeanalizować ale może być taka sytuacja, że: wystąpiło...
Napisałem w Bascom AVR kawałek programu na Attiny2313 (sterowanie silnikiem za pomocą PWM) i się zapętliłem - program ogólnie działa tylko nie wiem dlaczego kolejne naciskanie przycisku S1 (pind.1) powoduje cykliczną zmianę Pk (pinb.2) - pierwsze nacisnięcie S1 powoduje ustawienie Pk na 1, a kolejne na 0. (sprawdzałem bez wykonawczej części układu -...
Kiedyś popełniłem taki programowy PWM x 3 do sterowania RGB (ot tak dla fantazji :D) Config Timer1 = Timer , Prescale = 1 'dla prescale=8 przerwanie co ok 4 ms dla 256 co 15 ms dla 1024 co 64 ms Config Int0 = Falling 'Config Portb.6 = Input 'Set Portb.6 ' Końcówka Dla Int0 Ddra = &B01111111 ' ustawienie portu a jako wyjście Config Rc5 = Pinb.6 Pwm_r...
Witam, jakiś czas temu pisałem post o ultradźwiękach w tym dziale. Okazuje sie że moj problem jest troche innej natury więc zakładam nowy temat. Mój procesor (ATtiny2313) czasami wpada w cykl resetowania się. Chodzi o to że w kodzie np. najpierw wyśle przez UART literkę 'E' a poźniej wpada w pętle nieskończoną.. Niestety po jakimś czasie program ciągle...
Witam! Ponieważ potrzebuję miernik częstotliwości do 160MHz, postanowiłem przerobić nieco projekt AVT3003. Zamiast kwarcu 10Hhz i AT90s2313 włożyłem ATTiny2313 z generatorem kwarcowym 20MHz. Przy takim taktowaniu należało zmienić również program. W komentarzu ' moja zmiana wskazałem, co zmieniłem - trzy linie programu. Problem jest taki,że podłączony...
Witam. Mając trochę wolnego czasu postanowiłem wrócić do zmagań z PIDem. W sieci znalazłem program PIDa w Bascomie na Atmegę8 (maluszek Attiny2313 okazał się niestety za mały). W programie wyłączyłem różniczkowanie - aby było łatwiej. Program działa dość dobrze tzn. obroty utrzymują się na żądanym poziomie ale troszkę oscylują wokół wartości zadanej....
Witam! Mam taki kod z tego tematu http://www.elektroda.pl/rtvforum/topic44... delikatnie przerobiony. $crystal = 12000000 Cursor Off Config Portc.4 = 1 Config Portc.0 = 0 Portc.0 = 1 Portc.4 = 1 Dim Czestotliwosc As Long Const Licznik = 22336 Config Timer1 = Timer , Prescale = 256 Config Timer0 = Counter , Edge = Falling Deflcdchar 1 , 2 , 4 ,...
masz tu kod przepsiany z ksiazki "programowanie mikrokontrolerow avr z jezyku bascom" dla procesora atmega8. Jedna dioda bedzie sie zapalac, druga gasnac. $regfile = "m8def.dat" $crystal = 8000000 config pinb.1= output Config Pinb.2 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale =...
Witam ! Ne myślałeś o budowie takiego wskaźnika opartego na mikroprocesorze ? Pytam, bo jest to możliwe. Podpowiem że istnieją dwa programy ( wsady do ATTiny2313 ) jeden program umożliwia wyświetlenie linijki, skali na LCD to podaje autor: ' Display : LCD 16 x 2 ' Scale range : 30dB (+6dB to -24dB) ' Resolution : 2dB ' Calculated Values: ' Input mV...
Witam wszystkich! Mam taki problem.... 'C026a.bas Zmiana jasności diody LED Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down Cls 'czyść ekran Lcd "EdW" 'wyślij napis Lowerline 'kursor do dolnej linii LCD Lcd "Cwiczenie 26a" 'wyślij napis 'czekaj 3 sekundy Do 'pętla nieskończona Incr Pwm1a 'zwiększ zawartość rejestru OCR1 If...
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....
attiny2313 timer1 przerwać attiny2313 timer1 przerwanie timer1 winavr
epson sx130 koszt przeniesienie licznik kupie wieze
manta spk5450 reset komputer citroen
Lokalizacja bezpiecznika sondy lambda w VW Passat B5 ARM Podłączenie elektrozaworu zmywarki Bosch na krótko