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...
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:>
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.
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....
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.
http://www.edw.com.pl/ftp/kalkavr.zip
Częstotliwość oczekiwana: f = 12MHz / 1024 / 2 = 5860Hz Częstotliwość oczekiwana: f = 12MHz / 1024 / 256 / 2 = ~22Hz (gdzie 256 to wartość przepełnienia licznika)
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...
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.
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....
Bo fusing robi stringa proszę szanownego kolegi:) To nie tędy droga...PS może nie zaokrąglanie a histereza?:)
Temat maglowany już chyba z 1000 razy - licznik ma być volatile
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...
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...
Piszesz, że masz doświadczenie z LCD i Atmega8. Więc mogę Ci pomóc to zrobić.
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
Witam, mam uszkodzony pin PD4(T0). Jak mogę inaczej niż przez T0 tym licznikiem zliczać impulsy?
Raczej jednak w przerwaniu bo zabezpiecza to przed zgubieniem impulsów. Dodano po 1 W przerwaniu od jakiegoś licznika oczywiście
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ść...
Witam. Oczywiście ale jeśli brakło by wejść można zastosować jakiś expander np: pcf8574 .
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. :)
Myślałem raczej o czymś takim: [syntax=basic4gl]Do Readeeprom Tablica(licznik) , Licznik Incr Licznik Loop Until licznik >12 [/syntax] :)
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?
Nie włączyłeś asynchronicznego typu pracy timer2 przykład: http://mikrokontrolery.blogspot.com/2011...
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.
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
Może jest na granicy błędu zegarowego. Licznikiem częstotliwości można to sprawdzić.
...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]
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);...
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...
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...
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...
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...
Dla Arduino Masz gotową bibliotekę dla PZEM004.
Jest też trochę tańsza wersja na TTL NE070 Masz też schemat tego licznika
Kolega crazy_phisic ma rację najlepiej wykorzystać do tego licznik.
Najpierw napisz program, zaprogramuj procesor a potem pytaj dlaczego nie działa. Tu uzyskasz pomoc a nie gotowe rozwiązania. Na górze strony są takie tematy "i". Zajrzyj.
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ń.
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...
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.
można tak [syntax=c] TCCR0 &= ~((1<<CS02)|(1<<CS01)|(1<... [/syntax] spowoduje to zatrzymanie 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.
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?
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.
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,...
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.
"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
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...
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.
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 ?
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
Witam, Dodaj volatile dla zmiennej licznik. JarekC
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.
"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.
Musisz też załadować nową wartość do licznika timera.
Częstotliwość zależy od zegara, preskalera oraz wartości wpisanej do timera. Po za tym błędy: $crystal="8000000" load timer0,1
Nie ma takiego rejestru w m8. To jest wartość licznika
Samym timerem tego nie zrobisz - ustawiasz po prostu drugi timer na jakiś długi okres (zależnie od kwarcu, ale powinieneś być w stanie osiągnąć około 1 minuty) i potem w przerwaniu zliczasz minuty, i po zliczeniu 60 odejmujesz godzinę. Jeśli masz przerwanie powiedzmy co 1 minutę to możesz w nim zmniejszać wartość kilku liczników.
A ja dodam od siebie: [syntax=c]for(licznik=0;licznik<100;l... { //... }[/syntax]
Może być i 65536 ale przy PWM = 16. Tyle że takiego PWMa się chyba nie da ustawić z poziomu komendy BASCOMa. Trzeba normalnie wpisując odpowiednie wartości do rejestrów konfiguracyjnych. Ale to już co innego. Tutaj jest PWM = 8 więc ma być 256. EDIT. O co Ci chodzi z tym: "8 bitów na wyjście, pozostaje 8 bitów na licznik." ?
W moim przypadku segment = cyfra. Czy kolega może skopiować linka.Domyślam się , że w przerwaniu jest np prosty licznika.
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.
Możesz do przełączania wykorzystać multiplekser komparatora analogowego i zliczać impulsy z wyjścia komparatora. Ale skoro masz sygnały tylko o fmax 5 kHz to może prościej samplować programowo te 6 wejść (a nawet 8), potrzebujesz w tym celu przerwania z częstotliwością tylko 10 kHz, co nawet poczciwa M8 uciągnie. Z drugiej strony dlaczego nie wziąć...
A cosz to ma być??? ;)
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...
Zobacz w Helpie Bascoma, rozkaz DEBOUNCE Px.y , state , label [ , SUB] w szczególnie Config Debonuce
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.
Zmienna licznik powinna być przy inicjalizacji poprzedzona słowem: volatile .
czy krancowka podaje sygnalprzez transoptor-polecam
Można małe rezystancje stosować, ale przy krótkich impulsach świecenia. Nie zdawaj się tylko na doświadczenie ludzi z forum, czytaj noty katalogowe producentów....
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.
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
Jest taki tryb. Tabela 39 w nocie katalogowej się kłania.
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...
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...
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ł.
mozesz uzyc przerwania, mozesz go nie uzyc. tak czy siak potrzebny bedzie dodatkowy kod do odpalania konwersji - rowniez i to byloby zalatione w metodzie pierwszej. 4\/3!! Raczej muszę użyć przerwania do pobierania próbek, gdyż będą jeszcze inne zadania do wykonania w programie głównym. Z Twojej wypowiedzi nie rozumiem stwierdzenia: "rowniez i to byloby...
Czy ktoś widział projekt/schemat licznika na atmega8 z lcd i tubą SBM-20-1 ? [youtube]http://www.youtube.com/watch?v=... :D
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]
Niestety nie. Można się o tym przekonać studiując notę katalogową. Prescaler jest ustawiany dla całego licznika ten sam. Mówiąc bardzo prosto jest do dzielnik częstotliwości który dzieląc systemowy sygnał zegarowy obniża częstotliwość sygnału zegarowego podawanego na licznik.
Witam wszystkich serdecznie, używając Timer1 w Atmega8 chciałem wygenerować 2 przebiegi prostokątne na wyjściach OC1A i OC1B (każdy z wypełnieniem 50%). Na razie skonfigurowałem licznik w trybie 4-CTC. Zmieniając wartość w rejestrze OCR1A - zmieniam częstotliwość przebiegu na wyprowadzeniu OC1A - wszystko idzie gładko. A teraz pytanie - jak mogę równolegle...
Wejścia przerwań możesz skonfigurować jako aktywne stanem niskim lub opadającym ewentualnie narastającym zboczem. Ustawiasz najpierw na zbocze narastające, teraz w obsłudze przerwania przestawiasz na aktywne zbocze opadające i włączasz licznik impulsów.
To zależy od konstrukcji reszty programu. Nie ma jedynie słusznych i najlepszych rozwiązań. Ja być timer włączał i wyłączał po prostu w kodzie. Rozwiązanie z flaga też jest ok, tylko wtedy nie do końca wykorzystujesz sprzęt - po co inkrementować zmienną skoro masz licznik timera.
poki co to tylko bascoma cos kumam
Inna możliwość to mikrokontroler. Np. ATiny2313 czy ATmega8.
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...
Wiem o tym, przerwanie jest generowane, gdy przepełnimy licznik czyli po 65536.
Może spróbujesz sam ? Chętnie pomogę. Masz jakiś zestaw rozwojowy z Atmegą (choćby 8) i LCD ?
Dzieki za odp. Wnioskuję, że "tryb zwykły"... to NORMAL MODE... PWMa zastąpiłem trybem NORMAL (opisanyw dokumentacji) natomiast ciekawi mnie w jaki sposób "odpalić" tego PWMa, by wyglądało to tak, jak zostalo opisane w dokumentacji (czyli tylko inkrementacja licznika, zerowanie, inkrementacja, itd.) Pzdr!
Faktycznie, nie pomyślałem o tym. Niestety lcd mam podłączony 8-bitowo. W takim razie będę musiał przepiąć optotriak do innego portu. A jakieś pomysły co do tego mrygania żarówki? Możliwe że to triak padł? Dodano po 3 Ok pozbyłem się mrugania, podłączyłem optotriak do PD5 i ładnie mi wyświetla i włącza optotriaka. Pojawił się jednak inny problem. Kod...
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++; }
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)
Jak powinien wyglądać sygnał zewnętrzny taktujący licznik w atmega8, wiem że uC bada zbocza (narastające bądź opadające), ale chodzi mi o minimalną amplitudę takiego sygnału? Mam zamiąr podłączyć jako sygnał taktujący licznik sygnał z fototranzystora - czyli rozumiem, ze powinienem ustawić zbocze opadające (czy to będzie bez różnicy?), ale jaką minimalną...
drakon3 przecież to ma licznik obrotów
Żeby otrzymać wynik w ms mnożę wartość licznika przez 1,024. Żeby otrzymać wynik w ms dzielisz wartość licznika przez 1000
(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.
Witam. Potrzebuję zbudować licznik impulsów, który zliczałby impulsy z czujnika indukcyjnego. Nie wiem czy ktoś już robił coś takiego i ma jakieś materiały bo ja nie znalazłem nic konkretnego i interesującego. Interesowałby mnie jakiś projekt oparty na jakimś mikroprocesorze, najlepiej ATmega8 ponieważ mam z niż już trochę doświadczenia i parę sztuk...
W takim razie jak tak mówisz to to jeszcze prostrze bo odpada wykrywanie programowe zboczy. mozna podpiac pod ISP lub pod int0,int1 a reszta banalnie prosta poprostu odczyt liczników i wyliczenia
Potencjometrem reguluj szybkość liczenia, a najlepiej zrób odliczanie i na końcu jakiś wybuch :-)
atmega8 licznik licznik obrót atmega8 atmega8 licznik impulsów
instrukcja obsługi zegara siła elektromagnesu oblicz odległość
elektronika baterie parkside elektronika baterie parkside
Projekt obudowy do głośnika B&C 15PS100-4 Moment dokręcania śrub w silniku SKYACTIV-G Mazda