Soft PWM i filtr wyjściowy... To w sumie najmniej elementów... i chyba jedyne wyjście.... Tylko trochę zabawy z programem... Sprzętowy timer do interwałów a resztę programowo... Każde inne rozwiązanie wymaga zewnętrznych układów...
A jak masz ustawiony timer - rzuć kodem.
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?
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...
Ale jak to zrobić, programowałem do tej pory tylko przy użyciu BASCOM-a. A chodzi o wszystkie funkcje związane z Timer1 n.p. "Timer" ; "Pwm".
Witam mam taki problem. Posiadam procesor ATTINY 45, ale chciałbym go zmusić do pracy w trybie ATtiny 15 kompatybile, aby timer 1 pracował tak samo jak w TINY 15. Niestety nie wiem jak pokonfigurować poszczególne fusy. Na razie mam to tak jak na załączonym obrazku, ale jakoś nie za bardzo mi procesor chce działać.?? http://obrazki.elektroda.net/54_12342995...
Witam Każdy Atmel z zegarem 12MHz podoła temu zadaniu w trybie CTC. Jeśli chcesz mieć większą dokładność (rozdzielczość) to musisz znależć kontroler z pętla PLL (np ATtiny45). Zakres nastaw jest ogromny, więc timer musiałby pracowac w kilku trybach. Generalnie napisz do czego ten generator ma być potrzebny i czy zmiany musza być płynne, w jaki sposób...
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.
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 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....
Witam Chciałem zapytać Kolegów, czy poniższy schemat jest poprawny. Wyświetlacze LED są WA zielone, 20,8 mm ( 0,8 ") 15mcd ( 10 mA ), jedna dioda na segment. Wzorowałem się na gotowym układzie, który zakupiłem do celów testowych. Jednak wydaje mi się, że na segmentach powinny być rezystory. Uprzedzając pytanie dlaczego dwa układy 74HC595 - wyświetlacze...
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. Jeśli wyzwalasz triaki długimi impulsami to impuls powinien trwać od momentu wyzwolenia triaka aż do momentu przejścia przez zero w danej fazie. Co do punktu naturalnej komutacji , to jest punkt od którego dany triak zacznie przewodzić . Ale wyzwalać możesz go nawet zaraz po przejściu napięcia przez zero. Po prostu triak w danej fazie przed punktem...
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...
W projekcie założyłem sobie dwa przerwania z dwóch timerów. Jedno (nazwijmy je A) wywoływane często i krytyczne czasowo (przerwanie musi być obsłużone jak najszybciej po jego pojawieniu się), trwające tylko kilkanaście cykli. Drugie (B) mniej krytyczne (właściwie w ogóle nie krytyczne), wołane rzadziej, trwające kilkaset cykli. Główna pętla programu...
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...
Timer w Tiny25-Tiny85 jest trochę inny. Na przykład może być taktowany z szyny peryferii 64MHz. Może też generować "dead time" dla różnego rodzaju aplikacji które przełączają klucze czyli robi drobne przerwy przełączając, by nie było nigdy przypadku kiedy włączone są na raz dwa tranzystory (ten wyłączony musi mieć czas by się zamknąć). Bascoma ulubionym...
No trudno mi dalej Ci coś doradzać bo mieszasz wszystko na raz. W której nocie czytałeś że tylko jeden timer potrzebny? Podałem Ci sposób jak sprawdzic czy fast pwm działa, napisz ten programik i wypróbój. Góra 15 rozkazów i wszystko wiadomo. Jak nie to go tu pokaż w całości a nie będziemy zgadywać, od tego są telewizje komercyjne. Pozdr. N.
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....
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.
od razu mówię, że jestem trochę zielony, więc tak sobie wykombinowałem, żeby zliczać obroty silnika w "Real Time", będę potrzebować zegara, ale tak sobie właśnie teraz pomyślałem, że przecież mam procesor taktowany jakimś zegarem, więc za pomocą jego mogę obliczać obroty :) no tak, trochę nie pomyślałem. Tak podejrzewałem :-). Zamiast RTC potrzebujesz...
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!
Witam. Ostatnio zacząłem bawić się w obsługę RC5, ponieważ jest mi ona potrzebna w pewnym projekcie. Po uruchomieniu odbiornika na M8 przyszedł czas na nadajnik. Prowizoryczny był na M8 jednak docelowy miał być na attiny45, ale trochę zbyt późno dowiedziałem się, że Attiny nie posiada 16-bitowego timera1, a także Bascom nie potrafi skonfigurować jego...
Witam zainteresowanych tematem. Po dlugim okresie uzytkowania powyzszego opisu postanowilem go urposic za zachowaniem funkcji gaszenia swiatel o 24:00 ze zegara czasu rzeczywistego. Rozwiazanie w kodzie programu zrealizowalem w nastepujacy sposob, licze czas trwania dlugosci dnia za pomoca na stale ustawionego timera w ATTINY a dlugosc czasu okreslam...
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
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...
Witam zainteresowanych tematem. Uplynelo juz wiele dni kiedy ostatni raz opisalem swoje dzialania z modulem RFM65W. Teraz zebralem wiele doswiadczen i doszedlem do wniosku, ze ustawienie rejestrow w RFM65W jedynie udalo mi sie za pomoca ARDUINO po wgraniu programu w /w tego opisu. https://forum.arduino.cc/index.php?topic... Ale to jest przejsciowe...
Pisząc Dim Zmienna As Byte opisujesz zmienną że będzie jednobajtowa i tak trzeba opisać każdą. Byte może zawierać się w przedziale od 0 do 255 nie większym (jeżeli zmienna miałaby zawierać wartość większą od 255 np 400 to trzeba by użyć zmiennej 2 bajtowej Word lub Integer ) Co odpowiada za to, że wszystkie zmienne "odnoszą" się do 20ms i mnoży się...
Witam, zbudowałem sobie układ diff -u Kopia ds1820tousb-20100717/Makefile ds1820tousb-20100717/Makefile --- Kopia ds1820tousb-20100717/MakefileTue Mar 23 07:55:24 2010 +++ ds1820tousb-20100717/MakefileFri Jul 1 22:05:55 2011 (at)(at) -8,7 +8,7 (at)(at) INCDIR= . # target mcu (at90s8515, atmega16, atmega8515...) -MCU= attiny45...
A może coś u źródła?: http://www.atmel.com/dyn/products/app_no... - AVR121: Enhancing ADC resolution by oversampling (14 pages, revision A, updated 09/05) This Application Note explains the method called "Oversampling and Decimation" and which conditions need to be fulfilled to make this method work properly to get achieve higher resolution...
Moze zle sie wyrazilem - nie tyle skladnia pozostaje dla mnie niejasna, co nie umiem stwierdzic, dlaczego nie jest generowany plik ELF, pomimo tego, ze w pliku make istnieje regula (chyba) za to odpowiedzialna. # MCU name MCU = attiny45 # Processr frequency. # This will define a symbol, F_CPU, in all source code files equal to the # processor frequency....
Funkcja RC5Send nie działa na tym mikrokontrolerze , pewnie dlatego że Attiny25 nie posiada 16 bitowego timera :)
Witam Postanowiłem w ramach ćwiczeń wykonać prosty regulator PWM na Attiny45. Potencjometr czytany przez ADC(8bit), wartość napięcia z niego wrzucana do OCR0A dla Timer0 w trybie fast PWM. Program ogólnie działa, tylko przy OCR0A=0 (wypełnienie na 0%) dioda LED podpięta do wyjścia OC0A nadal świeci całkiem ładnie. żeby ją wyłączyć muszę przejąć bezpośrednio...
Funkcja WAITMS nie jest odporna na przerwania. Jeśli masz jakieś to każde wystąpienie przerwania w trakcie WAITMS rozjedzie go. Niezależnie od stabilności tej funkcji, a nie ma powodu, żeby nie była powtarzalna jeśli nie jest przerywane wykonanie przerwaniami, to i tak lepsza praktyką będzie wykorzystanie timera.
No tak... nie znam not na pamięć i okazuje się, że Attiny45 ma za mały timer1 http://www.elektroda.pl/rtvforum/topic14...
To i tak chyba się skończy obliczeniami możliwości sprzętu. Przy 9.6MHz wychodzi przy praskalerze=64 przerwanie od timera co 1.7 ms a skok timera co 6.7us. Silnik będzie napędzany przez PWM ok. 500Hz- będzie piszczał. Przy preskalerze=1 silnik pewnie wcale nie ruszy bo indukcyjność uzwojeń nie pozwoli na wystarczająco szybkie narastanie prądu. Przy...
Ponieważ nie pokazałeś programu na ATtiny i nie podajesz jak RPI resetuje timer watchdoga, stąd poniższe przypuszczenia. Zapewne RPI jednym z pinów jest połączony do ATtiny by resetować timer. Prawdopodobnie w programie ATtiny sprawdzasz stan tego pinu i odpowiednio reagujesz zerując timer watchdoga. Jeśli pin ten pozostawiasz jako wejście niepodłączony...
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ęć...
Kwarc 8MHz Prescale 256 Timer liczący do 250 Zmienna licząca do 125 I masz 1.00000s. Dodano po 1 AVCC obowiązkowo do VCC. AGND do GND. Ile razy można to powtarzać.
Albo Config- albo str.112 pdf.- i poprzednie i następne. Polecam to drugie rozwiązanie. "tak by była możliwość dodania czasu martwego. " Nie da się z automatu. Mają to ATtiny 25/26/45/85- o ATMega nic mi nie wiadomo. W ATtiny25/45/85 znajduje się układ DTG-Dead Time Generator- to o co Ci chodzi.
Może odpal jakiś Timer żeby generował przerwanie bardzo często. Powiedzmy co 10us. I w przerwaniu sprawdzaj czy pin ma stan 0 czy 1. Jak 1 to inkrementujesz jakaś zmienną. Jak zmieni się na 0 to zwracasz wynik i zerujesz tą zmienną. Oczywiście w tym samym przerwaniu sprawdzaj tak samo drugi pin. Niestety wymaga to kodu obsługi przerwania w assemblerze...
Domyślam się, że trzeba urzyć innego Timera do obsługi PWM, ale nie wiem którego używa odbiór IR. Poczytałem trochę o Timerach i dla PWM najczęściej stosowany jest tryb CTC. Albo nie do końca zrozumiałeś to co czytałeś, albo autor tej informacji wstawił wierutną bzdurę! Zarówno CTC jak i PWM są to oddzielne tryby pracy timerów w AVR i ich funkcjonalność...
Namoje szczęście mnożenie ma być przez liczby całkowite Ale mnożenie przez liczby całkowite też będzie z błędem. Nie podaję częstotliwości i innych szczegółów- na tym etapie jest to nie istotne. To akurat jest bardzo istotne. Do wysokich częstotliwości trzeba inaczej podejść. Podaj chociaż bardzo przybliżony zakres. I powiedz czy wymagana jest stuprocentowa...
W attiny85 (bez "a") brak 16 bitowego timera
Dlaczego wybrano akurat ATmega8 a nie jaki inny mniejszy(gabarytowo) procesor na przykład z serii Tiny? Autor projektu wszystko napisał :wink: "Program size is 2.8KB. Since ATtiny45 has no USART, 8bit timers make 4800bps timing. The USART version is also developed for ATmega8/48/88 and achieves the higher transfer rate."
Brniesz w ślepą uliczkę. Zaprogramuj timer na zgłaszanie przerwań z częstotliwością rzędu 50..100 Hz. W przerwaniu timera sprawdzaj stan wejść enkodera, porównuj z poprzednim i reaguj.
A, ok. Na początek trzeba sprawdzić czy procesor generuje przebiegi PWM. Na PB3 i PB4 powinny być przebiegi o małych ale różniących się od siebie wypełnieniach. Częstotliwość powinna wynosić jakieś 7.8kHz. Na PB0 powinny być krótkie szpilki napięcia. To potwierdzi że wykonują się przerwania Timera (też powinno to być 7.8kHz). Program po dostosowaniu...
Witam mam procesor ATTINY85. Fusebity ustawione na "ATTINY15 Compatibility". Pod pin PB0 (noga 5) podłączony nadajnik 433MHz. Jeśli nie konfiguruję żadnego z timerów to procesor wysyła dane poprawnie. Jeżeli natomiast skonfiguruję którykolwiek timer w tryb CTC (potrzebuję do odmierzania czasu wciśnięcia przycisku), to nadawanie już nie działa. Poniżej...
I pomyśleć, że zrobienie tego w przerwaniu timera bez przerwania przycisku zajęłoby < 20 linii...
Spróbuj wyzerować preskaler dla timera. Ma on swój oddzielny rejestr GTCCR.
Zrobiłem to co podałeś trochę poprawiłem efekt ten sam. Poszedłem też na skróty i wyliczałem tylko okres resetując timer też ten sam błąd.. Zastanawiam się czy aby na pewno attiny ma 16MHz bo są źródła które podają 16,5MHz korzystam z Digispark Attiny85 i ze względu na USB jest tak taktowany, zastanawiam się o ile to prawda ze 16,5MHz jak uciąć te 0,5Mhz...
Napisz jak konfigurujesz TIMER - wklej tą linię.
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...
Witam. Mam program, w którym stany 4 wyjść zmieniają się pod wpływem impulsów na jednym z wejść (Select Case) Teraz chodzi mi o to, żeby po zaniku impulsów (dłuższym stanie 0 na wejściu) wszystkie wyjścia przeszły w stan 0, RESET. Pewnie trzeba użyć TIMER, ale nie umiem. Pozdrawiam
Program na pewno można zkompresować. Konfiguracja Timera to max kilkasaście B pamięci programu.
Trzeba wykorzystać timer i policzyć sobie z jakim prescalerem i przy jakiej wartości zegara przerwanie wystąpi co 1/36000 sekundy ...
Radzę sprawdzić "na żywo", ponieważ AVRStudio ma niejakie problemy, z symulacją Timerów. Jest to zależne od rodzaju symulowanego uC, jak i od trybu pracy timera - nie ma reguły.
mam pytanie dlaczego attiny13 timer nie lepszy był by attiny15 który ma dwa takowe z tego co wiem to jeden timer musi zajmować się generowaniem częstotliwość 36khz a drugi musi obliczać czas po jakim mają pojawić się kolejne zmiany stanu logicznego więc jak ma to zrobić jeden licznik w tiny13
8MHz / 1024 (preskaler) / 256 (timer zlicza od 0 do 255 i dopiero się przepełnia) / 100 (ilość przepełnień odliczana programowo (2*50)) = 0.3Hz z kawałkiem. Zmień preskaler timera na 4, o ile taki jest dostępny, nie sprawdzałem, a jak nie jest, to programowy licznik zmodyfikuj.
if (PINB &= ~(1<<PB4)) - to podstawienie na rejstr PINB Chodziło Ci zapewne o if (PINB & (1<<PB4)) albo o if (!(PINB & (1<<PB4))) Niezależnie jednak od tego - przyciski należy testować w przerwaniu timera. W tym programie zresztą wszystko powinno się dziać w przerwaniu timera, a pętla główna powinna tylko usypiać procesor.
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
Z timerami też miałem problemy. Albo ja czegoś nie rozumiem, albo źle interpretuje note atmela, dezorientacja kompletna. Taktowane są asynchronicznie z 64MHz z PLL. Update timerów odbywa się co 250kHz Źródło taktowania oraz dzielnik dla Timer1 wybiera się za pomocą rejestru CS1[3:0]. Natomiast źródłem sygnału zegarowego dla PLL jest wewnętrzny rezonator...
Nie wiem czy przy ATtiny25 dobrym rozwiązaniem jest pisanie programu w Bascom w szczególności, że PWM jest tylko jedną z kilku czynności jakie ma wykonywać procesor (RC5). Należałoby się zastanowić czy nie lepszym rozwiązaniem byłoby zastosowanie C która daje lepsze możliwości Panowania nad uK. Na forum pojawiały się już posty na temat problemu uruchomienia...
Czy sa produkowane jakies male '51? Zalezy mi na obudowie 8 nozkowej DIP albo 14 smd, dwoch przerwaniach zewnetrznych, 2kB pamieci programu, dwoch timerach, wewnetrznym oscylatorze (choc niekoniecznie). Znalazlem ATtiny25 ale to AVR a o nich praktycznie ani teoretycznie nic nie wiem :)
Biblioteka odbiera dane z użyciem delay w przerwaniu od pinu RX, a wysyła w delay wyłączając przerwania. Dla niskich prędkości równoczesną transmisję i odbiór z detekcją bitu start możnaby zrobić w przerwaniu timera, albo użyć USI. Tak czy inaczej, z Arduino już by w tym projekcie nic nie zostało. Problem z odbiorem danych masz taki, że w ogóle niepotrzebnie...
ok wiec biorę sobie attiny 15 czy 25 z podłączonym u ref do +5v i jak zaprogramujesz go? odcinając ścieżkę? Jeszcze inną sprawą jest to, że jeśli chcesz mieć PWM o wyższej rozdzielczości - to nie koniecznie musisz szukać procka, który ma 16bitowy Timer - bo można przecież prościutko zrobić własny programowy PWM o rozdzielczości jakiej chcesz np 10bit...
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...
Witam Jeśli szukasz schematu to zakładam, że masz trochę pojęcia o elektronice. Weź: ATTINY25 stabilizator 5V IRFR7440PBF plus kilka kondensatorów i rezystorów, może jeszcze jakaś dioda i tranzystor. Wszystko wyjdzie w rozmiarze paczki zapałek, a koszt części nie przekroczy 20zł I masz wszystko PWM i timer. Ale musisz umieć to sobie zrobić (posklejać...
Po ustawianiu OCR1C dalej program nie działa, w ogóle nie rusza licznik w timer 1. A COM1B1 ustawiam tutaj : GTCCR = 1<<PWM1B | 1<<COM1B1 | 1<<FOC1B; Może po prostu symulator w AVR studio coś szwankuje ? Bo programu nie wgrywałem na procka tylko testuje go na kompie.
Zastosowałem powyższa poprawkę, działa poprawne z tym, że prędkość silnika zależy od tego ile razy wcisnę przycisk... A ja bym chciał zrobić funkcję, która rozpędzi silnik tzw. soft start. Rozpędzasz silnik a zaczynasz od PWM 255? Pewnie źle skonfigurowałeś timer do sprzętu, zmień ustawiania i przebieg PWM bedzie zanegowany. Zero to stop (nie do końca...
Zastosowałem rozwiązanie oparte na mikrokontrolerze z rodziny ATmega + zmodyfikowany przez Briana Lowa szkic autorstwa Bena Buxtona. Wyjście na 2 mikroprzekaźniki. Działa bez zarzutu. Jest debouncing, nie ma gubienia impulsów. Układ działa nawet przy "wariackim" kręceniu pokrętłem enkodera (choć nie do tego został stworzony). W przyszłości: - przepisanie...
https://obrazki.elektroda.pl/7186671300_... Od kilku lat programuję 8-bitowe mikrokontrolery AVR i przez ten czas zdobyłem trochę wiedzy na ich temat. Poniżej znajduje się kilka ciekawostek o tych układach. Jeśli znacie jakieś inne interesujące informacje, to piszcie. Najnowsza wersja artykułu jest również dostępna na mojej stronie:...
A im więcej czytam tym więcej niejasności, i jak się okazuje jak się nie zna elektroniki to można zonka zaliczyć jak ja z tym digisparkiem, we wszystkich poradnikach, guaidach ledy się świecą same z siebie i wszyscy się cieszą i zachwycają ale jak już trzeba dodać jakiś warunek to się okazuje, że jednego pinu zabraknie Do testów się nada, ale jeden...
To się podepnę do wątku. Mógłbym prosić o kod, który: -przyciśnięcie przycisku przez 5s spowoduje zapisanie do eeprom-u wartości jednej zmiennej - liczby zmiennoprzecinkowej (kąt z inklinometru) -ponowne przyciśnięcie przez 5s nadpisze poprzednią wartość. To ma być taki rodzaj kalibracji wykonany praktycznie tylko raz, lub sporadycznie. Jak pobrać wartość...
Witam Potrzebując poznać dane klawiszy z pilota napotkałem wiele problemów związanych np. z brakiem timera 16 bit w małych mikrokontrolerach 8-DIP (Attiny85), śmieci, lub braku transmisji z komendy GETCR5 (A255,K255). Na szybko zbudowałem układ na Attiny24A (ma timer 16bit), TSOP31236 i LCD po I2C (PCF8574). Wyjście z TSOP31236 koniecznie trzeba podać...
Witam Chcę zaimplementować do mojego procka wysyłanie danych po RS'ie ( chodzi tylko o wysyłanie zgodne z standardem RS232 8 bitów danych, brak parzystości, 1 bit stopu, prędkość konfigurowalna). Czy ktoś ma jakiś przykładowy programik jak zaimplementować w programie alby jeden z pinów procesora pracował jako TX. Rozumiem że trzeba jakieś timery uruchomić...
http://obrazki.elektroda.pl/8805867100_1... Przeglądając zawartość strony natrafiłem na interesujący projekt układu naśladującego brzmienie klasycznej mechanicznej pozytywki. Do generowania dźwięku Autor wykorzystał znany już w latach 70 algorytm oparty na tablicy próbek, ang. Wavetable . Ten rodzaj syntezy wykorzystuje próbki brzmień rzeczywistych...
Nie mam doświadczeń z tak małymi AVR. Natomiast PIC używałem dość dużo. Darmowa, nieoptymalizowana wersja XC8 spokojnie pozwoli napisać to w C bez kombinacji. (szybka przymiarka daje program 47 instrukcji i 6 bajtów RAM, więc zostaje kupa miejsca na fjuczery) Przy SDCC kod startowy też trzebaby wywalić. Nie widzę powodu, aby przy takim programie lądować...
Witam wszystkich ponownie i dziękuje za pomoc układ działa poprawnie do sterowania hamowaniem wykorzystuję CTC timera0 procesora AVR. Czyli stałe wypełnienie i zmienna częstotliwość im niższa tym silniejsze hamowanie. Częstotliwość zależna jest od położenia suwaka 'gazu' który po naciśnięciu przyciska hamulca zmienia tryb swojej pracy. Jeśli komuś jest...
Możesz użyć Attiny25/45/85V w obudowie DIP8. Schemat też należy przerobić i wyrzucić stabilizator a całość zasilić z 3 baterii 1,5V. Najprostszym sposobem na losowość uruchamiania jest umieszczenie obrobionego wyniku funkcji rand() jako argument _delay_ms(period). Poczytaj o rand() i srand(). Pamiętać należy, żeby odpowiednio ograniczyć wyniki by mieściły...
z tego co czytałem to timer na 3.3V jest mniej dokładny a myślałem żeby może zaprogramować czasowy włącznik. ATTiny85 ma 512 bajtów eepromu więc takie coś spokojnie by się zmieściło. Tak czy tak przekaźniki są na 5V a BLE na 3.3 więc i tak oba napięcia musze mieć. Załączyłem jeszcze schemat z dokumentacji na 12V (120 mA, ale przykład jest na wersji...
Naliczyłem 17 delay, których czas ustawiony jest na 100ms. Daje to łącznie 1,7sekundy i może być tak, że po takim czasie program zareaguje na zmianę stanu wejścia. Pierwsza rzecz jaką bym zrobił to wywalił delay i sterowanie zrealizował na przerwaniach od timera. Przy takim podejściu reakcja na stan wejścia byłaby natychmiastowa z punktu widzenia człowieka....
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...
I wymaga zaprogramowania - do tego trzeba mieć sprzęt i oprogramowanie, trzeba się tego nauczyć - Do obliczenia RC nie trzeba sprzętu? - A jakiż to niebywale drogi sprzęt jest potrzebny? Pomyślmy? Komputer? Nooo 30 lat temu problem, teraz każdy go ma, bo niby jak zadał pytanie na forum? Może komórką, ale komórka to też komputer. - Oprogramowanie? Pewnie...
Skoro układ jest na etapie budowy to IMHO najlepszym rozwiązaniem jest dobrać właściwy procesor do zadania, a nie na siłę udowadniać, że M8 też da radę :) Są serie ATTiny dostosowane do takich zadań, czemu z nich nie skorzystać? Chyba jednak to okazało by się najlepszym rozwiązaniem. Poprzedzanie odpowiedzi również okazały się pomocne, ale problem...
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...
https://obrazki.elektroda.pl/4279999300_... Witajcie drodzy forumowicze, przedstawiam wam mój projekt, który powstawał i ewoluował w mojej głowie dosyć długo. Jeszcze przed zakupem mikroskopu obmyślałem jak by tu wykonać podświetlenie tanim kosztem (ceny dedykowanych oświetlaczy są jakby z kosmosu). Pierwsza wersja lampy opierała się...
Algorytm nie jest idealny, poprostu dla wartości feedback poniżej ustawionego napiecia dodaje 1 do wartości pwm (0-255) Z jaką częstotliwością to sie wykonuje? Robisz to w przerwaniach czy pętli głównego programu? Zmiana wartosci duty dzieje sie w petli loop. Czestotliwosc jest ustawiona na 31460Hz na pinie 1 przez zmiane timera0 w attiny. Dodano po...
Witam, zacząłem budowę ściemniacza do "halogenów" opartego na mikrokontrolerze, narazie wybór padł na Attiny15L bo taka była pod ręką. Docelowo Attiny2313 albo coś większego. Jestem na etapie testów i niestety nie wypadły one pomyślnie. Skonstruowałem taki układ: http://obrazki.elektroda.net/24_12234045... Wiem, że Attiny15L nie jest zbyt dobrym...
Poprawiłem kod: Nie, Zmieniłeś tylko configurację wejśc na aktywnośc pinu wejściowego względem GND, lecz program tego nie monitoruje, /raczej będzie skutek odwrotny niż przewidywany, zacznie pracowac natychmiast po włączeniu. [code][syntax=basic4gl] If Czas = 0 Or Switch = 0 Then Waitms 25 If Czas = 0 Or Switch = 0 Then '............... i.t.d. [/syntax]...
r"]Idę w jakimś kierunku ....... ? Niezupełnie, nie najlepsza ta droga..... Po pierwsze: wybór processora i parametrów. -Attiny13; praktycznie nie masz możliwości taktowania go 10 Mhz. Masz do wyboru: 1.2, 4.8, 9.6 Mhz. albo też 'zasilić' go (CLK1) z gotowego (zewnętrznego) źróła zegarowego co nie ma w zasadzie ekonomicznego sensu. Jego timer0 z przyjętym...
No i wszystko. Panowie, popełniłem błąd bo założyłem błędnie ten właśnie czas, nie wiem skąd mi się to w głowie pojawiło, przepraszam. Natomiast dzięki Waszym wyjaśnieniom i oscyloskopowi który służy mi nie od dziś, doszedłem do wszystkiego co aktualnie dla mnie istotne. Dziękuję za wyjaśnienia. Aktualnie z AtTiny85 wyciskam ile się da, i proszę mi...
Witam ! Piszę program do sterownika oświetlenia, napotkałem się na następujący problem , oto kod : [syntax=c] #include <stdio.h> #include <stdlib.h> #define PIN_TRIAC (0) static struct { volatile enum States {ON,OFF} state; // stan wlaczony czy wylaczony volatile char pval; // wartosc mocy w % od 0 do 100 void (*TurnOn)(void); //wlacz void...
Próbuje uruchomić tryb single ale coś idzie opornie. kanal=1 bez inkrementacji kanal w przerwaniu. Może zmienić i po prostu wywoływać pomiar ADC w timerze? Edit: No tak czytam ADC w przerwaniu a przecież nie wywołuję tego przerwania bo nie mam żadnego handlera do niego. Chyba w tym tkwi błąd.
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 -...
Witam Mam ja sobie taki oto kod : #include <avr/interrupt.h> #include <avr/io.h> #define XX 10 int pomiar=0; int ilosc_pomiarow=XX; int temp; int main(void) { //PORTS DDRB = (1<<PB0 )| (1<< PB1 ); //ADC ADMUX=2; ADCSRA= ( 1<<ADPS0)|(1<<ADPS1&... | ( 1<< ADPS2);//ADC...
http://obrazki.elektroda.net/6_119945096... Witam! Przedstawiam mój prosty lecz funkcjonalny termometr "Low-cost" do pomiaru temperatur w dwóch różnych punktach (np. wewnątrz mieszkania i na zewnątrz) Sercem układu jest procesor ATtiny25, czujnikami są znane i lubiane DS18B20 przyłączone do jednej lini danych (z powodu małej ilości pinów I/O...
https://obrazki.elektroda.pl/7502982100_... Witam Od niedawna posiadam przydomową przepompownię ścieków. Automatyka przepompowni bazuje na sygnałach z trzech czujników. Czujniki te są pływakami. Zdarzało się, że pływak zawieszał się mechanicznie. Po regulacji położenia pływaków względem innych elementów w przepompowni problem od kilku...
Dzięki wszystkim za opinie :D W odpowiedzi na wasze pytania, płytki robię metodą termotransferową z użyciem folii, projektuje w Eagle'u, serwa tak jak ktoś napisał na allegro chodzą po 23zł i właśnie na allegro je kupowałem, niezła cena jak za takie małe i dość silne serwo. Tolerancja odstępu puknięć układu jest wystraczajaca, na początku opracowałem...
Witam Napisałem poniższy prosty program który po 6 zmianach stanu na nóżce int0 (PB2) wykonuje przerwanie. include "tn15def.inc" .def acc = r16 ;nadanie rejestrowi r16 nazwy symbolicznej .def licz1 = r20 .def licz2 = r21 .def licz3 = r22 .org 0x00 rjmp pocz .org 0x06 rjmp timer0 .org 0x0B ; -- POCZĄTKOWE USTAWIENIA SPRZĘTOWE -- pocz: ldi...
timer1 attiny45 attiny45 rs232 programować attiny45
philips pfl6007 monitor matryca uszkodzona cieknie pralki
plany buggy mikrowieza samsung
Jak sprawdzić dzisiejszą aktywność na komputerze? Programowanie stacji radiowych w Panasonic SC-PM250