Przekaźniki i trafo zasilające oddzielone są od procka blachą podłączoną do masy, która ma własnie działać jako ekran (jednocześnie spełnia funkcję radiatora dla LM). Niestety schematu jako takiego nie posiadam, gdyż projektowałem "z głowy". Lecz przekaźniki na pewno nie są problemem, gdyż resetowanie nie ma miejsca przy przełączaniu przekaźników, lecz...
No więc tak: ATmega8L: 1,8 mA (stan aktywny, temp. pokojowa, F_CPU 1MHz), w stanie Idle 0,3 mA ( jeszcze nie wiem jaki tryb oszczędzania energii wybrać, może jak opisze niżej co ma robić urządzenie to coś zaproponujecie ) HC06/05: 30-40 mA podczas parowaia, 8 mA po sparowaniu niezależnie od wykonywanych operacji. Modułu nie można uśpić, tak piszą w...
Spróbuj zaprogramować tylko samą instrukcję Getrc5 w pętli i wynik wyświetl np. na wyświetlaczu. Instrukcja ta jest himeryczna. U mnie nie chciała działać do póki nie zadeklarowałem jakiejkolwiek zmiennej tekstowej *2 lub 3. Np. $regfile = "m8def.dat" $crystal = 1000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5...
Koncepcja ma szanse zadziałać. Oczywiście najważniejsze przy tego typu układach jest odpowiednia granie relacjami czasowymi. Co do sposobu zapisu do rejestru przesuwnego...wszystko jest w jego nocie katalogowej. Podajesz daną na wejście DATA i wpisujesz ją narastającym zboczem sygnału CLOCK- oczywiście trzeba pamiętać o pozostałych sygnałach sterujących...
A nie masz li jakichś śmieci na tym przerwaniu? Poza tym, to 1wire jest czułe na opóźnienia i w czasie transmisji nie ma prawa pojawić się przerwanie (przynajmniej w tych krytycznych miejscach - na początku slotu czasowego).
I całkowicie się z Tobą zgadzam. problemem moim nie jest mała ilość pamięci tylko jej złe użycie. Najpierw aplikację rozwijałem na Atmedze 32 i szło całkiem nieźle. W końcu zaczęło brakować pamięci więc po kilku godzinach kombinowania stwierdziłem, że czas się przesiąść na coś większego. Akurat znalazłem Atmegę 128 - w sumie to 2x więcej ramu. Ale okazało...
Witam. Jestem początkującym programistą. Muszę rozwiązać kwestię jak na zdjęciu, a mianowicie za pomocą przerwań chciałbym uzyskać na jednym z wyjść stan wysoki z opóźnieniem czasowym jaki sobie na początku ustawię za pomocą dwóch klawiszy<+><->. Następnie chciałbym mieć przypisane kolejne trzy klawisze do portów wyjściowych, aby po naciśnięciu...
Witam dopiero zaczynam się uczyć języka c i mam problem z przerwaniem. Chcę, aby pewna część kodu programu była przeliczana w przerwaniu wywoływanym z częstotliwością 50Hz. Czytałem o przerwaniach, ale dalej nie wiem jak je stworzyć. Mógłby ktoś pomóc? I drugie pytanie, czy mogą być wykonywane dwa przerwania w jednym czasie, czy procesor najpierw wykonuje...
Najprościej... przez wrzucenie _delay w funkcję obsługi przerwań w pewnym sensie blokujemy nowe przerwania i program może sypać błędami. Robi się coś na wzór wąskiego gardła, któremu bliżej do czasowej zapory...
Chyba łapię. Jeśli ICR = 100 a OCR = 10, COM1A1, COM1A0 = 11 To: Licznik leci w górę od 0 jeśli TCNT = OCR = 10 zostaje ustawiony bit portu OC1. Licznik leci dalej do 100 i odbija z powrotem i jeśli znów TCNT = 10 to bit portu OC1 kasowany. Tutaj jest ta symetria :) Dziękuje za całą do tych czasową pomoc.
A nie prościej wykorzystać tylko polecenie waitms lub waitus przypisując mu wartość przetwornika ewentualnie dodając mnożenie lub dzielenie aby otrzymać wymagany zakres zmian czasowych .
Zajrzyj tu: Weź pod uwagę bezwładność elementu sterowanego- w tym wypadku pieca. Jeśli masz zapas mocy to możesz dostarczyć taką moc do grzałek że się przepalą/rozsadzą piec zanim temperatura w miejscu pomiaru wzrośnie na tyle żeby zacząć ograniczać moc. Regulacja PID jest dlatego trudna do strojenia że trudno jest obliczyć odpowiedź czasową obiektu...
Zawsze dziwiło mnie użycie przerwań ADC... Na co to komu? Przecież to algorytm, a nie przetwornik powinien decydować o czasowym rytmie pomiarów.
Witam serdecznie. Koledzy. Mam pytanie. Rozpocząłem budowę układu sterownika czasowego i mam pytanie czy na początku układ ten zadziała czy coś robię źle, proszę o podpowiedzi. Z góry serdeczne dzięki. W załączniku schemat.
Witam wszystkich Właśnie powstał sterownik Termostat na potrzeby nadchodzącego sezonu Jesienno - zimowego Termostat. Jest to wersja 4 kanałowa na czujnikach DS18B20 Jako elementy wykonawcze to triaki BT136 które wysterują Styczniki Ać na 230V Do odliczania zegarka został zaprzęgnięty PCF w wersji 8563 + bateria do podtrzymania. A właśnie sercem układu...
Możesz spróbować [syntax=basic4gl]CONFIG LCD = 16 * 2 , CHIPSET=KS077[/syntax] ..albo spróbować jeszcze zmienić FuseBity na 8MHz i w kodzie wtedy też. Widziałem takie chińskie Megi, że nie chciały z 1Wire działać na 1MHz. Może jakieś zależności czasowe poza tolerancją.
Czesc. Na wstepie nie zamierzam sie uczyc bascoma, programuje plc. Natomiast potrzebuje zrobić pewnien układzik. Jak by wyglądał prosty program na atmega8 wyłączania któregoś pinu po określonym czasie od włączenia? Tzn włączam zasilanie, zapala sie dioda na 40 minut. Po czym gaśnie do ponownego załączenia zasilania. Pozdrawiam chętnych do pomocy ;)...
Witam, Chciałbym przedstawić swoją konstrukcję, która była tematem mojej pracy na studiach inżynierskich. W dzisiejszych czasach prawie nikt już nie bawi się bramkami logicznymi, licznikami, rejestrami, które zostały wyparte przez sterowniki PLC. Urządzenia te wykorzystujemy do wykonywania pewnych zadań/sekwencji, ale dla przeciętnego kowalskiego ceny...
Witam Ponieważ nie do końca odpowiadają mi podane rozwiązania, zacznę od tego co powinienem na początku podać - ossochosi :) Programuję w bascom. Buduję układ który ma zadziałać jak uproszczony ABS: 1. pomiar prędkości obrotowej każdego koła 2. porównanie tych prędkości 3. min. 10 razy na sekundę reakcja na utratę przyczepności Doszedłem do takiego...
A pc ma stałą wartość 11111111, więc pcc ma stałą wartość 0... To tylko pierwszy z wielu błędów w tym kodzie. Głównym błędem jest sama koncepcja i wynikający z niej niedeterminizm czasowy. Potrzebujesz 8 wyjść PWM, ew. jednego wyjścia demultipleksowanego na 8. Możesz w tym celu użyć dowolnego małego uC z 8 wyjściami PWM, np. STM32F030, albo zrobić to...
witam To może napisz jeszcze co te diody mają robić :) z kontekstu domniemam że ma sie zapalać jedna po drugiej z odpowiednim opóźnieniem czasowym. Zamiast fcji "czekaj" spróbuj użyć gotowych fcji opóźnienia czasowego "delayms"(info na ich temat jest na forum), i jak coś to ustaw jak najwolnijszy zegar na uC(niewiem jak Atmega ale ja bawie sie attiny...
ATMega32+FM32xxx(serial RAM!!!-jeden lub kilka) powinien wystarczyć. Ja w takich okrojonych cenowo zestawach daję jeszcze AT45DBxx (serial DataFlash EEPROM), ale jak masz kartę pamięci, to zbędny luksus. Na takim zestawie można zaimplementować dokładnie wszystko z wyjątkiem silniejszych uwarunkowań czasowych. Jeśli się bardzo przyłożysz w asemblerze,...
Zobacz sobie pdf jakiegoś AVRa, który ma interfejs pamięci zewnętrznej (ATMega64,128 itd). Tam znajdziesz wykresy pokazujące zależności czasowe na tym interfejsie. Na ATMega8 łączysz wszystko identycznie, z tym, że zależności będziesz musiał wygenerować programowo, bo ten procesor nie ma interfejsu do pamięci.
Trochę hmmm mało szczęśliwa ta obsługa RC5. Zwykle robi albo powiem inaczej warto robić na przerwaniach zamiast wszystko w pętli głównej bo działa to zdecydowanie wtedy lepiej. Już samą tą procedurę można byłoby mocno uprościć, żeby nawet nie korzystać w ogóle z procedury obsługi przerwania, bo po co? skoro tam jest ustawiana tylko flaga na 1. Pomijam...
Przedstawiam prosty projekt zegarka (jakich wiele na forum), który nie zawiera układu czasowego PCF... tylko sam sobie mierzy czas. Nie wykorzystuje też powszechnego DS1820 ponieważ : 1. Dallas jest jednak droższy od LM335, 2. jestem leniwy i nie chciało mi się bawić 1wire w języku C. Na Bascomie jest to jednak dużo łatwiejsze zadanie. 3. kupiłem go...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Racja, działało. Kluczową frazą jest tu "przez chwilę". No i nie dotykaj mikrokontrolera, bo możesz się poparzyć. To nie ma prawa działać i takie podłączenie grozi uszkodzeniem diod i uC z powodu przekroczenia dopuszczalnych wartości natężeń prądu dla tych elementów. Jednym z możliwych objawów uszkodzenia jest czasowe (do wyłączenia zasilania) lub trwałe...
STM32F072BDISCOVERY... Nie wiedziałem, że zawiera on ATMegę88 lub ATMegę32. Zawsze się człowiek czegoś uczy... :) Wracając do tematu, odpalaj ADC z timera, co zapewni ci wyzwalanie w ściśle określonych odstępach czasowych. Przy tak niskiej częstotliwości próbkowania każdy AVR wystarczy. Tylko ATMegi mają ADC 10-bitowe. Za cenę ATMegi32, gdzie USB trzeba...
Witam. Piszę program do obsługi LCD. Piszę w asm i pod ATmega32. Przerwy czasowe chcę zrealizować za pomocą liczników. Program dla sprawdzenia inicjacii - nie pełny i nie działa właściwie - napisany dla próby. Napisałem początek programu i chciałem go zasymulować ale wciąż pojawia mi się ten sam błąd z którym po raz pierwszy się spotykam i nie wiem...
Podłączę się pod temat ponieważ mam podobny problem. W atmega8 mam prawie identyczny program do odmierzania 1s (przepisany z książki).Do uC mam dołączony kwarc 8MHz poprzez 2 x 30 pF, żadnych fusbitów nie ustawiałem, problem polega na tym, że 1s trwa około 10 sekund. Gdzie szukać problemu?? Jezeli nie zmieniales zadnych fuse bitow wiec pracujesz na...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje poprawnie, a "jarek" już nie, tylko na LCD pojawia...
niestety w moim przypadku zakup czegokolwiek jest wyzwaniem na czas przynajmniej tygodnia plus duże koszta przesyłki plus Ja nie rozumiem takiego podejścia. Chcesz się nauczyć a szkoda ci 10-20 zł na przesyłkę. Oszczędzanie na nauce mści się potem na zarobkach. To może poprostu zrobić z M32 przekaźnik :wink: który będzie słał sygnał z wejścia na USB....
Możesz zastosować-oczywiście. ATmega644 dopuszcza rezonatory do 20MHz. Niemniej jednak zastosowany kwarc musisz później uwzględnić przy późniejszych obliczeniach by uzyskać żądane interwały czasowe. Tak na marginesie-nie wiem do czego potrzebujesz tego sygnału 1Hz ale jeżeli z tego tupu zabiegów chcesz uzyskać zegar to nie jest to najlepszy pomysł....
Zrobiłem sobie układ ze stacyjką do załączania/ wyłączania komputera, wieży, wentylatorów i routera. Całość jest sterowana z mikro-kontrolera Atmega8. Poprzez przekaźniki układ odcina zasilanie 230V z ustalonymi zwłokami czasowymi. Przekaźnik od zasilania komputera jest wyłączany, gdy zniknie napięcie na linii 12V (przez opto-tranzystor CNY17-3) z zasilacza...
Cześć. Od około dwóch tygodni pracuję nad układem, którego głównym zadaniem jest jak najdokładniejszy pomiar czasu propagacji fali ultradźwiękowej między dwoma membranami piezoelektrycznymi. Układ jest zbudowany zgodnie ze schematem blokowym przedstawionym poniżej: Mikrokontroler to Atmega328 z Arduino Uno, wzmacniacz jest zbudowany zgodnie ze schematem:...
U nas problem w tym, że zajęcia praktyczne kosztują, a na edukację, także wyższą, nikt nie chce za dużo płacić. Tmf ja sądzę, że pieniądze są, tylko wydawane nieodpowiednio. Uczelnia tworzy jak najwięcej kierunków by zwabić jak najwięcej studentów. Wśród tych kierunków na uczelniach technicznych można wyróżnić kierunki określane przez studentów jako...
W tym programie jest mnóstwo błędów i pogwałceń parametrów czasowych. Odpowiedz sobie na pierwsze i podstawowe pytanie: czy chcesz zajrzeć do datasheet HD4478. Jeśli tak - to zajrzyj, i pisz wg. parametrów czasowych, które tam podano. Jeśli nie - to weź jeden z min. tysiąca programów obsługi wyświetlacza dostępnych w Internecie. Wyjście pośrednie "popatrzę...
Dzień dobry, Urządzenie powstało w celu monitorowania poziomu wilgotności w pewnej zamkniętej przestrzeni. Przekroczenie zadanego poziomu jest sygnalizowane sygnałem dźwiękowym (buzzer) i świetlnym (LED). Wartości z ostatniego pomiaru można w każdej chwili odczytać, po naciśnięciu przycisku, na wyświetlaczu siedmiosegmentowym LED. Dane z poprzednich...
Jeśli będziesz miał przerwanie o czestotliwości 10 kH to nigdy nie uda Ci się porozmawiac z DS-em. Czasu nie rozciągniesz (he he ). Natomiast przy przerwanich z częstotliwością nie większą niż czas potrzebny na obsługę DS-a zmieścisz się ze wszystkim, tak jak piszą wyżej. Nie mów nigdy... Kwestia spojrzenia na problem z innej perspektywy. Jeżeli zależności...
nie miałem doświadczenia póki co z ATmegami, ale pewnie są to dość podobne układy do '51, poza dodatkowymi bajerami. Jeżeli mają być wysyłane paczki po 32B, to szybkość transmisji musi byc większa od 256bit/s. Wtedy przy tej prędkości teoretycznie paczke Ci prześle w 1s ( o ile dobrze licze, poprawcie mnie jeśli coś źle napisałem;) ). Max w RS232 to...
A więc wniosek , że program to jedno , a sprzęt to ... drugie :D Heh ..no niestety a ja jakos olalem stroen sprzetowa myslac ze na defaultowych ustawieniach powinno smigac ;) Czyli telefon wysyła echo. W takim raznie niestety wysyla ...i wylanczyc sie go nie da ..bo nie przyjmuje ATE=0 ..... Bufor ..in , czy ..out jest buforem tzw. kołowym. mam rozumiec...
Do celów wskazania bieżącego czasu najlepiej użyć scalonych układów RTC komunikujących się przez szynę I2C. Dla przykładu popularnego PCF8583 firmy Philips. Potrzymanie zasilania tylko układu RTC bateryjką (np. CR2032) lub specjalnym kondensatorem o pojemności kilku faradów będzie gwaranować ciągłość wskazań zegara. W kwestii odliczania pkt. 1 i 2,...
Witam, Pisze program void LCD_Busy(void) { unsigned int busy_flag=1; PORTC CLEAR(3); PORTD SET(3); //RW set PORTD CLEAR(2); //RS clear do { P_E_SET; asm("nop"); asm("nop"); asm("nop"); asm("nop"); busy_flag=(PINC & (1<<3));...
Ja nieznam sie zbytnio na procesorach mikroprocesorach itp ale ogolnie fajna konstrukcja, wydaje mi sie ze bylo juz cos podobnego w DIY. Fajnie byłoby jakby ktoś zrobił takie coś właśnie do sterowania domem gdy np wyjedziemy rodzinka na święta czy na wakacje poza dom. Tzn współpraca z czujnikami ruchu itp czasowe włączanie i wyłączanie, włączanie i...
Witam. mam problem z odczytaniem prawidłowo sygnałów z obu osi akcelerometru mxd7202. z jedną nie mam problemu. pojawia się on dopiero, jak próbuje odczytać z obu. Wyjścia akcelerometru (sygnał PWM 100Hz - wypełnienie proporcjonalne do przyspieszenia (50% = 0g)) podłączyłem do INT0 i INT1 ATMEGI. ATMEGA 8535 taktowana zegarem 16MHz. Procedura badania...
Z dokumentacji wynika jasno co nastepuje: Ustawiamy jednoczesnie I/O=0, CE=0, CLK=0 . Nastepnie CE=1 ( tu dane zapisywane sa do shift registru i wystawiane na pin DATA ). dalej czekamy co najmniej 470ns po czym ustawiamy CLK=1 . W tej chwili powinnismy miec na 100% bit 0 danych gotow do odczytu na pinie DATA. Czekamy nastepne 470ns po czym ustawiamy...
Witam, musisz zamienić regulator dwupołożeniowy z histerezą na regulator typu PID w którym da się ustawić parametry obiektu regulowanego (stała czasowa nagrzewania i studzenia wody), by można było odpowiednio wcześniej wyłączać i włączać grzałkę, osiągając w ten sposób mniejsze (znacznie) wartości przeregulowania. Pozdrawiam
Witam. Mam problem. Napisalem program do wysylania danych przez RS z plytki ZL10AVR z mikrokontrolerem ATmega32. Dodatkowo w programie LabView na PC zrobilem odczyt jak i wysyl danych. Na dzien dzisiejszy program dziala tak, ze po wcisnieciu odpowiedniego przycisku na klawiaturze 4x4 wysylana zostaje odpowiednia dana (np: "1"). Na PC LabView odbiera...
Przekaźnik mechaniczny nie jest tu dobrym rozwiązaniem: a) zużyje się szybko przy miganiu b) ma duza bezwładność czasową c)wymaga zasadniczo dużego prądy sterowania. Należało by zastosować jak w większości konstrukcji triak najlepiej sterowany dodatkowo przez optotriak w celu galwanicznego odizolowania strefy niskiego napięcia od strefy 220V. Pozdrawiam
Doczytałem się w książce Pana Góreckiego, że jakiś wpływ może mieć szybkość transmisji, ale ja z tego nic nie kapuję. Nie wiem jak to można zmienić w programie. Pisze w niej ".. maksymalna prędkość magistrali 1wire to nieco ponad 16 kilobitów na sekundę.." jak to się ma do kwarcu 16Mhz .? znowu doszukujesz się problemu nie tam gdzie trzeba - odpowiedź...
Do tego stopnia sobie poszalałem, że początkowo główna pętla programu była pusta :) ale to nie był dobry pomysł :P . No nie. Generalnie, w przerwaniu powinno być to, co się powinno wykonywać albo a) bardzo często, albo b) bardzo precyzyjnie (czasowo lub zdarzeniowo). Procedura obsługi przerwania powinna być tak krótka (inaczej: tak szybka), jak się...
555 jest blisko tego, co mi potrzeba, przyjrzę się bardziej. Szkoda, że dużo zachodu jest z podłączeniem. Nie jestem pewien, czy jasno opisałem, więc jeszcze raz: mam przycisk filtrowany RC podłączony do mikrokontrolera. Chcę, żeby zamiast przejścia 1->0 było przejście 1->0->1. excray - któryś z AtMega, załatwienie programowe wymagałoby zrezygnowania...
Te makra działają w asemblerze od AVR Studio, używam go, odpowiednio oskryptowanego, w wine pod Linuksem... Co masz na myśli poprzez "czysty asembler" ? Przecież nie do tego temat się sprowadza, żeby klepać cyferka po cyferce, tylko mieć maksimum możliwości przy jak najlepszej przejrzystości kodu i małym koszcie czasowym. Spróbuj może z nawiasami, tak...
Witam, potrzebuję porady i sprawdzenia toku myślenia w następującym problemie: Potrzebuję wykonać program, który umożliwi sterowanie pot. cyfr. DS1267S spod atmegi16. Mój problem polega na doborze odpowiednich czasów trwania poszczególnych etapów transmisji. Wujek google nie znalazł żadnego rozwiązania problemu w języku C, a o takie mi chodzi, gdyż...
Zauważyłem to, jak już kliknąłem wyślij. Z tego co widzę, działamy na "sztucznym kodzie". Pozostały mi jednak dwie teorie. Mniej prawdopodobna mówi, że JTAG nie jest wyłączony. Bardziej prawdopodobna mówi, że to przerwanie nie jest wywoływane w trybie FastPWM. Polecam autorowi spróbować z przerwaniem od przepełnienia. Formalnie będzie to prawie to samo...
Opcja dowolnego podniesienia progu już zaktualizowana od kilku dni i parę innych przydatnych wodotrysków informacyjnych :) U mnie na dzień dzisiejszy po kilkudniowyvh obserwacjach przy 46 stopniach nie ma już nawet żaru w piecu - wypala się wszystko idealnie więc dorzucenie opału ...nic nie da. Podoba mi się jednak opcja mierzeniem czasu wygasania(!)...
Możesz spróbować napisać programową emulację UARTu, co w skrócie wygląda tak - bierzesz znak do wysłania, rozbijasz go na bity, dodajesz bity startu/stopu następnie w przerwaniach wysterowujesz dany pin 1 lub 0 w odpowiednim reżimie czasowym. Oczywiście instrukcja PRINT nie będzie działać.
Atmega8a nie dopisałem.
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Projekt napisany od zera w środowisku Arduino IDE. Pisanie w C++ z użyciem klas zwłaszcza w dużych projektach znacznie ułatwia dalsze utrzymanie i rozwijanie kodu, poprawia czytelność . Przeniosłem się pod Arduino IDE po dłuższej przerwie, wcześniej pisałem w Avr Studio 4. W Arduino IDE można doinstalować biblioteki bezpośredniej obsługi różnych procesorów...
żeby łatwiej było się obudzić, trzeba też wcześniej się wyspać. Otóż to. Kilka lat temu zainstalowałem sobie taśmę niebieskich led-ów, podświetlającą firanki od strony okna, zapalaną zwykłym wyłącznikiem czasowym. Na początku była to rewelacja i nowe życie, ale zauważyłem, że od pewnego czasu przestało pomagać. Kluczem jest to, że się po prostu nie...
Poszukuję osoby, która pomoże mi wykonać wirtualny procesor ATmega328p, który emuluje działanie transmiji poprzez USART zgodnie z protokołoem RS232. Potwierdzenie transjmisji ma być w oddzielnym pliku out.txt wraz ze stemplem czasowym. Wymagania: obsługa 'asynchronus normal mode", wiele "baund rate", wymagane testy poprawności działania przy 3 wybranych...
Przy wszechobecnych smartfonach z GPS projekt ma cel jedynie dydaktyczny. Konstrukcja Zasilanie z ogniwa Li-ion 18650, obliczony czas pracy dla ogniwa 3000mAh: 48 godz. Nie realizowałem funkcji ładowania ogniwa w urządzeniu. Całość sterowana jest jednym przyciskiem: - włączanie i wyłączanie zasilania, - wybudzenie wyświetlacza, - dodawanie markera (znacznik...
Witam, Problem wydaje się prosty. W przerwaniu timera wysyłasz dane do obu rejestrów jeden po drugim. Jeden z rejestrów (SR0) odpowiada za wybór diod w danej linii, drugi (SR1) za wybór linii. I teraz zobacz jak ten program się wykonuje: Przesyłasz dane do SR0 - dane linii pierwszej Przesyłasz dane do SR1 - numer linii pierwszej Odstęp czasowy. Przesyłasz...
Może jakiś mały mikrokontroler ATTINY13 do tego dioda IR i kwarc o odpowiedniej częstotliwości do twojego elementu odbiorczego. ATTINY13 pracuje na wewnętrznym oscylatorze a na podstawie dodatkowego kwarcu uzyskujesz sygnał o odpowiedniej częstotliwości. Plus tego rozwiązania jest taki że program do pilota nie powinien być skomplikowany całość będzie...
Ma pytanie dotyczące jak ustawić timer, żeby można było wykorzystać go do zliczania impulsów kodu RC-5 mam program zaczerpnięty z forum do jego zliczania ale on jest ustawiony z zewnętrznym kwarcem 16MHz i tam żeby to dobrze zliczało zgodnie z notą aplikacyjną Atmega16 używa się do tego preskalera poprzez ustawienie odpowiednio bitów CSS2 – 0...
Funkcja (w takiej ostatecznej formie jak przedstawiona przez Ciebie), wygląda na poprawną, tzn. powinna działać tak jak tego oczekujesz, chociaż sprawdzałem pobieżnie i głowy nie dam :D "Poprawność" rozumiem tu w sensie użytej sekwencji instrukcji. Przypuszczam, że kłopot może wynikać z zależności czasowych. Robisz dużo operacji na LCD. Być może użyte...
Hmm on niby jest na atmega16, a ja chcę to przerobić na atmega128...w ogole zauwazylem ze u mnie wyswietlanie na LCD jest uzaleznione od...opoznien czasowych. np tu tak jest...albo załóżmy że przed wyswietleniem jakiegoś napisu (całej procedury wyswietlania itd) dam opoznienie np 5ms to juz nie wyswietli, a jak w ogole nie dam albo dam jakieś 44us to...
Ja użyłem funkcji, o których pisałem poprzednio w tym wątku, tzn. _delay_us(double) i _delay_ms(double) z biblioteki avr-lib z pliku <util/delay.h> . Nie mierzyłem dokładnie czasów opóźnień, ale obsługa 1-wire działa mi ok. przy optymalizacji -o3, natomiast przy wyłączeniu ( -o0 ) coś jest nie tak. Na razie to mi wystarcza, gdy będę miał czas,...
Jeśli chodzi o mój przypadek to taktuję proca zegarem 8MHz. Jeśli dwa NOPy wystarczą to super, przynajmniej nie będę miał prawie zwłok czasowych, a mi na tym zależy. dzięki.
ATmega88 może działać do 20MHz. Zacząłem pisać taki miernik, nie dokończyłem, ale może dokończę. Piszę w ASM, który jest naprawdę prosty, po co sobie ograniczać możliwości baskupą. Takie krytyczne czasowo projekty to tylko w asm. Co do tego co napisałem, działa to z kwarcem 16384khz, bramkowanie co 0,5 i 10sek. Nie obsługuje jeszcze preskalerów, wynik...
Witam! Na początku zaznaczę że w dziedzinie programowania uC jestem nowy, jednak programowaniem na PC zajmuje się już prawie od 10 lat, świetnie orientuje się w asm, języku basic czy C, jednak jestem kompletnie zielonym elektronikiem. Aktualnie piszę w C (WinAVR) na Atmega8. Mój problem dotyczy eepromu CSI 24WC64, jako że nigdzie nie mogłem znaleść...
Witam! Mam drobne pytanko do osób obeznanych z prockami z serii Atmega(u mnie to uklad atmega128), a dokładniej rzecz ujmując chodzi mi o licznik (w sumie dla mnie dowolne czy 8 czy 16-to bitowy) pracujący w trybie porównywania. Na potrzebę układu jaki zbudowałem potrzebuję by licznik po zliczeniu (tj w moemncie zrownania wartosci licznika z wartoscia...
Witam Mam kilka pytań odnośnie projektowanego przezemnie urządzenia: 1. Schemat 1.Potrzebuję zasilić układ 5V,zewnętrzne źródło napięciowe to 12V, układ ma mieć zabezpieczenie odwrócenia polaryzacji ( ma działać przy dowolnym włożeniu masy i zasilania )- stąd mostek Gretza. Układ musi mieć zabezpieczenie przeciwprądowe (bezpiecznik na wejściu). Czy...
Mozesz zastosowac '51 z malym rezonatorem (jak chcesz bardziej niezawodne to dwie '51 realizujace to samo - jeden nadzoruje drugiego). Maly rezonator tzn. na niska czestotliwosc bo latwiej bedzie odliczyc te czasy. Bierz z oznaczeniem PI (Industrial) -40 do 85 °C. Do tego stabilizator do zasilania '51. No i syganły do '51 trza by dopasowac do 5V. W...
Moznaby sie pokusic o zrobienie na jakimś AVR. Załączanie jednego zródła? czy wielu? 500 załaczen 8 zródłeł wystarczy? Taką możliwosć widze na procesorku Atmega8. Moze tez byc 4000 na jednym wyjsciu to juz cały tydzien bedzie można symulować.
Jako, że od niedawna sam uczę się dopiero C, to proszę bardzo poniżej, najpierw kod do odbiornika RC5. Sprawdzony, krótki i odporny na zakłócenia oraz kody z innych pilotów - działa wyśmienicie i w ciekawy sposób wykorzystuje bit TOGGLE: // zmienne do obsługi kodów IR w standardzie RC5 volatile uint8_t address; // adres RC5 volatile uint8_t command;...
Witam, kod był tylko do testów i aktualnie w wolnej chwili zamierzam zająć się napisaniem nowych bibliotek. Wiem, że jest różnica pomiędzy delay_ms i delay_us ... znaczy, że są inaczej interpretowane dla tych samych wartości czasowych... np. delay_ms(0.1) i delay_us(100) nie dają tego samego odstępu czasowego ;) Kod napisany na podstawie dokumentacji...
Witam. Jestem w trakcie tworzenia programu do sterownika pieca miałowego. Sterownik oparty jest na układzie Atmega8, język BASCOM. Problemem jest wyświetlenie statusu wyjść urządzeń peryferyjnych i statusu MENU. Potrzebuję 8 diod sygnalizacyjnych do informowania aktualnego poziomu menu. Niestety liczba pinów układu jest nie wystarczająca i pomyślałem...
Zaraz , zaraz : w pierwszym poście napisałeś ze dane po i2c przesyłasz miedzy atmegami, w trzecim napisałeś ze do lcd. Czy do ldc również po i2c ? Jeżeli i2c jest tylko między procami, to powinno się dać. I2c realizujesz programowo (najlepiej w asemblerze) wykorzystując tylko zasady działania i2c, a nie obowiązują Cie restrykcje czasowe, program może...
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania impulsów zewnętrznych należy użyć nóżki T1, a nie T0,...
Napisałem w gcc mały programik odmierzający czas, ale z jakiegoś powodu gdy zmieniam częstotliwość zegara w pliku Makefile mój program odmierza czas zawsze tak samo. void Inicjalizacja(void) { TCCR0 =0x05; // clock source/1024 for T0 /0101 TIMSK = _BV(TOIE0); TCNT0 = 0 } ISR (TIMER0_OVF_vect) { tr2++; if (tr2>=14)...
Atmel daje darmowe narzędzie - AVRStudio. I to nie jest tylko kompilator ale IDE. Bez żadnych ograniczeń (typu długość kodu 2kB lub tylko na 30 dni) To narzędzie łatwo zintegrować z darmowym AVRGCC. Kompilator C też bez żadnych ograniczeń. Chyba to były pierwsze procesory dające się programować w układzie- ISP- choć tego nie jestem pewien (czy pierwsze)....
TXC informuje że transmisja jest kompletna i nie ma nic do wysłania ale w protokole KWP-2000 jest kilka zasadzek i zależności czasowych. osobiście pisałem taką transmisję ale w asemblerze.
Musisz mieć gdzieś błąd w programie. Jak sterujesz LCD'ka (w przerwaniu, w pętli)? Ja u siebie na biurku mam urządzenie na Atmedze 128, 7 urządzeń na RS485(odpytywane co 150ms) oraz dotykowy LCD graficzny 160x160px którego muszę odświeżać co 17ms (3kb danych), do tego tablice trezch rodzai czcionek .Całość zajmuje ~32kB i do 140kB to mam jeszcze daaaaaaaleko...co...
Witam forumowiczów, Sytuacja wygląda tak, że z jednostki nadrzędnej słane są ramki danych, Po każdej ramce jest szczelina czasowa tak aby nasza ATmega zdążyła odpowiedzieć, Mamy Atmega16 kwarc 16MHz i transmisje 57600 (w przybliżeniu), Gadamy przez RS485 tak, że między ramkami jeszcze przełączam linie bufora, Steruje równocześnie buforem wejścia i wyjścia...
Podstawową rzecz, którą robisz źle to nie czytasz kart katalogowych!! W nocie DS-a jak wół jest napisane, że wartości 11 bitów 6 i 7 oznaczają: "Do not load wiper value" Wywal te wielkie rezystory z portu komunikacji. Jeśli już muszą być to wystarczą 1k. Używanie sprzętowego SPI może być ryzykowne, bo łatwo się pomylić w konfiguracji, a i port jest...
Rozwiązałem już problem. W kodzie Atmega32 dodałem opóźnienie czasowe oraz zmieniłem adres i działa bez problemu uint8_t ret; TWI_start(); TWI_write(0x18); TWI_write('q'); TWI_stop(); TWI_start(); TWI_write(0x19); ret=TWI_read(Nack); TWI_stop(); do tego doszło jeszcze cykliczne odczytywanie...
1. Nie powinieneś mieć kondensatora z OSCI do Vdd? Powinienem, ale nie mam tak małych kondensatorów, najmniejszy jaki mam to 100nF, więc chyba lepiej jak nie dam żadnego, póki nie będę miał właściwego. Czytałem na forum jak ludzie nie stosują tych kondensatorów i wszystko chodzi, więc założyłem, że nie będę musiał ich stosować. Może niesłusznie. Jak...
Co 3.88us wywołujesz przerwanie od przepełnienia timera. A przetwarzanie ADC w pętli while trwa 0.12ms- czyli 120us. Czyli podczas tej pętli pojawi się wielokrotnie przerwanie od timera0. A jeśli się pojawi podczas sprawdzania warunków tej pętli to moga się dziać dziwne rzeczy. Jedna instrukcja przy 8Mhz trwa 0.125us. Czyli obsługa przerwania powinna...
Używam atmege8 i korzystam ze sprzetowego TWI. Czyli gdybym zasilił logikę i LCD z 5V nic złego nie powinno się stać? Ale jak sądze wtedy te kondensatory byłyby nie potrzebne, a do VLCD należałoby podać również 5V? edit: Podłączyłem zwykły wyświetlacz na HD44780 i wyświetlam zawartość rejestru TWSR. Po wysłaniu adresu mam kod 0x20- wysłano adres, nie...
Czy ja wiem, czy coś się poplątało. Korzystam tylko z AVR-CALC, i podpieram to pomiarem częstotliwości pracy przerwania (TOGGLE PORTx). Tak czy inaczej, preskaler 32 mam ustawiony, a wartość overflow ustawiona na 194 i otrzymuję 8kHz, to raz, a dwa, że przebieg pomierzony jest zgodny z założeniem fpróbkowana/fmierzona czyli tu będzie 8 punktów na okres...
Co do Twojego LCD to może masz jakiś nietypowy wyświetlacz i nie inicjuje sie prawidłowo i jest w trybie 1 linia?! Ale to moga byc Fuse i zła częstotliwość procesora. Ja używam tak ustawionych Fuse "Reading fuses .. 0xC7, 0x22 .. OK!" ale to jest 2MHz RC wewnętrzny i w programie zmień $crystal = 2000000 tak stabilniej działa nagistrala 1wire. Na 1MHz...
Doprowadziłem program do takiej postaci: [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 Config Timer0 = Timer , Prescale = 1 Enable Timer0 Enable Interrupts Enable Int0 Enable Int1 Stop Timer0 Timer0 = 0 Config...
No to jest oczywiste ale tutaj zastosowanie zamknięcia flagi przerwań w SREG na czas trwania przerwania jest raczej bardziej oczywiste ( :) ), tu nie leży problem w kodzie tylko w którymś miejscu z obsługą jeszcze jakiegokolwiek dodatkowego rejestru, muszę po prostu ogarnąć przerwanie, pracowałem nad normalnym kodem (o wiele większym bardziej rozbudowanym...
Widzę, że się kompletnie nie rozumiemy. Mnie nie interesuje to czy to są zniekształcenia liniowe, czy nielinowe, czy jakiekolwiek inne. Patrzę na to z punktu widzenia programu. Czyli moje ADC daje mi wyniki odpowiadające oscylogramowi dolnemu. Na ich podstawie chciałbym odtworzyć sygnał oryginalny, chociażby jego amplitudę w poszczególnych punktach...
Pamięci dają się spokojnie programować i czytać mikrokontrolerem ATMEGA. Bardzo szczegółowe dane na temat przebiegów nie są konieczne - wystarczy pamiętać, że podczas odczytu: CS=0, WE=1, OE = 0, a podczas zapisu: CS=0, WE=0, OE=1. Przy zapisie adres jest zatrzaskiwany na późniejszym z opadających zboczy (WE, CS), natomiast dane są zapisywane na wcześniejszym...
Pewnie działąjący układ można zrealizować na prostym fabrycznym sterowniku z wyświetlaczem (ok.400zł). Typu logo, meller Ge i inne. Czasy można ustawiać potencjometrem podpiętym do wejsć analogowych lub ustawiając przyciskamie na ekranie. Można też taniej zrobić to na jakiejś płytce ewaluacyjne z 3-ma przekaźnikami i Atmega8. Trochę więcej zabawy no...
Układ nadążny za słońcem- inaczej układ śledzący, jest rodzajem układu sterowania, który umożliwia automatyczne lub półautomatyczne wodzenie za Słońcem. Układy tego typu wykorzystuje się najczęściej w celu znacznego podniesienia wydajności baterii fotowoltaicznych lub kolektorów słonecznych. Podstawowym założeniem projektu jest realizacja układu nadążnego...
Hmm... Czyli jeżeli dobrze rozumiem to potrzebujesz aby układ załączał "coś" tak długo jak trzymasz przycisk + po puszczeniu jeszcze działa przez jakiś czas ? Proponuje atmega8.