Witam. Przewertowałem dokumentację ATTiny44 i nie za bardzo widzę aby było coś dedykowane do sterowania fazowego (proszę nie mylić z PWM). ATTiny 44 ma dwa timery i oba mają PWM sprzętowy , z czego jeden jest 8 bitowy drugi 16 bitowy (oczywiście timer nie PWM). Natomiast PIC na 3 timery 16 bitowe ale tylko 1 PWM ale o rozdzielczości 16bitów. No i moc...
Czyli zwykły prosty miernik częstotliwości z jej porównaniem przy pewnej wartości - bez problemu się to na jednym timerze realizuje... Zobacz tu: [youtube]http://www.youtube.com/watch?v=... Złapałem tym nawet 40tys. obr/min :) Co prawda to przykład na attiny44, bo obsługa wyświetlacza i takie tam duperele zabierają jednak piny i pamięć...
W trybie CTC procesor może sprzętowo zmieniać stan któregoś pinu (sprawdź w nocie), więc nie trzeba tego robić w przerwaniu. Ustawiasz tryb Toggle OC1A (czy jakiś inny) i masz na tej nodze prostokąt ;) Jest w nocie nawet wzór do policzenia częstotliwości.
Nie. Chodzi mi o prescaler timerów. Sprawdź w datasheet rejestr GTCCR
Yogi009 jeśli coś się zmieniło w tej materii to chętnie zerknąłbym na jakieś sensowne tutoriale. Piotrze, nie jestem bardzo mocny w tym programowaniu, ale kilka konstrukcji na ATtiny13 i ATtiny44 popełniłem - nie było tam nic szczególnego. Po prostu piszesz kod, kompilujesz i wgrywasz. Standard.
Więc Kolego czym to się różni od mojego? Timer0 wygląda tak: [syntax=basic4gl][/syntax] $regfile = "ATTINY44.dat" $crystal = 8000000 Config Timer0 = Timer , Prescale = 1 Enable Timer0 On Timer0 Prztimer0 Enable Interrupts Do Led1 = 10 Led2 = 20 Led3 = 30 Loop Prztimer0: Incr Licznik If Licznik > 100 Then Licznik = 0 End If If Flaga1 = 1 Then If Licznik...
OK, no to następne podejście z nadmiarowym kodem testowym odliczającym w kółko na ATmega8515 zamiast ADC - wyświetlanie bez zarzutu. Co do tego dziwnie wyświetlanego zera, to może masz zamienione a z g, b z f itp. W tej wersji łatwiej zapanować nad częstotliwością odświeżania segmentów - zbyt duża skutkuje podświetlaniem sąsiednich cyfr, zbyt mała -...
Panel dotykowy z 6 diodami sterowany po i2c na ATTINY44 Poniższy materiał przedstawia próbę ugryzienia tematu krytycznych zależności czasowych w asemblerze. Zadaniem było stworzenie stabilnie działającej aplikacji która obsłuży: komunikację z procesorem nadrzędnym w trybie slave i2c sterowanie multipleksowanymi diodami z 8bitowa regulacja jasności...
Jeżeli cię interesuje duża częstotliwość dla PWM to lepiej nadaje się do tego timer1 a nie timer0, ponieważ pierwszy można popędzić z PLL-a do 64MHz
Jeśli chcesz robić odliczanie w pętli głównej to zrób tak: $regfile = "attiny45.dat" $crystal = 4000000 Config Pinb.0 = Output 'wyjście Config Pinb.1 = Output 'wyjście Config Pinb.2 = Input 'przycisk Portb.0 = 1 Portb.1 = 0 Portb.2 = 1 Config Timer0 = Timer , Prescale = 1024 Enable Interrupts Enable Timer0 Start Timer0 On Timer0 Zegar Dim...
Nie znam za grosz bascoma... Ale ogólnie to tak... Pogonił bym go z wewnętrznej PLL (64MHz) na 16MHz... To samo z zegarem timera... Dzięki temu częstotliwość dla PWM będzie jako taka... W zasadzie to sprowadza się to do zrealizowania timera 12-bit... W C łatwiej mi pokazać o co chodzi niż pisać esej... ISR (TIM1_OVF_vect) { if(timer_compare==timer_counter)...
Brakuje inicjalizacji stosu i powrotu z obsługi przerwania (reti).
Odpowiedź szukaj na stronie producenta www.atmel.com a dokładniej: http://www.atmel.com/dyn/resources/prod_... Generalnie atmel podaje sporo informacji dotyczącej wykorzystania nowych układów w zastępstwie wycofanych z produkcji i wymaganych zmian. Jedynym co trzeba zrobić to poszukać i poczytać ;) http://www.atmel.com/dyn/products/app_no...
Uruchomiłeś: TIMSK0 |= (1<<OCIE0A); przerwanie od porównania a obsługujesz: ISR(TIM0_OVF_vect) przerwanie od przepełnienia. A tak przy okazji: - zmienne zsyp1 i 2 to gdzieś zerujesz? Czy tylko je inkrementujesz aż się przekręcą? - zmienna "CZAS_NA_test" jest niepotrzebna. Równie dobrze mógłbyś w main sprawdzać czy zmienna i>=75 a w przerwaniu...
..Niestety nóżki procesora ani drgną. Poczytałem wątki na forum, przeczytałem cały rozdział w nocie o Timer0 i 0 pomysłu na dalsze próby. Nie "drgają" :D , bo obie (OC0A i OC0B) są ustawione w tryb normal port operation - patrz tabela 27 i tabela 30 dokumentacji ATTiny13. Spróbuj np.: TCCR0A=(1<<WGM00)|(1&l...
Z jaką znowu biblioteką? RC5SEND jest w kompilatorze jako code template a nie w bibliotece i zmienić się jej nie da. RC5SEND korzysta z 16-bitowego licznika TIMER1, którego to ATtiny45 nie posiada . Ma tylko dwa 8 bitowe liczniki. Rozwiązanie jest i to na forum MCS Electronics. Poszukaj!
Znalazłem rozwiązanie, jak by ktoś potrzebował to należy w pliku hardware/arduino/cores/arduino/wiring.c linijkę: #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__) SIGNAL(TIM0_OVF_vect) #else SIGNAL(TIMER0_OVF_vect) #endif zamienić na: #if defined(__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)...
Witam Programuję przy użyciu BASCOM AVR układ ATtiny45 i jeżeli chcę użyć Timer1 to pokazuje się błąd "Error: 222 Illegal character [expected (,got" [TCCR2B]]. Jeżeli w programie użyję Timer0, to wszystko jest OK. Również jest OK z Timer1 gdy wpiszę inny typ mikrokontrolera n.p. Attiny44. Temat był już przed laty poruszany na forum ale nie znalazłem...
Tylko czemu ten kod jest taki nieoptymalny... A dałoby się to zrobić prościej z użyciem tablic danych. Np. podobnie jak to zrobiłem tutaj (kod do lampki RGB z programowym PWM): $regfile = "attiny45.dat" $crystal = 8000000 $prog &HFF , &HE2 , &HDF , &HFF Dim Pwmr As Byte , Pwmg As Byte , Pwmb As Byte Dim Count As Byte Dim Pbshadow As Byte Dim...
Witam, Mam pewien problem dotyczący licznika Timer1 w procesorze TINY45. Programuję w BASCOM. Procesor TINY45 posiada 2 liczniki 8-bitowe: TimerO oraz Timer1. Problem w tym, że nie bardzo mi się udaje zmusić Timer1 do działania... Napisałem taki prosty program na próbę: $regfile = "attiny45.dat" $crystal = 8000000 Config Pinb.3 = Output Led...
Witam Mam taki problem przy wgraniu poniższego programu do attiny45 dioda zamiast świecić z odpowiednią jasnością miga z dużą częstotliwością. Dodam że ten sam program na attiny26 działa tak jak powinien czyli dioda świeci z odpowiednią jasnością bez widocznego dla oka mrugania. Oby dwóch przypadkach fusy przestawione na taktowanie wewnętrzne 8MHz....
Dzięki, szczerze powiem że nie przyszło mi to do głowy. Diody mam 3,3V. Niestety ale na diodach 3,6V jest to samo. Jakieś inne pomysły? http://obrazki.elektroda.pl/7658833200_1... Programator USB ISP działa bezproblemowo na tej płycie, a tez jest na wirtualnym USB. O co kaman? Znalazłem problem, problem stwarza biblioteka "IRremote.h"...
Pracuje nas sterowaniem małego serwomechanizmu: http://www.rctrax.pl/product/Serwo-HXT50... Programuje w Bascom AVR i do tego celu wykorzystuję jedynie Timer0. Nie mogę wykorzystać dodatkowego timera1 bo ten będzie służył do odliczania czasu. Instrukcji Serwos() także nie chce wykorzystywać...jakoś nie mam do niego zaufania...
A jak masz ustawiony timer - rzuć kodem.
Hej! Masz rację - ztym kontrolerem (lub Bascomem) jest coś nie tak, ponieważ próbowałem zrobić na nim prosty sterownik z użyciem IR "Get RC5", i niestety bascom wywala error, że niemożliwe w tym chipie najpewniej błąd Timera (nie pamiętam 0 czy 1). Tak zechyba nie robisz błędu, tylko w Bascomie w stosunku do tego procka jest coś spaprane.
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
Bo Timer1 w ATTiny45 ma 8bitów.
Dzięki, znalazłem. Jakiś powód musiał być, że nazwa timera to 'TIM' a nie TIMER'..;/ Zauważyłem że opcja "compare match" może wystąpić jako "A" lub 'B' TIM0_COMPA_vect Timer/Counter Compare Match A TIM0_COMPB_vect Timer/Counter Compare Match B Ty niedawno napisałeś w innym temacie: "Ogólnie najpierw ustawiasz WGM na CTC, preskaler, TCCR0A a potem przerwanie...
Timer 555 ma też wersję CMOS - niskoprądową ale raczej ci się nie przyda, to nie jest element do wyłączania o określonych godzinach. Jak urządzenie ma działać długo bez ingerencji i się nie rozjeżdżać w czasie, to musi mieć precyzyjny zegar na pokładzie, zegar ten też musi być jakoś ustawiany po włożeniu baterii, takie założenia wymagają użycia mikrokontrolera...
No tak... nie znam not na pamięć i okazuje się, że Attiny45 ma za mały timer1 http://www.elektroda.pl/rtvforum/topic14...
Elementem wywołującym pracę układu jest Switch S1 który zwierając port PB1 do masy wywołuję zewnętrzne przerwanie INT0 Uzywanie przerwania do styków butonnów, klawiszy i innych podobnych diabelstw jest najgorszym pomysłem. Temat był na tym forum poruszany setki razy - proponuje włożyć trochę wysiłku i użyć wyszukiwarki.
Witam. Może mi ktoś powiedzieć dlaczego nie działa wyjscie PWM na końcówce PB.4? $regfile = "attiny45.dat" $crystal = 8000000 Config Portb = &B110111 Portb = &B111111 Config Timer1 = Pwm , Compare B Pwm = Clear Down , Prescale = 1 DO OCR1B = 100 loop to kawałek programu reszta nie jest istotna...
W takim razie: w jak sposób i w którym miejscu następuje podłączenie głównego pliku irmp.c z poziomu irmp.h? W źródłach IRMP są przykłady jak używać z konkretną rodziną procków. irmp_get_data Powyższy plik mógłby być po prostu bazą dla twoich funkcji. Najważniejsze oczywiście jest to, że irmp.c musi być poddane kompilacji a potem linkowaniu. W tej...
Timer nie dziala poprawnie , Powinna występować zmiana stanu diody co 1s, a przerwanie co 1ms. Kod programu z przerwaniem: [[syntax=c] int main (void) { DDRB |= (1 << PB3); TCCR0A |= (1 << WGM01); // Configure timer 1 for CTC mode TIMSK0 |= (1 << OCIE0A); // Enable CTC interrupt sei(); // Enable global interrupts OCR0A = 150; // Set...
Witam, wykonuję urządzonka do pomiaru temperaturowy bezprzewodowo, całość zasilane z baterii 3.6V. Zastosowałem Attiny44V, do pobudki ze stanu uśpienia chciałem zastosować Wake-Up Timer z modułu RF12B, sygnału zwrotnego oczekiwałem na nIRQ (w dokumentacji nie opisują tego), ale bez powodzenia. Czy w ogóle można ten timer ze RF12B wykorzystać do wybudzania...
no ok, wiem już że mogę kombinować z programowym pwm, lecz to sobie raczej odpuszczę. Powiedzcie mi w takim razie jaki scalak dobrać zamiast tiny13? Obowiązkowo musi to być dip8. Rozumiem, że warunkiem koniecznym są 2 timery. Attiny45 się nada? Czy może jest jakiś inny w dip8 z dwoma timerami?
Temat odblokowałem z uwagi na fakt, że potrzebuję takiego wyjścia przeciwsobnego PWM w układzie attiny24, który to nie obsługuje biblioteki TimerOne. Muszę więc ręcznie ustawić rejestry timera tylko nie bardzo wiem jak i które Problem jest trochę inny. W wypadku ATtiny24 dość dużym wyzwaniem będzie skorzystanie z Arduino Core (jest dostępne [1]). Ten...
Tak, na początku napisałeś, że chcesz to zrobić na sprzętowym pwm, ale w programie tego nie widać. Potrzebujesz timera z dwoma kanałami pwm. Dlaczego uparłeś się na jeden kanał? Zrobiłem na tych dwóch pinach, bo takie miałem wolne. Próbowałem wcześniej na 2 kanałach (OC0A oraz 0C0B), ale efekt jest taki sam - to samo napięcie na dwóch pinach. Wykorzystuję...
Teraz ogólnie ciekawe rzeczy wychodzą w ramach TINY. Ostatnio czytałem jakąś AppNote, gdzie w TINY był timer pracujący na 64MHz To już AtTiny24/45/85 miał (wbudowany PLL). AT90PWM chyba też. Mapowanie peryferii ma Tiny167. On tez ma wbudowane źródło prądowe przydatne przy pomiarze rezystancji czy pojemności.
Domyślnie masz 9.6 MHz dzielone przez 8, czyli 1.2 MHz. Wszystko się zgadza. Po co używasz operatora |= przy inicjowaniu peryferiali? Wstaw jakieś usypianie do pętli w main(). Zmienna timer_overflow_ nie powinna mieć atrybutu volatile. Zamiast tego, podobnie jak indeks, powinna być zadeklarowana wewnątrz procedury obsługi przerwania jako static. tab[]...
Jutro jeszcze sprawdzę jak będzie działać Attiny 45. Może coś uda się osiągnąć. Zrobiłem trochę testów na attiny13 i po nich jestem bardzo sceptyczny co do użyteczności funkcji micros() w takim zastosowaniu jak metoda użyta w twoim szkicu. Mam obawy że na attiny45 problem może być ten sam, tylko nieco mniejszy, z powodu możliwości wyższego taktowania....
Overclocker --> w helpie masz napisane, że Rc5send korzysta z Timer1 (który musi być 16bitowy) - a sprawdzałeś w nocie PDF procka ATtiny45 czy jest Timer1 ???? podpowiadam że jest w nim Timer1 ;) ale niestety nie 16bitowy i nie kompatybilny że tak powiem z tym poleceniem - dlatego ci to nie działa a kompilator wywala tyle błędów
Nie mam niestety w mojej wersji Tiny212 i podobnych nowszych kontrolerów, a informatyk że mnie słaby. Jego byś i tak nie zaprogramował bez nowego programatora obsługującego UPDI, a sam procek ciekawy, ma np 4 różne timery :) Mogę zrobić trzeci przycisk (K3) programowo, rozdzielić diodami i podać na raz na K1+K2, ale mogę też użyć PB.5, tylko nie wiem,...
Witam Przy próbie skompilowania pokazuje się taki błąd: http://obrazki.elektroda.pl/3448979900_1... [syntax=vbnet] $regfile = "attiny24.dat" $crystal = 1000000 Config Pina.0 = Input Set Porta.0 Config Pina.1 = Input Config Pina.2 = Input Config Pinb.0 = Input Set Portb.0 Config Pinb.1 = Input Set Portb.1 Config Pinb.2 = Output Config...
Na początku zrobiłem to co już umiem...póki co do testów ustawiłem przerwanie od zmiany stanu wejsciowego. Działa i z każdą zmiana portu wejsciowego licznik się ikrementuje. Ok. Jednkaże taka kwestia...Timer 0 w ogóle niezlicza...obserwuję w Debugerze rejestr TCNT0 i w nim nic się niedzieje... Ustawiłem tryb CCC, tak jak podpowiedział kolega michalko12...doczytałem...
Wziąłem to,co było pod ręką, poza tym każda ATmega posiada sprzętowe mnożenie, które zdecydowanie ułatwia sprawę przy pobieraniu wartości z tablicy oktaw. Na upartego, to i można zrobić na ATtiny24 (warunek: jeden timer 8 bit i jeden 16 bit), ale ten projekt ma służyć początkującym, a tacy, według moich subiektywnych obserwacji działu "Mikrokontelery",...
Na pewno nie będzie włączony cały czas. Albo mrugnie sobie co x sekund, albo będzie "na żądanie" na przycisk. Chodzi o to żeby całość była jak najprostsza w użytkowaniu (dla żony i dzieci), coś w stylu włącz do kontaktu i zapomnij, a wszelkiego rodzaju kupne timery wymagają każdorazowo ustawienia czasu.
Witam, bardzo proszę o pomoc. Zrobiłem układ na Atmega32 z podłączonymi diodami do całego PortuA, oraz do PortuB Pin2 (PB2) dekoder podczerwieni TSOP31236 (testowałem też na TSOP31238). Wykorzystać chciałem bibliotekę IRMP https://obrazki.elektroda.pl/6945425800_... a w załączniku spakowany cały projekt z plikami biblioteki irmp.
Witam, mam chyba dość banalny problem z timerem T1 w ATtiny45. Otóż celem jest generowanie przerwania co około 40 ms - czyli zadanie wydaje się praktycznie śmiesznie proste. Proste było w 8051, ale AVR mi się stawia. Do tego celu zaprzągnąłem timer T1 w konfiguracji „match compare”. Przy kwarcu 8 MHz, preskalerze 2048 oraz wartości OCR1A...
Witam Mam problem z regulacją fazową, a mianowicie żarówka podłączona do układu wykonawczego od czasu do czasu rozbłyśnie maksymalnym światłem tak jakby triak na ułamek sekundy załączył się na max. wcześniej robiłem podobne układy ale na ATmega8 i było wszystko ok. ale teraz zastosowałem Attiny84 i dzieją się cuda ! układ elektrycznie jest dobrze skonstruowany...
programować attiny44 attiny44 timer programowanie attiny44
whirlpool świeci awaria karta pamięci uszkodzona długość impulsu bascom
Vaillant atmotec plus - błąd F.28, przekreślona ikona płomyka Podłączenie magnetowidu Panasonic NV-HD635 do telewizora Samsung DV3 HD SRS