Ok po kolei, wywalam wszystko z programu, zostawiam tylko...... zmienna impulsy jest zwiększana o kilkanaście a nie tylko o jeden ............ Licz: If Scisk = 1 And Ok = 1 Then Incr Impulsy Elseif Scisk = 0 And Ok = 1 Then Decr Impulsy End If Return Kontaktron (Reed switch) generalnie jest stosowany jako proxy switch, czyli w ukladach statycznych....
Piszesz, że masz doświadczenie z LCD i Atmega8. Więc mogę Ci pomóc to zrobić.
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:)
Kolega potrzebuje po prostu wartości liczby w kodzie BCD jak pisał poprzednik i BCD, HEX i liczby dziesiętne pokrywają się w zakresie 0-9. W takim razie wystarczy wysłać 4 najmłodsze bity na wejście 7447 albo całą liczbę bo i tak podrt wyjściowy jest podłączony tylko to 4 końcówek 7447. Co do wartości powyżej 10 to zaproponowałbym aby użyć wejścia BI/RBO...
Obliczenia są +/- poprawne, pod warunkiem, że procesor rzeczywiście jest taktowany 12,8MHz. Domyślnie atmega8 działa na wewnętrznym rezonatorze 8MHz który jest dodatkowo dzielony przez 8. Żeby to zmienić musisz przeprogramować fuse bity. Najlepiej to zacznik od uzyskania częstotliwości 1Hz na jakimś pinie - miganie LED przy czasach rzędu 3,1ms dość...
Wystarczy wpisać do rejestru licznika zero oraz wyzerować preskaler. Na przykład Timer0: 1. TCNT0 ustawiasz na zero 2. ustawiasz bit PSR10 w rejestrze SFIOR. Ale uwaga! W tym przypadku PSR10 zeruje także preskaler Timer1. Szczegóły w datasheet. Jak już poprawisz program to napisz proszę w komentarzu do artykułu. :)
http://www.edw.com.pl/ftp/kalkavr.zip
a _delay_ms i _delay_us Ci nie wystarcza ? Do opóźnień nie trzeba wykorzystywać koniecznie przerwań timera. Można wykorzystać flagi timera (o ile się da, ale wszystko zależy). Poza tym, zmienna deb w Twoim programie zapewne nie jest volatile, ale wrzuciłeś nam NIC, także pomoc też nijaka
Coś takiego: [syntax=c]while(1) { temp++; if(temp>100) { temp = 0; n = 0 } if( ! (PIND & (1<<PD3)) ) //tutaj sprawdzam trzeci bit z portu D { _delay_ms(50); //czekam, aż drgania styków ustaną n=n+1; temp = 0; if(n > 14) n = 0; //tej linijki brakuje u Ciebie i n przekracza 14 if(n>9) PORTC=0x03; PORTB=liczba_LED[n]; _delay_ms(50);...
Enkoder to mechanicznie zwykły przycisk. Ma też wszystkie wady przycisku, czyli np. drgania styków. Wiele enkoderów na jeden "przeskok" generuje 2-4 impulsów i oczywiście czasy trwania poszczególnych faz zależą od szybkości kręcenia. Przejrzyj darmowe przykłady do książek w mojej stopce - masz tam przykłady obsługi enkoderów w oparciu o ATMega i XMEGA.
No cóż teoretycznie chyba bedzie działać ale ładne to to nie jest :D 1. linie kodu TCNT0 = 0; // ustawienie zegara na zero - przyznaje to wlasnie robi natomiast TCNT0=1; // rozpoczecie pracy zegara - z tym sie nie zgadzam , bo licznik liczy od momentu wpisania 0x05 do rejestru TCCR0, i nie zatrzymuje sie tylko leci dopóki nie wpiszesz 0 do TCCR0 oprócz...
Temat maglowany już chyba z 1000 razy - licznik ma być volatile
Służę. Może nie dokładnie, ale... Wyświetlaną cyfrę ubrałbym w tablicę np. cyfra_wysw(4) i obliczenia jedności, dziesiątek, setek, tysięcy umieścił w niej zamiast w oddzielnych zmiennych. [syntax=cpp] portb=1 for (i=1; i<=4; i++) { portd=cyfra(cyfra_wysw(i)) if (i<>1) portb << 2 }[/syntax] Może nie jest to idealne, bo dawno nie programowałem,...
na symulatorze nie masz co patrzeć. One są do niczego. Ok sprawdzę zaraz. Dodano po 18 ok sprawdziłem. Działa bez problemu. Sprawdzałem na płycie testowej a sygnał brałem z Timera2 skonfigurowanego jako PWM. Zmieniałem różnie Prescaler od 1 do 1024 i działało bez problemu.
"sposób przerobienia tych 0..5 na 0..10" [url=http://www.elektroda.pl/rtvforum/to... :) To tak może inaczej czy mogę sterować jakoś tymi wyświetlaczami za pomocą atmega8
Jak najbardziej, licznik 2 ma wyjście OC2. Rejestr = _BV(cos); to przypisanie wartości, a Rejestr |= _BV(cos); to tak jak by Rejestr = Rejestr | _BV(cos); gdzie | jest bitową alternatywą. Taki zapis służy do ustawiania bitu numer cos, niezależnie od jego wartości i wartości innych bitów w tym rejestrze. OC2 jest na PB3, więc nie ma po co ustawiać PORTD...
TOSC1 i TOSC2 to są piny do podłączenia kwarcu, jak nie używasz kwarcu to podajesz sygnał tylko na TOSC1. ASSRn to rejestr konfiguracyjno-statusowy do Synchronization unit. Sam synchronization unit to chyba tylko prosty arbiter do komunikacji z samym licznikiem, pilnuje on żeby np zapis do licznika nie był w dokładnie tym samym momencie co inkrementacja....
"Tymniemniej proszę może popuścicie mi coś na początek , tak na zachęte" itd .... - kliknij ZMIEŃ a później PISOWNIA i zaraz może być lepiej ;) w tytule też :) bo ktoś popuści w spodnie z zadumy.
Jesli chodzi o zanik zasilania, o mozesz zrobic prosty ukladzik na tranzystorze ktory wykryje zanik zasilania. Jesli to wykryjesz to zapisujesz dane we WBUDOWANYM eepromie.
Do działania timera nie jest potrzebna nieskończona pętla while. Dobra praktyka wskazuję aby w całym programie znalazła się co najmniej jedna nieskończona pętla. Wartość OCR można wpisać na stałe skompilować i wgrać do procesora. Wypróbuj jeszcze ten tryb 14 z ICR1 na TOP wklejam działającą konfigurację pod Atmege 16(sprawdziłem rejestry i konfiguracja...
Zobacz w Helpie Bascoma, rozkaz DEBOUNCE Px.y , state , label [ , SUB] w szczególnie Config Debonuce
czy krancowka podaje sygnalprzez transoptor-polecam
Albo po ludzku, jeden timer od wyśw. w ramie trzymane zmienne do wyswietlenia, po drodze dekoder bin->bcd -> 7seg i hopa.:) No i przyciski gdziekolwiek...ale na boga... nie na licznik:>
Witam, chciałbym zbudować licznik impulsów na atmega 8 który by zliczał ile impulsów było w czasie 1 sekundy i wartość tych impulsów wysyłała w postaci binarnej na wyjścia procesora. Dodano po 1 Język w którym bym to chciał to C znalazłem identyczny projekt na forum ale w bascomie a w tym języku się wogóle nie orientuje
A nie łatwiej jest policzyć DO ilu ma liczyć a nie OD ilu? :) i robić przerwania COMP a nie OVF? Ja tak robię i na kwarcu 4MHz timer1 odlicza sekundy bardzo ładnie. Ale u Ciebie timer1 wydaje się mieć dobrze ustawianą wartość. Przy prescalerze 256 musisz mieć 15625 taktów zegara, aby osiągnąć sekundę. W drugim coś mi nie gra. Odliczasz od 0x0F czyli...
Witam. Czy blok licznika (wejście T0) w atmega8 jest niezależny od zegara procesora? Jeżeli tak, jaką maksymalną częstotliwość mogę podać na wejście licznika? Pozdrawiam.
Witam. Oczywiście ale jeśli brakło by wejść można zastosować jakiś expander np: pcf8574 .
Tak się nie robi. Myślę że ten timer się parę razy przepełni zanim obsłuży LCD. Ustaw timer tak aby wywoływał przerwanie przy danej wartości i w tym przerwaniu dodawaj jakąś zmienną o 1 i czyść licznik.
Częstotliwość oczekiwana: f = 12MHz / 1024 / 2 = 5860Hz Częstotliwość oczekiwana: f = 12MHz / 1024 / 256 / 2 = ~22Hz (gdzie 256 to wartość przepełnienia licznika)
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
Dla Arduino Masz gotową bibliotekę dla PZEM004.
Tak dla switch (n&6) działa dobrze. Zależy co dla kogo znaczy dobrze. Dla mnie by znaczyło że wyświetla również 1, 3 i 5. Wyświetla?
Raczej jednak w przerwaniu bo zabezpiecza to przed zgubieniem impulsów. Dodano po 1 W przerwaniu od jakiegoś licznika oczywiście
Jeżeli to jest dokładny schemat podłączenia, to to nie podziała zbyt długo, a właściwie w ogóle. Brak połączenia mas układu i motocykla, brak jakichkolwiek kondensatorów na zasilaniu i rezystorów przy LEDach.
A cosz to ma być??? ;)
Może jest na granicy błędu zegarowego. Licznikiem częstotliwości można to sprawdzić.
Nie włączyłeś asynchronicznego typu pracy timer2 przykład: http://mikrokontrolery.blogspot.com/2011...
Multipleksowanie jakoś działa, nie mam pomysłu jak można by to było zrobić lepiej. Gdzie umieścić pobieranie TCNT1 też nie za bardzo mam pomysłu...będę kombinował.
Zapisz sobie podstawę roku w RAMie (w PCFie) z dokładnością do 4 lat. Czyli dla obecnego roku w RAMie wpisujesz 04, a w rejestrze roku 02. Przed wyświetleniem dodajesz te 2 liczby. Przy ustawianiu natomiast wpisany rok podziel na 4. Wynik wpisz do RAMu, a resztę dzielenia do rejestru roku w PCFie.
...jednak na wyświetlaczu liczby pojawiały się ok 100 razy za szybko. Raczej 125 razy za szybko. Winowajca ukrył się, w tej oto linii: [syntax=c]if(licznik>125); [/syntax]
A po co ci te informacje? Bo one nie mają żadnego praktycznego zastosowania. Jeśli 20MHz to za mało to masz serię XMega do 32MHz. Jeśli to ciągle za mało to zmień rodzinę. Parametry z noty są określane tak, żeby założony odsetek układów pracował w podanych warunkach. To znaczy, że większość będzie pracować przy szybszym zegarze, a jak szybkim nie ma...
Procesory AVR są praktycznie kompatybilne w dół,wszystko co jest napisane na AtMega8 uruchomisz na 16 , im wyższy model procesora tym więcej pamięci RAM i Flash,czesto też jest o jeden licznik więcej lub więcej przerwań.
ldi R16, TIMSK ; wlaczenie przerwania dla wyrowania ocr1a i licznika Wg mnie powinno byc: in R16,TIMSK Nie wiem czy to pomoze, narazie innego bledu nie widze. Pozdrawiam, Michal
Jest też trochę tańsza wersja na TTL NE070 Masz też schemat tego licznika
Witam, mam uszkodzony pin PD4(T0). Jak mogę inaczej niż przez T0 tym licznikiem zliczać impulsy?
Jak zrobić na atmega8 licznik programowalny? Aby częstotliwość sygnału zewnętrznego (u mnie to będzie prostokąt z VCO o wypełnieniu 50%) była dzielona przez liczbę zadaną w programie i żeby na wyjściu był przebieg też o wypełnieniu 50%. Do jakich częstotliwości mogę wykorzystywać atmegi, niekoniecznie taką jaką posiadam? Dodam że jestem trochę zielony...
Jaki uC określa dział;) To jaka będzie amplituda sygnału (oraz kształt) wymaga jedynie użycia odpowiednich elementów wejściowych. Do ustawienia rejestrów nic Ci bardziej nie pomoże jak dokumentacja techniczna - wpisz w googlach nazwę procka i odpal PDF'a (datasheet). Co do sposobu pomiaru częstotliwości to masz na szybko dwie metody - pomiar okresu...
ATmwga 8 ma 3 timery... 2x 8-bit i 1x 16bit... Timer2 może pracować z kwarcem zegarkowym... Timer1 jako PWM... A timer0 jako licznik...
poki co to tylko bascoma cos kumam
Częstotliwość zależy od zegara, preskalera oraz wartości wpisanej do timera. Po za tym błędy: $crystal="8000000" load timer0,1
Witam. W trybie FAST tak ma być, użyj trybu zwykłago. Co do rozdzielczości to np. ATMega128 ma możliwość az 16 bitów. Ósemka chyba też sprawdź w dokumentacji ;) Pozdrawiam.
Inna możliwość to mikrokontroler. Np. ATiny2313 czy ATmega8.
Witam serdecznie. Czy jest możliwość zatrucia takiego wyświetlacza, przez zbyt niskie napięcie zasilania katody bądź anody? Pytanie powstało na skutek chęci włączenia wyświetlacza CV7Д9. Otóż wyświetlacz ów pięknie mi pasuje do urządzenia, które buduję. Sterowanie wyświetlaczem pochodzi z PT6313, natomiast PT6313 ma być sterowany z Atmega8 (licznik...
Witam, $regfile = "m8def.dat" $crystal = 8000000 Config Pinb.1 = Output Config Pind.1 = Output Config Timer2 = Timer , Prescale = 128 Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Disconnect , Prescale = 8 Cls Cursor Off Portd.0 = 1 Portd.1 = 0 Set Portd.4 On Timer2 Czas1s Dim Licz8ms As Byte Dim Wartoscpwm As...
Może spróbujesz sam ? Chętnie pomogę. Masz jakiś zestaw rozwojowy z Atmegą (choćby 8) i LCD ?
Dobrze, że uczysz się C ale jeżeli chcesz w pełni wykorzystywać ten język to naucz się jeszcze korzystać z not katalogowych uC. 1. O porcie A już kolega polprzewodnikowy napisał. 2. Timer0 w M8 w przeciwieństwie do M32 nie ma możliwości pracy w trybie CTC. Chcesz CTC to przenieś obsługę na T1 lub T2. Ewentualnie T0, ale w trybie normal z cyklicznym...
Potencjometrem reguluj szybkość liczenia, a najlepiej zrób odliczanie i na końcu jakiś wybuch :-)
Zmienna licznik powinna być przy inicjalizacji poprzedzona słowem: volatile .
Witam! aktotowie V ale na oko 12-15V). Coś tam nabazgrałem w mspaincie - za pewne źle. Zapewne coś źle podpiąłem, coś dałem więcej, coś mniej a czegoś wcale. Ale chyba po to jest to forum ;] Oto mój prymitywny schemat: http://obrazki.elektroda.net/66_12246994...
Kolega crazy_phisic ma rację najlepiej wykorzystać do tego licznik.
Proszę. Twój programik ponad 20% chudszy ;) Pewnie jeszcze by się coś znalazło :D [syntax=vbnet]$regfile = "attiny2313.dat" $crystal = 1000000 $hwstack = 32 $swstack = 4 $framesize = 38 '* Konfiguracja wyświetlacza * Config Lcdpin = Pin , Rs = Portd.6 , E = Portd.4 , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 Config Lcd = 16 * 2 Deflcdchar...
Jeśli do tego włączysz przerwania, ustawisz licznik T1 w tryb porównywania z kasowaniem, to dokładnie co 1 sekundę wywoła się przerwanie przepełnienia licznika T1. Dalej to już tylko odpowiednia obsługa tego przerwania.
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
(at)Mlotek Przede wszystkim pamiętaj, że dla master SPI najpierw pin SS należy ustawić np. na wyjście, a dopiero potem konfigurować MSPI.
Do zrealizowania tego zadania nie trzeba nawet wykorzystywać TSOPa. Wystarczy prosty detektor na diodzie IRED i fotodiodzie. Za pomocą procka możesz wykonać prosty i bardzo efektowny licznik impulsów, ale pomiar przechodzących osób bd jedynie szacunkowy...
Witam, Dodaj volatile dla zmiennej licznik. JarekC
Ach, Ty masz tutaj INT0 wyzwalane z zewnątrz w zerze sinusa sieci (100x /s), więc można z tego skorzystać. Zmień to: [syntax=c]ISR(INT0_vect) { // wykonywane 100x /s static uint16_t licznik = 0; licznik = (licznik + 1) % 400; // zeruje się co 4s if (kanal1 < licznik/4) TRIAC_ON; else TRIAC_OFF; }[/syntax]
można tak [syntax=c] TCCR0 &= ~((1<<CS02)|(1<<CS01)|(1<... [/syntax] spowoduje to zatrzymanie licznika
Musisz też załadować nową wartość do licznika timera.
Witaj. Możesz wzorować się na tym projekcie: http://mikrokontrolery.blogspot.com/2011...
Jakiż to dodatkowy osprzęt jest Ci potrzebny do termopary, który nie zmieści się w obudowie licznika? Atmega8 się zmieści, a jak jeszcze dołożysz WO to już się nie zmieści?
A co do usypiania - to stosuj jak najczęściej, nawet pracując na zasilaniu innym niż bateryjne - to dobry nawyk który ułatwi Ci pisanie kodu, gdy oszczędzanie będzie niezbędne. Generalnie - wykonaj, co masz i idź spać :) Dodano po 1 To (niestety?) to samo Vcc i GND. A to ma jakieś szczególne znaczenie w tym przypadku, nawet jeśli został zastosowany...
Prawdopodobnie powiniwneś zabezpieczyć program przed niekontrolowanymi przerwaniami ze strony tego licznka (chodzi mi o funkcję LCD_WriteFont)Wydaje mi się że Funkcja LCD_WriteFont nie pwinna być przerwana w trakcje wypisywania na LCD bo wtedy wyświetlacz może "zgłupnać" miałem ten sam problem i po zabespeczeniu funkcji wypisującej zanki na lcd przed...
Nie ma takiego rejestru w m8. To jest wartość licznika
Trudno coś doradzić gdy nie wiadomo jakie parametry ma licznik, który chcesz podłączyć. Znajdź jakieś dane techniczne albo pomierz poziomy napięć na liczniku.
A masz tyle?:>
Pokaż program.
Jeszcze dłuuuga, dłuuuga droga przed Tobą. Radzę zacząć czytać książkę od początku. Bity o których mowa to nie fusebity ale bity w rejestrze konfiguracyjnym licznika.
Witam. Mam parę nurtujących mnie pytań od pewnego czasu. Niedawno zacząłem się bawić licznikami w atmedze8. Chciałbym zacząć od zupełnych podstaw w tej dziedzinie. Zajmuje się teraz counterem0. Z tego co udało mi się wyczytać z manuala to są 4 podstawowe tryby pracy tego licznika: -brak pracy :] -praca -praca z prescalerem -zewnętrzne taktowanie Tutaj...
A ja dodam od siebie: [syntax=c]for(licznik=0;licznik<100;l... { //... }[/syntax]
Miałem na myśli, żebyś warunek " If S2 = 0 Then.." przeniósł w "else if" pierwszego. Tworzy się wtedy konstrukcja: testuj pierwszy, jak nie to testuj drugi, a jak też nie to zeruj licznik.
W moim przypadku segment = cyfra. Czy kolega może skopiować linka.Domyślam się , że w przerwaniu jest np prosty licznika.
A może prościej te impulsy podawać na wejście zegarowe timera, ustawionego tak, że top=15 i po zdarzeniu overflow generuje ci przerwanie? Oczywiście można też zrobić to na int, tak jak planujesz, ale mój sposób jest całkowicie sprzętowy. W Bascomie nie pomogę, ale może skoro zaczynasz to warto zacząć od c?
A może zrobić to z innej strony - wykorzystać Timer/Counter1 z odszumiaczem (Noise Canceler). Licznik może zliczać impulsy z kontaktronu, a przerwanie w stałych odstępach może sprawdzać stan licznika.
W Atmega8 timer mógł odmierzać określony czas i dawać przerwanie czy coś w tym stylu. Zastanawiam się w jaki sposób do obslugi enkodera wykorzystuje się timer zamiast przerwań reagujące na zmianę zbocza sygnału albo jakiś liczników ?
twój program doskonale miga diodą zgodnie z zamierzeniem ale musisz poczekać nie sekundę a kilka minut bo z powodu niezerowania licznika count kolejne mrugnięcie zachodzi dopiero po przekręceniu inta :) (btw. w tej sytuacji volatile jest niepotrzebne)
Jest taki tryb. Tabela 39 w nocie katalogowej się kłania.
Witam. Potrzebuję W tym liczniku obrotów: [syntax=c]#include <avr/io.h> #include <stdio.h> #include <avr/interrupt.h> #include <util/delay.h> #include "HD44780.h" //tutaj ustaw własne zasady pomiaru #define POMIAR_ILOSC_IMPULSOW_NA_OBROT 4 //ilość inpulsów na jeden obrót #define POMIAR_ILOSC_OBROTOW 10 //ile obrotów ma trwać...
Podepnij sobie przycisk np. do wejścia INT któregoś i zrób wyzwalanie przerwania na zbocze opadające. Gdy zostanie ono wykryte program zwiększy wartość zmiennej o jeden, np dla INT0 ISR(SIG_INTERRUPT0) { licznik++; }
No tylko że podział musi być dowolny, tzn nie na stałe 2. Ma być zmieniany z klawiatury. Dlatego myslałem, że uda mi się prockiem zrobić jedno i drugie, ale chyba jednak podział będę wybierał prockiem, a samo dzielenie robił na licznikach
Ale twoja funkcja może akceptować zarówno wartość zmiennej jak i wartość stałą. Dalej nie widzę żadnego zysku z zastosowania referencji. Może się teraz pomylę, bo to tylko domysły, i lecę z pamięci (nie patrząc do noty atmega8) ale sprawdź jedną rzecz: W procesorze ATmega8 licznik1 jest licznikiem 16 bitowym. Licznik 2 jest licznikiem 8 bitowym. Czy...
Różnią się tylko ilością kanałów, jeśli 7 "od spodu" Ci pasuje, to musisz dać 16 "od góry". Jeśli chcesz przyoszczędzić na wyprowadzeniach to możesz użyć automatyczny przełącznik kluczy sekcji na jakimś scalonym liczniku.
Kosmo Timer1=34285 wyszło z prostej kalkulacj. przy zegarze 8000000 i preskalerze 256, timer uP'a zliczy 8000000/256= 31250 "impulsów". Czyli aby licznik sie przepelnil nalezy zaczasc zliczanie od 65535-31250=34285.
A sprobuj zerowac licznik takim czyms: TCNT1 = 0x0000; zamiast TCNT1H = 0x00;//zerujemy timer 1 TCNT1L = 0x00;
Przecież pisze jak na tacy: 1. Licznik nie doliczy do 5000 w trybie CTC - zatem logicznie myśląc trzeba ten tryb wyłączyć . 2. Jeśli licznik ma pracować w trybie CTC to wartość z OCR1B musi być mniejsza niż OCR1A.
robilem cos takiego i tez poszedlem drogą licznika i timera. Timer odmierzał kwanty czasu, a licznik przerwania INT0. Dodatkowo wykorzystałem sobie jakieś przełączniki DIP do zmiany szerokości okienka czasowego w których liczone są impulsy.
Np. dla Atmega8
Sama zasada jest bardzo prosta. Jeśli chcesz otrzymać 1 sekundę a masz kwarc 4Mhz to musisz odczekać 4 000 000 taktów aby otrzymać sekundę, a że w atmega8 największy licznik jest w stanie pomieścić wartość 65535, dlatego stosuje się preskalery czyli dzielniki sygnału zegarowego. W atmega8 masz do wyboru dzielnik przez 8,64,256,1024. 4 000 000 Hz / 256...
Lepiej dzielić na języki niż na rodziny procesorów. Każdy post w dziale np. C powinien się zaczynać od nazwy procesora - przykładowo "[Atmega8] Problem z licznikiem" Podział na Języki byłby o tyle lepszy że np. Basic jest i na AVR i na PIC'i.
Najpewniej długa taśma łącząca LCD z mikrokontrolerem zbiera zakłócenia. 20cm to sporo. Daj z dwóch stron koraliki ferrytowe. Zmień program obsługi LCD tak, żeby testował poprawność danych i je poprawiał lub resetował LCD. Skróć kabelek. Popraw zasilanie, dodaj przewody masy pomiędzy linie sygnałowe LCD, można też pomyśleć o szeregowych rezystorach...
licznik atmega8 licznik obrót atmega8 atmega8 licznik impulsów
naprawa sprężarka lodówka bosch przekrecam kluczyk gasna kontrolki krótkie przewody spawalnicze
sharp lc46le824e falownik powmr
Powierzchnia radiatora dla 10W – obliczenia, dobór, profile aluminiowe TO-220, Fischer, Aavid Szarpanie silnika przy odpalaniu – diagnostyka, świece, cewki, luźne gniazdo zaworowe