Witam, niestety ale chyba coś jest nie tak? Na wstępie należałoby wyjaśnić że nie ma czegoś takiego jak "automatyczne przeładowanie timera" (reload/load timer1 powiedzmy). Termin ten jest związany z procedurą konfiguracji timerów występującą tylko w trybie "Normal", gdzie każdorazowo początkowa wartość timera musi być wpisana przez processor. Taka...
Tym razem uwaga na temat taktowania timera B. Timer B ma bardzo zubożony dzielnik zegara gdyż may tylko opcję dzielenia przez 2 lub braku dzielenia. Alternatywą może być taktowanie zegarem zapożyczonym z Timera A, (sygnał pobierany zza dzielnika Timera). This peripheral uses the system's peripheral clock CLK_PER. The peripheral has its own local prescaler,...
Witam ponownie. Chciałem odświeżyć temat. Mianowicie napisałem kod który będzie zliczał ilość impulsów w czasie 1 sek i zapalał diodę jeśli przekroczy limit. .............. Poniżej kod: Oczywiście, tak ma być z tymi dziwnymi objawami. Po pierwsze; Attiny 13 nie ma 'praktycznej' możliwości pracować przy 1 MHz; możesz skonfigurować go dla: 1.2 MHz; 4.8...
Cześć! Zbudowałem miernik częstotliwości w oparciu o procesorek Attiny 2313. Oczywiście zrobiłem to w ten nazwijmy "lepszy sposób" czyli dwa timery, jeden oblicza czas równy 1 sekundzie, a drugi liczy impulsy. Kwarc zewnętrzny 11059200MHz, wszystko działa jak należy... ale mam problem z pomiarem czestotliwości w zakresie od 2 do 5 Hz z rozdzielczością...
A ja zrobiłem obrotomierz w Bascomie na ATtiny 2313, procesor ten ma wbudowany 8 i 16 - bitowy Timer/counter. Konfigurujemy ten układ peryferyjny jako counter, procedurę zliczania w określonej jednostce czasu umieszczamy w podprogramie wyzwalanym przerwaniem zewnętrznym - czyli impulsem z czujnika halla. w innym podprogramie umieszczamy obsługę wyświetlacza...
Witam. Tworzę projekt oparty na mikrokontrolerze ATTINY414. Powstaje on w środowisku Microchip (Atmel) Studio. Program ma wyświetlać aktualną temperaturę z czujnika oraz średnią kroczącą temperatury z ostatnich 24 godzin. Dane chciałbym wyświetlić na małym wyświetlaczu OLED, 128 x 32, sterownik SSD1306 (komunikacja przy pomocy I2C). Mikrokontroler ma...
Przecież autor pisze, że chce gotowca, a wy mu z mikrokontrolerami wyjeżdżacie. Najprościej jakieś używane Logo, Zelio, czy co tam jeszcze z przekaźników programowalnych. Podłączy zasilanie, 1 wejście, 1 wyjście przekaźnikowe i po sprawie. Rozumiem, że tak podłączone LOGO czy Zelio od od razu zacznie popranie pracować, bez potrzeby programowania czy...
jednakże i tak nie rozumiem dlaczego jestem w stanie wygenerować impuls HIGH 1,2 us a nie mogę korygować czasu trwania odstępu LOW między tymi impulsami. To akurat ma proste wytłumaczenie. Te funkcje typu delay... to po prostu odpowiednie do żądanego czasu serie instrukcji (nieproduktywnych), głównie pętle, tak spreparowane by zajęły procesor na określoną...
Masz rację ,kod wyglądał tak : Dim Wynik As Long Dim Wynik1 As Long Config Timer0 = Counter , Edge = Rising Config Timer1 = Counter , Edge = Rising Config Portb.1 = Input Config Portb.0 = Input Portb.0 = 1 Portb.1 = 1 Cursor Off Cls Do Timer0 = 0 Timer1 = 0 Start Timer0 Start Timer1 Waitms 500 Stop Timer0 Stop Timer1 Wynik = Timer0 * 30 Wynik1 = Timer1...
Wydaje mi się, że nie uruchomisz PWM na tym procesorku. Oficjalna informacja: CONFIG TIMER0 = COUNTER , PRESCALE= 1|8|64|256|1024 , EDGE=RISING/FALLING , CLEAR TIMER = 1|0 CONFIG TIMER0 = TIMER , PRESCALE= 1|8|64|256|1024 Jak widzisz Timer0 nie da się ustawić jako PWM. Ale... Nieoficjalnie może Ci zadziałać jednak taka konfiguracja Timera0: Config Timer0...
Witam, Niedawno zakupiłem kit AVT 2623 który chcę sobie wmontować w mój układ ale póki co mam problem z jego obsługą - a mianowicie nie działa mi sterowanie fazowe. Problem jest czysto programowy gdyż jeśli obsługę robię na delay'ach to działa a gdy na liczniku to nie działa. Poniżej mój kod: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h>...
atom1477, spokojnie, przecież to podobno tylko kwestia konfiguracji i wybrania odpowiedniej częstotliwości. :) Chciałbym zrobić coś podobnego jak tutaj: http://obrazki.elektroda.pl/9591714300_1... Zmieniając tylko pewnie trochę wartości L i C oraz zastępując Attiny wyjściem PWM z Arduino. Niestety nie wiem jak to jest z tą częstotliwością...
Cześć. Mikrokontrolerami nie bawiłem się już wieki a czasu mam niewiele (trochę się zgapiłem). Robię antyramę i wymyśliłem, że po dotknięciu na zdjęcie będzie odtwarzana konkretna muzyka (każde zdjęcie to inny utwór). Wydaje się proste, chce tył zdjęcia obkleić jakąś pianką, żeby "odbijało" i na środku dać trochę przewodnika, taki prosty przycisk. Sygnał...
Skoro ustawiłeś bit CTC1, to sprawdź w dokumentacji, do czego on konkretnie służy.
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...
Nie możesz używać Waitms nigdzie indziej poza pętlą główną. Trzeba to obejść. Wiadomo, że w podprogramach jesteś co 4ms. Co do Portb.5 to nigdzie nie widzę zerowania i dlatego jest ustawiony non stop. [syntax=basic4gl]$regfile = "attiny2313.dat" $crystal = 1000000 Config Portb = Output Portb = &B1111111 Config Portd = &B11111000 Portd = &B1111111...
Nie mogę się doszukać w helpie jak skonfigurować i używać PWM dla Tiny2313 w Bascom AVR a wyszukiwarka na forum nie działa, ktoś może mi pomóc? Ponieważ nie za bardzo ufam Bascomowi przy konfiguracji automatycznej( Config Timerx) , to wolę poustawiać rejestry ręcznie , korzystając z dokumentacji :D $regfile = "attiny2313.dat" $crystal = 1000000...
Nie wiem czy akurat to jest przyczyną problemów, ale kolejność wpisywania wartości do rejestrów TCNT1L i TCNT1H powinna być odwrotna. Przeczytaj fragment "Accessing 16-bit Registers" z rozdziału "16-bit Timer/Counter1" dokumentacji ATtiny2313. Pozdrawiam, Jacek
Tutaj popełniasz dosyć poważny błąd. Po odebraniu pierwszego bajtu zatrzymujesz transmisję na SPI na stosunkowo długi czas potrzebny na przesłanie tego bajtu poprzez USART. Nie to jednak jest najgorsze. Po dokładniejszym przeanalizowaniu noty ADIS16100 zauważyłem dwa dosyć ważne problemy. Pierwszy to taki, że stosunek czasu trwania stanu wysokiego...
In CTC mode the counter is cleared to zero when the counter value (TCNT1) matches either the OCR1A (WGM13:0 = 4) or the ICR1 (WGM13:0 =12) http://www.atmel.com/dyn/resources/prod_... str 94
A więc tak : - na przyszłość podawaj pełne nazwy, łatwiej bedziesz rozumiany. ;) - zajrzałem do pdf-ów od AT90S2313 i ATtiny2313 (trudno zgadnać którego miałeś na myśli) i tak - AT90S2313 (s.18 DOC0839.pdf) ma 11 wektorów przerwania wliczając RESET, a ATtiny2313 ma ich 19 (s.43 - doc2543.pdf). Wyciągając moją słabo działającą szklaną kulę jestem w stanie...
łatwiej się już chyba nie da. Sorki, ale ja bym raczej powiedział, że: "JUŻ GORZEJ SIĘ NIE DA :(" Co to za rozwiązanie gdzie w środku siedzi jeszcze obrzydliwy Wait !!! brrr ale żeby nie być gołosłownym, który tylko krytykuje.... Ok, panowie - widzę, że wasze zmagania spełzają na niczym, pokażę wam więc jak się powinno podchodzić do programowania....
Zdefiniuj zmienną Temp jako Word. Jak ci ma wyświetlić 600 jesli zmiena Byte może przyjąc max wartość 255. Właśnie powyżej tej wartości będą ci sie wyświetlać dziwne rzeczy. No to może wytłumaczę jak to zrobić na zmiennej typu Byte według wyżej wspomnianej ideii. $crystal = 4000000 $regfile "attiny2313.dat" Dim Pomiar As Single Dim Temp As...
Chyba najprostszy jaki można napisać. Dim Wynik As Long Config Timer0 = Counter , Edge = Rising Do Timer0 = 0 Start Timer0 Wait 1 Stop Timer0 Wynik = Timer0 * 50 'to przykład może być *50,20,1... Locate 1 , 1 Lcd Wynik Locate 1 , 5 Lcd "rpm" Loop End
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 ,...
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...
Witam, Po szybkim zdeassemblowaniu programu, wygląda, że z peryferiów wykorzystywany jest tylko WatchDog i Timer1 w trybie Counter. Więc przejście na ATTiny będzie polegać głównie na odpowiednim zaprogramowaniu Fusebitów oraz modyfikacji ustawień WatchDoga. A można wiedzieć do czego służy ten interfejs. Pozdrawiam JarekC
są 2 błędy ... (89) error: Undefined symbol: TCCR0 -->out TCCR0,temp ; Timer counter 0 prescaler (91): error: Undefined symbol: TIMSK -->out TIMSK,temp ; set timer interrupt mask nie mam pojęcia o co chodzi ... :/ Dodano po 37 poprawiłem to na out TCCR0B,temp ; Timer counter 0 prescaler i out TIMSK0,temp ; set...
Co ciekawe mam pewne wątpliwości odnośnie dokumentacji. Timer TB0 uruchamiam w domyślnym trybie Periodic Interrupt mode, gdzie TOP określam wartością rejestru CCMP = 26666, co przy częstotliwości taktowania timera równej domyślnej częstotliwości taktowania mikrokontrolera 2.66MHz powinno dać przerwanie co ok. 10ms (100Hz). Co ciekawe jedynym przerwaniem...
Najprawdopodbniej jest tak jak pisze janbernat. Zastosowałeś w projekcie Attiny zamiast At: Compiling C: counter.c avr-gcc -c -mmcu=attiny2313 Dlatego nie ma tego rejestru który wyrzuca błąd.
A co na to woltomierz? Widzi jakieś zmiany? I skoro ustawiłeś wzmocnienie na tysiąc, czyli zmiana o 1mV da zmianą na wyjściu o 1V. To dlaczego ustawiłeś Vref na 1.024V? I z twoich kodów przetestowałem to: https://obrazki.elektroda.pl/4276604500_...
Witam, tak jak w temacie, czy posiada ktos z was schemat najprostszego miernika czestlotiwosci? (zakres 0-30 MHz) wraz z programem oczywiscie :) Chodzi mi tak dokladnie o odpowiednik czegos takiego http://www.qsl.net/dl4yhf/freq_counter/f... tyle ze koniecznie na attiny 2313. pozdrawiam jeff__
Najprawdopodobniej jest to koło 14,4 kHz (FCPU/256), bo Timer/Counter0 pracuje bez preskalera, a jest to licznik 8-bitowy. Pozdrawiam! P.S. Swoją drogą, jesteś pewien, że to ATtiny2131, a nie ATtiny2313? Nie znalazłem takiego na stronie ATMELa.
Witaj, Ja też walczę z SPI od pewnego czasu, ale używam SPI w Atmega8515 jako Slave. Jeśli dobrze zrozumiałem, to masz problem z USI w Attiny26. Z tego co wyczytałem w pdf'ie i z tego co pamiętam jak się bawiłem tym prockiem, to USI można skonfigurować jako normalny SPI. Musisz tylko odpowiednio ustawić bity rejestru USICR. Nie wiem po co liczysz impulsy...
Niestety efekt jest wciąż ten sam, cały czas dostaje wartość 134 na terminalu. Nie mam pojęcia co innego mogło by go resetować. Dodano po 9 Aktualnie wszystko zajmuje zaledwie 27% pamięci SRAM, więc raczej nie dochodzi do nadpisywania danych. Jedynym zasobożernym kodem jest ten od USARTA. EDIT: Obserwując efekt PWM można by stwierdzić, że nie zachodzi...
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...
No i to działa, tylko na odwrót (OCR0B = 255 oznacza całkowicie wygaszony LED). W zasadzie jest to poprawne działanie przy takim podłączeniu diody. To jest poprawne, czy nie jest - zdecyduj się :) Odpowiadam: Nie jest poprawne. 1. w nocie katalogowej Attiny13 tryb PWM ustawia się rejestrami COM00 i COM01, tutaj mam tylko COM0B1 - to zapis zapożyczony...
Użycie timera0 dla attiny13 - z przykładów arduino dla attiny13 czyli ach te straszne przerwania. [syntax=arduino] 9.6MHz / 1024 = 9370 Hz We divide the 9.6 MHz clock by 1024 1/9370 = 0.0001067s Period time 256 * 0.0001067 = 0.027315 0.027315 * 37 = 1.01065 ≈ 1s X = 1.01065 / 0.027315 where X is approximately 37 ****************************************...
jest ktos komu udalo sie zrobic opoznienie na tco w 2313 bo ja zrobilem program obliczale i gown... w symulacji dziala a na live dupa 8O mam juz dosc :evil: z symulacji wynika ze opoznienie ma 3,5 sekundy wszystko zgada sie z obliczeniami a po zaprogramowanie procek zachouje sie jak by nie bylo opoznienia :?: :?: :idea: :?: pomocy nawet sms 602316420
Robię przetwornicę na ATtiny261. Chcę skonfigurować PWM tak, żeby miałem 2 symetryczne przebiegi na wyjściach OC1D i /OC1D (piny 7, 8) z czasem martwym ok. 200-300ns. Udało mi się to zrobić na ATtiny 25/45/85, ale musiałem się przesiąść na coś co ma więcej pinów. W ATtiny261 jest więcej rejestrów, które trzeba ustawić. Na początku włączam PLL (potrzebuję:...
znalazłem program pisany pod inny procesor po przerobieniu wyswietla mi błędy w lini: Counter0 = 4150 program ma liczyc czas pracy po dostaniu stanu h na Pind.3 zapamietywac wynik i stawac po odjeciu stanu h na Pind.3 ma jeszcze ustawienie na 10 dni jak naliczy zrobi cos tam.... Co proponujecie??? wartosc wiem ze powinna byc w przedziale do 255 ale...
Przejrzyj m.in. te strony: ATMEGA: 2, 97, 98,99,101 ATTINY: 2, 108, 109,110,112 tam są opisy rejestrów TCCR(timer counter register) Dodano po 49 w datasheecie oczywiście
Witam czy ktos moze mnie oswiecic w jaki sposob zapisac wartosc do rejestru Counter1 pod bascomem ? Mam taki prosty program i za nic w siecie bascom nie che go lyknac ............. I taki oto blad ASSIGNMENT ERROR line 8 Procesor ma ten timer w sobie. Jezli to wina bascoma to w jaki sposob zapisac ta wartosc z poziomu jakiejs wstawki assemblerowj ?...
Witam. Zakupiłem sobie pcb do zestawu Avt 3003 i po zmontowaniu pojawił się problem mianowicie. Pomiar do wartości mniej niż 200 kHz jest ok a jak uzyska się tą granice lub poda więcej na wejście podaje bzdury. W spisie jest 74s00 zastosowałem 74hc00n 74s74 zastosowałem 74hc74b1 Schemat i opis w załączniku. Program $regfile = "attiny2313.dat"...
Mam prośbę, jeżeli możesz to sprawdź w swoim BascomAVR czy występuje problem z konfiguracją liczników T0,T1 dla tego procesora. Z tego co wyczytałem z noty katalogowej Atmela i helpów do Bascom'a wszystko powinno działać, tymczasem podczas sprawdzania syntax check wywala mi błąd. Jedyne co kompilator przyjmuje to: Timer1 = Timer, Prescale (1,8,64,256,1024)...
. Zamierzam zrobić tak by mogli wprowadzić korektę (jeśli będzie potrzebna) i zapisać w eeprom. czy to dobry pomysł? Jakoś tak; $Crystal=12000000 Config Timer1 = Timer , Prescale = 8 On Timer1 Inter_1mS Inter_1mS: Counter1 = Counter1 + Licznik (64036 - wychodzi z obliczeń, że da to 1ms) /tu odliczę sobie 103/ Błednie to rozumujesz, albo błednie podałeś...
Witam, Chciałbym nasłuchiwać co się dziej na magistrali I2C, bez ingerencji w przesyłane dane. Informacje które zostaną odebrane z magistrali I2C przesłane zostaną po USART-cie do hyperterminal-a . Do budowy tego urządzenia wykorzystałem mikrokontroler ATtiny2313, rezonator kwarcowy 20Mhz oraz transoptor LTV-817C (do izolacji między magistralą I2C,...
Mniej więcej, tylko terminologię masz nie taką. Bity CSxx służą do ustawiania źródła zegara dla licznika. Może go nie być (licznik nie liczy), może być z prescallera, albo może być to sygnał zewnętrzny. Samego prescallera tak na prawdę nie uruchamiasz i nie zatrzymujesz, on pracuje cały czas. Możesz przeczytać rozdział Timer/Counter0 and Timer/Counter1...
Timer skonfigurowany jako Counter liczy impulsy z zewnątrz, a nie mierzy czasu.
Witam Jak powinno wyglądać przejście w tryb power-down dla Attiny13V? int main(void) { ... While(1) { ... //Przejdź w tryb power-down //Testowany tryb A||B||C } } A) set_sleep_mode(SLEEP_MODE_PWR_DOWN... sleep_mode(); B) set_sleep_mode(SLEEP_MODE_PWR_DOWN... sleep_enable(); C) set_sleep_mode(SLEEP_MODE_PWR_DOWN...
purge counter rotation counter bascom counter
composite monitor buzzer tranzystor ws442 opóźnione
interfejs lexia pompa zatapialna uszkodzenia
Podłączenie kabli zapłonowych Audi 80 1.8S B3 1989 Brak zasilania płyty sterowania w piecu Termet Keller