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,...
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ą...
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...
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...
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...
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ą...
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...
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ł...
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...
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 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...
. 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ś...
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.
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__
Dzień dobry, Nie bardzo wiem dlaczego otrzymuje taki "dziwny" odczytany z ADC. Powinien mieć około 5000 mV podłączając do vcc a w Realterm pokazuje mi 18. Chyba za długo w to patrzę bo nie widzę gdzie zrobiłem błąd. Mikrokontroler to Attiny3226 FCPU = 20MHz. Kod poniżej: /* #define F_CPU 20000000UL // wewnetrzny kwarc 20Mhz #include <avr/io.h>...
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 ?...
... Jeśli nie to nie moge temu podołać :/ No dobrze , mały gotowiec ;) Start_stop Alias Pind.0 Counter_reset Alias Pind.1 Dim Released1 As Bit , Released2 As Bit , Zalwyl As Bit Co10ms: Counter1 = 64911 'timer ma zliczać co 10ms If Released1 = 1 Then If Start_stop = 0 Then Toggle Zalwyl End If If Released2 = 1 And Zalwyl = 0 Then 'zerowanie licznika...
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"...
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 serdecznie kolegów. Mam taki oto problem. Do portu PB2(OC0A) mam podłączoną diodę LED czerwoną poprzez rezystor 470Ω. Mikrokontroler pracuje na wewnętrznym generatorze na 8MHz. Konfiguruję TIMER/COUNTER0 do pracy w trybie FAST PWM. A moim celem jest regulacja jasności świecenia diodą od 0 do max. I tu pojawia się problem bo tak jak mogę nastawić...
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...
Witam. Próbuję złożyć obrotomierz samochodowy na mikrokontrolerze Attiny2313. Wykorzystuję do tego kit z AVT2711. Chciałem wykorzystać program z tego układu. Różnica jest w mukrokontrolerach, a artukule jest 89C2051 a ja chcaiłem to zrobić na attiny i wynik pokazywać na wyświetlaczu alfa numerycznym. Jednak coś mi nie wychodzi. Odpalam układ na sucho...
..."robię obejście" domyślnej funkcji poszczególnych wyjść (włącznie z tymi pod które podłączony jest wyświetlacz. ... PD5 (ustawione jako OC0B?) PB3 (ustawione jako OC1A?) PB2 (ustawione jako OC0A?) ... Nie zauważyłem, żebyś coś wpisywał coś do rejestru TCCR0A, więc piny PB2(OC0A) i PD5(OC0B), będą pracować normalnie, a nie jako wyjścia PWM. Jeśli...
Tak na szybko - 8000000/8/28= w przybliżeniu 35714 kHz (czujnik, który podałeś spokojnie to obsłuży). Ustaw zegar na 8000000, Prescaler 8, a Counter odświeżaj wartością 242. Dlaczego 242 ?, bo 256-242=14. Dlaczego wynikiem ma być 14, a nie 28 ? Jeśli w przerwaniu użyjesz Toggle PortX.Y to z urzędu częstotliwość na pinie będziesz miał dwa razy niższą,...
Udało mi się znaleźć fajny kod z opisem programowego pwm-a od RedLina. Przerobiłem go trochę na moje 7 kanałów. Domyślnie był na 3. https://filmy.elektroda.pl/29_1428477691... Wygląda na to jakby mikrokontroler się nie wyrabiał, ale nie jestem pewien. Jak można byłoby to zoptyamlizować ? Odnośnie korekcji jasności świecenia, jak mógłbym ją tutaj doimpementować...
witam mam takie pytanie co w tym programie jest źle $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 = 0 Do Loop End :...
Załaduj ten programik (zmień tylko procek i port dla własnych potrzeb) i zobacz jak to działa. To o wiele czytelniejszy i łatwiejszy sposób odliczania potrzebnych czasów niż zabawa we włączanie i wyłączanie timerów. Możesz zrobić nawet kilka różnych "odliczaczy" i to nie tylko 8-o ale i 16 (lub więcej) bitowych, a do tego coś się jeszcze innego w przerwaniu...
$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 Config Lcd = 16 * 2 Config Timer1 = Counter , Edge = Falling , Noise Cancel = 1 , Prescale = 1 Config Timer0 = Timer...
Witam. Program (asm) zrobiony dla attiny2313 (AtmelS) chciałem wgrać programatorem Avrusb na procesor, więc pomyślałem o Winavr. Czytałem wątek[url= https://www.elektroda.pl/rtvforum/topic1... Jedyne co mogłem ustawic to "ASRC". [syntax=avrasm]# Hey Emacs, this is a -*- makefile -*- #---------------------------------------...
Witam szanownych forumowiczów. Mam problem z napisaniem programu na Attiny2313. Chcę napisać program który będzie dawał sygnał PWM o częstotliwości 20kHz czyli 50 uS. Wypełnienie impulsu prostokątnego 100%. Chciałbym by sygnał o identycznym przebiegu był na 2 nogach prockach. PWM miało by być załączane za pomocą sygnału na jedno wejście z innego obwodu....
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 =...
Przeczytaj opis WS2812B, a odechce Ci się konstruowania takich zabawek samemu. :) Przy częstotliwości przerwań 38400 Hz można dość skutecznie obsłużyć UART na 9600. Niestety dokładność oscylatora RC w ATtiny13 jest tak słaba, że w praktyce co 5 płytka nie działała, bo rozjeżdżała się transmisja. Wniosek z tego taki, że albo należy przewidzieć w oprogramowaniu...
Już działa!!! ;) ,a przynajmniej osiągnąłem zamierzony efekt. [syntax=basic4gl]$regfile = "attiny2313.dat" 'wybór procesora attiny2313 $crystal = 8000000 Config Pinb.1 = Output 'buzzer mający piknąć 3 razy po odmierzeniu czasu nop Buzzer Alias Pinb.1 Dim Sekundy As Byte Dim Minuty As Byte Sekundy = 0 Minuty = 0 Buzzer = 1 Config Timer1 = Timer , Prescale...
nie do końca rozumiem to co tam pisze. Mam najpierw normalnie odczytać wartość, a potem co? The user can calculate temperature values with higher than 8-bit resolution using the data remaining in the counter and slope accumulator when the temperature conversion is complete. To do this the user must first read the temperature from the 8-bit temperature...
zrobilem i tak i nawet ladnie to dziala. tylko jesli wpisze w programie ze port d ma byc wejsciem to na wyjsciu pb2 mam ciagle napiecie 3,4V. dlaczego? Dim Cz As Integer Dim Z As Integer Dim N As Integer Ddrb = &B00011100 'Oc0a,Oc1a,Oc1b = Output Ddrd = &B00100000 'Oc0b = Output Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B...
Excray dzięki za świetny pomysł z tym tranzlatorem poziomu. Teraz zamiast ponad jednego volta mam tylko 0,05V i do tego za darmo, bo części były już w moim posiadaniu. Co do rezystora R1 to zastosowałem 33 Kiloomowy :) Teraz tylko pozostało mi poszukać jak ustawić PD5 jako counter no i załączyć timer, co pewnie zajmie mi trochę czasu, no chyba, że...
Macie jakieś doświadczenia z przetwornicą wysokiego napięcia sterowaną bezpośrednio z uC? Nowe uC Atmela do tego się świetnie nadają. https://sm6vfz.wordpress.com/2020/12/11/... W praktyce da się jeszcze prościej - ATTINY212: [syntax=c]TCA0.SINGLE.PER = 4; // 30us period, for 5V->12V and 120uH TCA0.SINGLE.CTRLA = 0b00000001;...
Witam. Jako, że mam ferie (:D) postanowiłem je spędzić kreatywnie wiec postanowiełm wziąć się za bascoma i w końcu nauczyć się jak obsługiwać i wykorzystywać pwm no wiec znalazłem jakiś króciutki program w internecie wrzuciłem go na procka i działa super ale na jednym porcie chciałem zrobić sterowanie reszta portów PWM woziłem notę katalogowa znalazłem...
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...
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....
zrobilem schemat zegarka na lcd alfanumerycznym 24x2 na attiny2313 i nie dziala schemat i program sciagnelem z tej strony: http://www.avrprojects.net/articles.php?... na tej stronie uzyty jes at90s2313 ja uzylem attin2313 i lcd 16x2 a ja uzylem 24x2. nie zmienialem kodu a compliwoalem w avr studio. Progamuje przez stk200/300. tutaj jest kod...
Gwoli wyjaśnienia: każdy skok powoduje automatyczne zapisanie aktualnego stanu licznika na stos (w tym również przy wykonywaniu instrukcji IJMP ). Hmmm, może używasz procesorów z jakimś 'innym' rdzeniem AVR... During interrupts and subroutine calls, the return address Program Counter (PC) is stored on the Stack. Czyli licznik programu jest zapisywany...
Różnice w tych procesorach w skrócie: • Changes to Bit and Register Names • Changes to Interrupt Vector • Oscillators and Selecting Start-up Delays • Improvements to Timer/Counters and Prescalers • Improvements to the U(S)ART • Enhanced Watchdog Timer • Changes to EEPROM Writing • Programming Interface...
Witam. Przejrzalem CALE forum w poszukiwaniu rozwiazania mojego problemu. Probowalem wszystkiego co bylo podane w postach. Mam problem z polaczeniem tn2313 z ds18b20. zegar: kwarc 4MHz (testowalem juz na wew 1-8MHz bez rezultatow - ckdiv8 konfigurowalem poprawnie 1dis 0 en) podlaczam do portu d pod rozne piny. Od strony programowej tez powinno byc all...
Zrobiłem poniekąd tak jak panowie napisali, z wyjątkiem pomiaru oscyloskopem, bo po prostu nie mam. Dodałem do kodu linijkę: Config Timer1 = Counter , Edge = Rising , Noise Cancel = 1 , Capture Edge = Rising , Compare A = Disconnect , Compare B = Disconnect , Clear Timer = 0 Właściwie to powiększyłem o kilka szczegółów i teraz działa, ale... obroty...
Witam, buduje obrotomierz oparty o czujnik hala, Proszę o sprawdzenie programu do tego schematu. I o wszelkie wskazówki co można by było zmienić. Mam jeszcze pytanie jak w programie bascom ustawić up żeby chodził na zewnętrznym kwarcu 8Mhz? [syntax=basic4gl] $crystal = 4000000 $regfile "attiny2313.dat" Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2...
Witam czy ktoś mi zmodernizuje ten program tak aby liczył mi same impulsy i je aktualizował na bieżąco a po przekroczeniu liczby 999 się resetował i liczył od nowa $crystal = 4000000 $regfile "attiny2313.dat" Dim Wynik As Long Config Timer1 = Counter , Edge = Rising Cls : Lcd "Obrotomierz" : Wait 1 Do Timer1 = 0 Start Timer1...
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...
nowsze bascomy (np. 1.11.9.8) mają wbudowaną obsługę serw: CONFIG SERVOS Configures how much servo’s will be controlled. Syntax CONFIG SERVOS = X , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = rl Remarks Servo’s need a variable pulse in order to operate. The CONFIG SERVOS directive will set up a byte array with the servo pulse width values...
Dzięki za pozdrowienia i za odpowiedź . A co do układu to jest automat do pokoju i ma sterować światłem rgb , halogenami , klawiatura umieszczona we włączniku+ dioda rgb ma sygnalizować jaka funkcja światła zostanie zmieniona , odczytać i zapisać i2c to zadanie dla attiny2313 . A atmega8 ma wyświetlać na wyświetlaczu co jest obecnie za funkcja , pobierać...
Witam, mój problem polega na tym, że chcę włączyć tryb CTC dla Timer0. Próbuję to zrobić (ASM i C) i w efekcie licznik się nie zeruje na wertości TOP, ale leci do MAX (255). Jednak tak samo napisany kod dla Timer1 już działa zerując licznik po osiągnięciu wartości TOP (np. 50). TIMER1 CTC MODE: [syntax=asm] ldi r16, 0x63 ; out OCR1AL, r16 ; ldi r16,...
ok działa podobny program jest w książce. Ale jak teraz "przenieść" to zliczanie w inne miejsce żeby diody zaczeły sie zapalać tak jak che i to jeszcze z multipleksowaniem. A co do keawcu to miałem go podłączonego i w fusach też ustawiony był ok. Jak narazie dzieki za pomoc. Chwile sie pobawiłem i zastanawiałem sie czemu mi zle działa dioda podpięta...
Zbudowałem obrotomierz ze strony [url=http://www.aisi555.com/2012/07/meng... Niestety nie potrafię zrozumieć funkcji przełącznika S1. Druga sprawa: chcę podawać impulsy z GND lub +12V, ale układ nie reaguje na takie impulsy. Wskazania zmieniają się jedynie po dotknięciu palcem wejścia INTERRUPT. Powiedzcie co...
Witam! Dzięki za zainteresowanie - już doszedłem o co biega z Timerem/Counterem sprzętowym i wiem gdzie był błąd (zerowałem sobie ustawienie CTC niechcący). Ale pytanie co do generowania taktu z dokładnie policzonego programu w asmie pozostawiam nadal otwarte i aktualne - ma ktoś jakiś pomysł czemu wyszło przy pomiarze o połowę za mało?? Pozdrawiam...
Witam wszystkich forumowiczów:) Dziś chciałbym się pochwalić swoją pierwszą od początku do końca zaprojektowaną i wykonaną przeze mnie konstrukcją "przelaną" na płytkę PCB. Zatem jest to moja pierwsza płytka więc proszę o wyrozumiałość;) Konstrukcją tą jest mianowicie wskaźnik wysterowania oparty o przetwornik ADC w ATtiny13. Projekt obmyśliłem w głowie...
Całkowity standard, czyli kopiując z noty: 1.Normal port operation, OC1A/OC1B disconnected. 2. Timer/Counter Mode of Operation: Normal 3. clkI/O/1024 (From prescaler) To chyba wszystko, on ma po prostu liczyć sobie w górę a w pęli jest porownywanie [najprymitywniejsze rozwiązanie z pominięcem rozwiązań gotowych w timer1 i o takie rozwiązanie mi chodzi,...
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! Znalazłem w dokumentacji Attiny85 taki fragment : "Thus the output of the PLL, the fast peripheral clock is 64 MHz. The fast peripheral clock, or a clock prescaled from that, can be selected as the clock source for Timer/Counter1 or as a system clock" Z tego co rozumiem to zegar systemowy można taktować z częstotliwością 64Mhz. I tu moje pytanie...
Debugwire - ekstra i tani :) W medze32 na szczęście jest zwykły Jtag, a czemu twierdzisz że w bascomie nie poprogramujesz? Bascom obsługuje mege32 i to chyba z wszystkimi wodotryskami, a RTC to Real Time Counter, licznik czasu rzeczywistego, z którego w praktyce można zrobić zegarek i pewnie taki zamysł mieli twórcy. Dokładnie to licznik z możliwością...
Mam pewien eksperymentalny kod generujący SPWM dla falownika napisany dla Arduino UNO (AT328P), całość ma być jednym urządzeniem i zaczyna się robić mało miejsca na PCB a z drugiej strony są generowane tylko dwa lub trzy sygnały. Pomyślałem czy kod by nie zadziałał na ATTiny85A? Marny ze mnie programista, może ma ktoś "pomysła" na taką modyfikację?...
# Hey Emacs, this is a -*- makefile -*- #---------------------------------------... # WinAVR Makefile Template written by Eric B. Weddington, Jörg Wunsch, et al. # # Released to the Public Domain # # Additional material for this makefile was written by: # Peter Fleury # Tim Henigan # Colin O'Flynn # Reiner Patommel...
Ale litości. Wstaw ATTiny2313. Po co aż ATMega32? ATMega8 to by było przegięcie a co dopiero 32. $crystal = 4000000 Config Lcd = 16 * 1a Cursor Off Config Timer0 = Timer , Prescale = 1024 Config Timer1 = Counter Dim Temp As Byte Dim R As Byte Dim Freq_compare As Word Dim Metal_type As Bit Dim Freq As Word Dim Dif As Word Dim Temp2 As Byte Dim Prescale...
Co robie źle? Przykład na diodzie migającej podłączonej do PB3 ;DEVICE ATtiny12 (at) Internal 1.2MHz RC oscillator ;FUSES: (Internal RC oscillator) ;BODLEVEL0 (set) ;BODEN 0 ;SPIEN 0 ;RSTDISBL1 (clear) ;CKSEL3 0 ;CKSEL2 0 ;CKSEL1 1 ;CKSEL0 1 .Nolist .Include "tn12def.inc" .List .equCLK= 1200000 ; 1,2MHz clock .defzero_reg...
Witam. Napisałem program do sterowania pompą i na Atmedze8 działa bez problemu a gdy go przerobiłem pod ATtiny25 to nawet nie moge go skompilowac bo wywala jakieś błędy nie wiem jak to uruchomić prosze o pomoc. przy próbie kompilacji wywala Error 46, Error 31, Error 350 Program dla Atmegi8 $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.2...
O licznik to raczej jestem spokojny. Bardziej mnie niepokoją te przerwania na int0. No 16-bitowym timerem to nie sztuka zrobić taki spowalniacz :-) ale akurat 2313 nie mam na stanie, a np. dużą ATmegę 8 pakować do modelu w takim celu to jak armata na muchy. Ale w przyszłości na pewno się zabiorę za jakiś tiny z 16-bitowym timerem. Jeżeli chodzi o uruchamianie...
Witam ] Nie jestem pewny czy aby dobrze myślę....... Czy ustwanienie CS02 na 1 i CS01 na 1 tak jak w medze8 również w tiny13 ustawia timer0 w CTC MODE i FALING EDGE ? Nie, nie możesz tu stosowac tego typu 'ściągawki' bazując na pewnej analogii oznaczeń funkcji i terminów dla analogicznych rejestrów. Istotnie, ustawienie bitów CS02 i CS01 na 1 w rejestrze...
[syntax=basic4gl]'----------------------... 'Proporcjonalny ruch silnika krokowego 'SylwekK '8.03.2013 '-------------------------------------- $regfile "m8def.dat" $crystal = 8000000 $hwstack = 50 $swstack = 50 $framesize = 24 '-------------------------------------- Config Adc = Single , Prescaler = Auto , Reference = Avcc ' Config Timer0...
A słyszał kolega kiedyś o czymś takim jak nota aplikacyjna PDF do procka? bez czytania tego - zawsze będzie kolega spędzał wiele dni i nocy nad rozwikłaniem tak prostej "zagadki" a wystarczy zajrzeć do noty procka ATtiny2313 (przecież jest w necie za free) - zajrzeć do interesującego cię rozdziału n/t Timera0 a dokładniej: 8-bit Timer/Counter Register...
Od razu powiem, że nigdy nie bawiłem się tiny15, ale za to znam dość dobrze tiny26 i jego PWM, które jest bardzo podobne do tego z tiny15. Po przeczytaniu dokumentacji pdf tego małego procesorka, doszedłem do wniosku, że Timer/Counter1 może być taktowany częstotliwościami od 25.6 MHz (16xCK) do 1562.5 Hz (CK/1024). Zależy to od ustawienia preskalera...
Mój pierwszy pomysł był właśnie taki, żeby zwyczajnie zmienić stan na wyjściu, odczekać i zmienić go ponownie. W takim przypadku nie potrzeba przerwań, nie ma też potrzeby zatrzymywania zegara. Fragment kodu generujący impuls o długośi 0,58 ms: Set Wy Counter0 = 0 Do Licznik = Counter0 If Licznik > 57 Then Reset Wy Exit Do End If Loop Nie chce to u...
a po drugie - takie procki o jakich piszesz jak tiny2313 i podobne Jakoś zgodności wyprowadzeń to ja nie widzę :) więc nim odpowiesz doczytaj o co się pyta. Co do zegara nie pytałem o częstotliwość taktowania czy... bo to w bitach raczej nie jest a czytając pdf określane jest to jako zegar/licznik 8-bit Timer/ Counter :) Timer - zegar czasu p.s Niektóre...
Kod poprawiłem. Gdy nie używam rejestru OCR0A diody przełączają się kolejno, natomiast, gdy wpiszę do niego coś efekt psuje się. [syntax=c] void PWM_INIT(void) { TCCR0B |= (0 << CS02) | (1 << CS01) | (1 <<CS00); //Set Timer 0 prescaler to clock/1024. TCCR0A |= (0 << WGM02)| (1 << WGM01)| (0 <<WGM00); // Set to 'CTC'...
timer1 counter universal counter atmega counter
utlenia alkohol yamaha filtr powietrza zatkać wtrysk
zmywarka whirpool wgranie plików rozruchu
Falownik restartuje się przy produkcji energii - przyczyny i diagnostyka Schemat wzmacniacza klasy D monoblok 1000W RMS 1Ω – IRS2092, IRFB4227, Hypex, ICEpower