A teraz :?: #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <math.h> unsigned char buf[20]; double x=23.1256; int main(void) { dtostrf(x,6,2,buf); return 0; } Pośpiech , to zły doradca :( Przepraszam. Piotrek
No Dobra program juz prawie napisałem i głowiłem sie nad wersja ze zmiennym PWM+f... ale z tego co mi odpisałes to wnioskuję ze coś tu mi nie gra... A nie możnaby programowo realizować ten restart co 80ms? Moze napisz dokładniej co to ma być a coś doradzimy :) Pozdro No wlasnie o to chodziło by nie restartorwać tego zewnetrznie bo chyba prosciej zaimplementowac...
tu nie chodzi o czas dla atmegi a o czas dla diody Led by zaświeciła mocno. Wątpie byś zobaczył impuls np 10ns :) .... Rozumiem, ze pomogłem, pozostaje tylko zamknąć temat :) (Kłudeczka u dołu.)
Zasymulowałem Twoje środowisko i wprowadziłem kilka poprawek. Działa zgodnie z założeniami. Debouncingu nie dodawałem, choć przydałby się. [syntax=vbnet]$regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Lcd = 20 * 4 Cls Cursor Off noblink...
Odliczy dokładnie: 1/1M = 0,000001 co 1024 tyknięcie zegara impuls czyli z racji że 100ms to 0.1s więc: 0.1/0.001024 = 97.65625 impulsów Więc w rzeczywistości odliczy 99.328ms. Więc możesz w przerwaniu dać funkcję która co 97 przerwanie zwiększa zmienną o 1. Potem wystarczy porównać jaką wartość ma ta zmienna np. w switch() i gotowe.
Metoda jest taka ze w momencie nadejscia przerwania od przycisku odpalasz timer, ktory odmierza kilka milisekund, po czym sprawdza czy przycisk nadal jest wcisniety. Jesli tak, to znaczy ze impuls pochodzi od faktycznego nacisniecia a nie od drgania po nacisnieciu. Dla pewnosci mozna zamiast 2 dokonywac 3 sprawdzen. Czas timera musisz dobrac doswiadczalnie.
Witam, Przeszukałem całą elektrodę i nie mogę znaleźć odpowiedzi na pytanie (jeśli źle szukałem przepraszam ;]): " Jak do licha sterować ruchem serwa-potencjometrem przez AVR " Czy muszę mieć osobny sterownik serwomechanizmów czy da się to rozwiązać programowo?. Jestem w fazie projektowania mechanicznego ramienia składającego się z 3-4 serw modelarskich(Tower...
Zasadniczo zmieniać nic nie trzeba układ powinien działać tyle że musisz sobie policzyć wartość W dla 8MHz i dzielnika 256 każdy impuls trwa 0,032ms więc musisz wymaganą wartość w ms podzielić przez 0,032 i całkowitą część wpisać do W czyli od 32 do 65 i w tym przypadku osiągniesz krańcowe położenia drążka sterującego jednak jak można łatwo zauważyć...
Ale interesujące cię dane znajdziesz w dokumentacji do tego kodera. A tak w skrócie to sygnał ppm do RC wygląda tak: krótka "szpilka" o czasie poniżej 0,5 ms (tak konkretnie poniżej, np 0,1 ms) oznaczająca początek kodu, przerwa 0,5 ms, impuls od 0,5 do 1,5 ms dla kanału nr 1, długość impulsu oznacza połozenie serwa, znowu przerwa 0,5 ms, impuls o zmiennej...
Nadajnik możesz to zrobić w oparciu o timer, na którym ustawisz sobie określony zegar - np. te po rz ądane 250 kHz. Być może musisz ustawić 500kHz - aby wyłapywać nie tylko czas cyklu, ale i jego zbocze narastające i opadające. Potem budujesz sobie kolejkę danych (bufor fifo) - która stanowi podstawę dla timera - do "machania określonym pinem". Wysłanie...
Ja się zawsze zastanawiam skąd się biorą u tylu ludzi , początkujących te schematy bez podłączonego AVCC i AGND ??? przecież - trąbi się o tym nie tylko w nocie PDF ale i na forum - no wszędzie. Wprawdzie ATmega8 ma zwarcie wewnątrz pomiędzy VCC i AVCC ale nie podłączanie jeszcze niefrasobliwie drugiej nogo GND to już - proszenie się na własne życzenie...
Pomoże Ci mój mały projekcik na szybko: http://www.elektroda.pl/rtvforum/topic28... Napisałem tam dekoder rozkazów w bliźniaczym standardzie. Dekoder jest w plikach ir.c oraz ir.h Używany też jest timer (inicjalizacja w main). Program do super eleganckich nie należy gdyż nie korzysta on ze sprzętowego przerwania (akurat nie miałem na płytce wyprowadzonych...
Tego procesora akurat nie miałem w rękach, ale podejrzewam że idea pewnych rozwiązań (w tym sposób generowania przebiegu PWM) jest taka sama jak w serii TINY, z którą mam do czynienia. Otóż w nocie katalogowej można znależć fragment odnośnie generatora PWM i po chwili zastanowienia już wiadomo jak to działa. O ile dobrze pamietam to: Każdy kolejny impuls...
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
Z całym szacunkiem to jest to po prostu wioska. Nie zadałeś sobie trudu sprawdzenie biblioteki o której pisałem. Powinienem to tak zostawić , ale nie mogę na to patrzeć. Nie dość, że nie możesz używać standardowych instrukcji Bascom takich jak Lcddat, Showpic itd to jeszcze potrzebujesz 512 Bajtów na bufor.. Dyskwalifikuje to ten kod dla mniejszych...
Witam wszystkich Elektrodowiczów Jeśli taki temat jest już na Elce to przepraszam i jednocześnie proszę o link a jeśli nie ma to może się jeszcze komuś oprócz mnie przyda. Informuje jeszcze, że jestem początkującym "Atmegowcem". Na początku napisze, że programik potrzebuję do sterowania oświetleniem. Ponieważ mam przycisk "światło" działający na zasadzie...
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.
Obstawiam, że się BASCOM nie wyrabia z obsługa przerwań co 13us. Ale na BASCOM-mie się nie znam. 4.3ms daje przerwanie co ca. 16us, co by się zgadzało z obserwowaną czestotliwością ok. 30kHz.
https://obrazki.elektroda.pl/9170570400_... Witajcie. Dziś chciałbym razem z Wami zajrzeć do wnętrza przekaźnika bistabilnego BIS-411. Dla osób które nie znają tematu i nie wiedzą czym owe urządzenie jest przytoczę opis ze strony producenta: Elektroniczny przekaźnik bistabilny umożliwia załączenie oświetlenia lub innego urządzenia...
Pracę idą dalej http://obrazki.elektroda.pl/7917519000_1... Skrzynka praktycznie gotowa i zawiera 1.sterownik na procesorze atmega8 z pomiarem trzech napięć, licznikiem obrotów, pomiarem temperatury, dwoma PWM-ami, (tryby pracy skokowy i płynny regulowane napięcia ON OFF MAX moc), cztery styki do załączania przekaźników (wykorzystuję...
W twoim programie wg BASCOM-AVR są błędy: Error : 42 Line : 31 Numeric parameter expected Error : 42 Line : 32 Numeric parameter expected Error : 124 Line : 32 LOOP expected Popraw program. Przepraszam za wcześniejsze błędy. Poniżej prezentuję poprawiony kod: [syntax=text] $regfile = "m8def.dat" $crystal = 16000000 $hwstack = 32 $swstack...
Zobacz czy to Ci działa... jeśli nie to przypatrz się jak zrobiłeś hardware do tego. $regfile = "M8def.dat" $crystal = 8000000 'wstaw swoj kwarc Config Portb.1 = Input Config Portb.2 = Output Portb.1=1 Portb.2=0 Do If Pinb.1 = 0 Then Portb.2 = 1 Wait 10 Portb.2 = 0 End If Loop
to ja też coś od siebie dołożę spróbuj wszystko zapisać w postaci liczbowe tj nie baw się w przesunięcia bitów i takie tam tylko na sztywno w pisz co masz wpisać do rejestrów, wnioskuje ze używasz darmowego kompilatora spróbuj wyłączyć optymalizacje kodu, ewentualnie spróbuj dopisać w obsłudze przerwania czy to wejście faktycznie ma stan niski. Swego...
Witam, chciałbym przedstawić prosty miernik odległości. Jest to projekt odtwórczy z serii "Elektronika dla wszystkich" Jest to mój pierwszy post na elektrodzie wiec proszę być wyrozumiałym jeśli coś źle zrobiłem Do czego to służy? Układ ten jest bardzo uniwersalnym urządzeniem, które możemy wykorzystać wszędzie tam, gdzie potrzebujemy prostego licznika,...
Czy któryś z szanownych kolegów mógłby napisać jakiś prosty programik, bo już czytam cały dzień i nie wiem jak napisać program żeby na wyjściu mieć impuls o częstotliwości 10Hz i czasie trwania 1,3ms przerwa pół sekundy i koleiny impuls
Dzięki za kod, na pewno się przyda. Nie rozwiązuje on jednak problemu iskrzenia. Podłączyłem wg twoich zaleceń, i dalej iskrzy po 5-10 sygnałów na 1 impuls enkodera.
Witaj. Postaram się w miarę szybko wyjaśnić algorytm działania programu. Procesor jest taktowany z częstotliwością 4MHz, i ta częstotliwość jest dzielona przez 1024 w preskalerze timera 0 - na wejściu timera 0 mamy impuls co 0.256 ms. Timer 0 jest tak skonfigurowany, że wywołuje przerwanie po jego przepełnieniu. Chcemy mieć przerwania z regulowaną częstotliwością...
Czyli przyjmujemy, że nie ma problemu z drganiami styków i innymi zakłóceniami. Jeżeli dobrze zrozumiałem zasadę działania czujników oraz Twój cel i chcesz wykorzystać obydwa INTx, to zrobiłbym tak: 1. pod INT0 podpinasz sygnał decydujący o starcie i końcu zliczania 2. pod INT1 podpinasz sygnał, który ma być zliczany Pseudo kod: 1. inicjacja: 1.1 INT0...
Zrobiłem tak: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 Config Lcd = 16 * 2 Config Debounce = 1 Dim X As Word Declare Sub Impuls Config Pinb.0 = Output Config Pinb.1 = Input Config Pind.3 = Input Pind.3 = 1 Pinb.1 = 1 Cursor...
Jeden z pomysłów to programowana klawiatura do komputera. Swego czasu ja sam chciałem coś takiego zrobić na USB, ale z uwagi na prostotę skorzystałem z adapteru PS/2 i oprogramowałem protokół PS/2. https://www.elektroda.pl/rtvforum/topic3... Wobec mojego rozwiązania (nie pod względem technicznym, tylko pod względem idei), wszystkie komputertowe...
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....
Chyba za dużo fatygi z tym hall'em, magnesami itp. Skoro to stary motor to zapewne "kowadełko" jako przerywacz do cewki. Jeżeli dwa cylindry to pewnie dwa "kowadełka". Cewka zapłonowa ma pierwotne i wtórne uzwojenie. Podłącz się na pierwotnym uzwojeniu, na przerywaczu. Przy rozwarciu pierwotnego uzwojenia cewki, wystąpi duży impuls napięciowy i przed...
Cześć. Jestem w trakcie budowy prototypu wielokanałowego układu sterującego (włącz wyłącz). Wybór padł na HT12E jako nadajnik i kilka HT12D jako odbiorniki. Transmisja będzie przewodowa (sygnał i masa) Układ z noty (jeden nadajnik - jeden odbiornik) działa prawidlowo, ale spotykam się z różnymi wartościami rezystorów R Osc. W jednym schemacie (w sieci)...
wilk125: jeszcze mam takie pytanie, jeśli kwarc zew. mam 8MHz i preskaler ustawiony jest na 8, to jeden takt timera1 w tym przypadku będzie odpowiadał 1us ? Tak Tak powinno być TCCR1B, moja pomyłka Przy odczycie wartości z TCNT1, sróbuj najpierw odczytac TCNT1L(młodszy bajt TCNT1), i następnie TCNT1H (starszy bajt). Chociaż odczyt jak wyżej tez powinien...
Witam to mój pierwszy post na tym forum, stąd możecie mi wierzyć jak bardzo jestem zrozpaczony:) jeśli temat jest w złym miejscu to prosiłym moderatora o przeniesiegnie i z góry przepraszam:) zwykle staram się rozwiazywać wszystkie problemy sam ale tym razem mam coś czego nie jestem w stanie zrozumieć. Pracuję chwilę nad programem którego działanie...
TRIG potrzebuje impulsu 10us by wyzwolić pomiar. W odpowiedzi na pinie ECHO mamy impuls o różnej długości, zapewne dłuższej niż 10us. Pin Echo HCSR04 połączyłeś z pinem TRIG. Sprawdzałeś, czy nie będzie sam siebie wzbudzał?
W C to bym ci nawet pokazał jak to zrobić, o BASCOMie nie mam pojęcia i nie chcę mieć :) Swoją drogą lepiej porzuć tą ciemną stronę mocy i przejdź na stronę światła :)
Czyli przez BD139 ma być przekazywana masa przekaźnika? Tak, zobacz: http://mikrokontrolery.blogspot.com/2011... Dondu, częstotliwość sygnałów podawanych do AVR będzie tak duża że muszę takim sposobem niwelować drgania Jak duża ta częstotliwość? Czy ty chcesz zliczać te impulsy, czy tylko stwierdzić brak impulsów?
Programuje uC rodziny AVR hobbystycznie na razie, ale często mam problemy poprawnością działania moich programów, czasami zdarzają mi się jakieś kolizje zdarzeń w programach, przez co jakaś funkcja czy procedura nie działa prawidłowo lub jest pomijana, diody migają nie równo, multipleksowanie wyświetlaczy 7seg działa nieprawidłowo i pokazują się artefakty......
Witam, Zrobiłem prosty układzik, przerobiłem prosty programik ze stronki http://www.microsyl.com/ ( i zakładka Mod Lamp ) do dekodowania sygnałów IR z pilota Sony, na swoje potrzeby. Sposób ten wykorzytuje wejście ICP procesora (u mnie Atmega8) oraz Timer1. Jak widać program przerobiłem dosyć mocno ;) i najważniejsze , że przepięknie działa. Jednak...
a jak możnaby ściągnąć jakiś kod z pilota, żeby zaprogramować go na ATmega8? Czy ktoś mógłby podać mi taką instrukcję, dla przykładowego bitu - nawet nie RC5, ale np 110001101010 przy częstotliwości impulsu 36KHz. Ja używam takich komend: ... ...//przed wejściem do nieskończonej pentli, uruchamiamy przerwanie INT0 od opadającego zbocza sygnału cbi(MCURC,...
Dziękuję za odpowiedzi! Obiążenie procesora nie jest problemem, ponieważ poza wyświetlaniem obrotów nic innego nie robi. Przy 100RPM sygnał będzie miał częstotliwość 1,67Hz. Oznacza to, że trzeba by próbkować dwie sekundy, żeby "odróżnić" 0RPM od 100RPM. Za długo, więc zmienię dokładność na 500RPM. To daje 8,34Hz więc wystarczy próbkować licznik 9 (10...
Muszę użyć układ dwóch timerów ponieważ w docelowym układzie zakres czasowy Timera1 będzie za mały. Czy procesor zliczy na T1 impulsy generowane na OC2 ? Obawiam się sytuacji, że przy wspólnym CLK gdzieś mi się zbocza miną pomiędzy OC2 a T1 i układ nie zatrybi... Oczywiście że zbocza te mogą się minąć, ale to jest bez znaczenia. Podczas synchronizacji...
"Tą" liczbę masz zapisaną w zmiennej Liczba_przerwan_tim0 a nie w ośmiobitowym (czego się chyba obawiałeś) rejestrze timera0 - więc nie ma problemu.
Wygląda poprawnie impuls ma ok 0,8ms czyli ok 1250 bodów . Masz problem w przejściówce którą używasz lub w samym konwerterze ttl , rs232.
Korzystam z BASCOM Podłączone mam piny ECHO pin PD.3 TRIG pin PD.4 Stworzyłem taki program testowy [syntax=vbnet] $regfile = "m8def.dat" $crystal = 8000000 $hwstack = 32 $swstack = 32 $framesize = 32 Config Portb.6 = Output 'wyjscie LED Config Portd.4 = Output 'wyjscie dla Trigger Config Portd.3 = Input 'wejscie dla Echo Trigger Alias Portd.4 Led Alias...
Witam. Potrzebuje program do Atmega8 który sterował by mostkiem H. Potrzebne mi są impulsy dwu sekundowe co minutę, raz na jednym porcie, raz na drugim. Miało by to sterować zegarem wtórnym PKP który zasilany jest impulsami co minutę, co impuls odwracana jest na nim polaryzacja. Nigdy nie pisałem programów więc proszę o pomoc i sprawdzenie tego co napisałem....
Nie lepiej zerować przez RS'a zmienną która zlicza impulsy ?
Witam ! Zastępując fragment programu : 'If Impuls = 0 Then 'Incr Licznik 'Waitms 100 'End If Debounce Pind.5 , 0 , Licz , Sub i dopisując : Licz: Incr Licznik Return Otrzymamy program zliczający pojedyncze impulsy. Pozdrawiam. Stefan
...nie odrzucam sposobu mierzenia prędkości poprzez pomiar czasu pomiędzy kolejnymi impulsami. Lecz nie bardzo mam pomysł jak to zrealizować programowo. Będe wdzięczny za podpowiedzi. W sumie to jest bardzo proste, wykorzystaj do tego jakiś timer z dość dużą częstotliwością (czym większa tym dokładniejszy pomiar). Zerujesz go w momencie przyjścia impulsu,...
atmega8 zliczać impuls atmega8 pomiar impuls atmega8 długość impuls
skoda fabia spryskiwacz toyota centralny zamek cyfrowy polsat dekoder samsung
szybkozłączki tulejki proste aktywne obciążenie
VW LT 2.5 - Wpływ uszkodzonego przewodu vacuum na odpalanie Stopy niskotopliwe w elektronice: skład i zastosowanie