... zgodnie z dokumentacja do Atmegi328 Tabela 15-5 mówi że wyzerowanie bitów CS12:0 powoduje zatrzymanie Timera. Rozumiem że to nie wystarcza w moim przypadku. Wystarczy, ale nie zerujesz bitów CS12:0 tym fragmentem programu. Podstawy C: http://mikrokontrolery.blogspot.com/2011...
Witam Zobacz na pierwszą odpowiedz: https://stackoverflow.com/questions/3704...
Witam ! Brak schematu powoduje zadawanie być może banalnych pytań: Czy podciągnąłeś SCL i SDA do +5V (4,7K) z doświadczeń wiem że brak tych rezystorów powoduje zatrzymanie programu. Powodzenia życzę. Stefan
Włączony JTAG? Tryb zgodność z 103?
Oj chyba jestem za cienki na takie programy myślałem że tu coś prosto idzie wymyśleć
Tak oczywiście ale człowiek chce czasem podejść do rozwiązania z innej strony. Czyli z d.... strony. Jak mam jakiś "doskonały" pomysł, to sobie myślę, że pewnie przede mną wiele mądrzejszych ludzi nad tym kombinowało i coś sensownego wykombinowała, wystarczy tylko poszukać jak to zrobili... A zrobili prosto i w miarę skutecznie - to się nazywa lockbity....
Przy instrukcji Input "odebranie znaku <CR> (kod 13) kończy wprowadzanie danych dla bieżącej zmiennej." A co jeśli znak <CR> nie zostanie nadany? Wtedy program stoi i czeka!
Czy po poprawieniu linijki z 'if' jak napisał dondu przycisk ci zadziałał? Napisz co ma program zrobić po doliczeniu do 14? Zatrzymać się? Liczyć od nowa od 0?
Witam, Jestem nowy w temacie bascom oraz atmega. W helpie znalazłem instrukcję wait, która powinna zatrzymać program na określony okres czasu {s}, u mnie nie robi nic, program leci dalej bez czekania nawet jeżeli wpiszę wait 1000. Pracuje na wewnętrznym generatorze. Czy należy gdzieś w bascomie cos dodatkowo zdefiniować?
http://obrazki.elektroda.pl/4134553500_1... Witam. Chciałem wam przedstawić mój najnowszy ukończony projekt jakim jest kostka LED 4x4x4. Niestety na forum jest mało takich projektów, a ja usilnie chciałem mieć taką kostkę, aby była bezpośrednio połączona z płytką. (bez plątaniny przewodów na płytce uniwersalnej). Trafiłem na stronę...
To muszę jeszcze lekko zmienić program w module gsm gdyż jeśli program wykryje że modem gsm nie odpowiada to będzie przeprowadzał sekwencję włączania telefonu ,czekania na pytanie o pin itp. i nie wyjdzie z tej procedury dopóki telefon nie zostanie poprawnie uruchomiony.Czyli program będzie zatrzymany niejako. Ale jak mówię sprawdzę wszystko jak naprawię...
Jest kilka możliwości. Po pierwsze procesor nie powinien się grzać, jeśli się grzeje to znaczy, że przekraczasz jego parametry, gdzieś masz zwarcie, albo czymś niepoprawnie sterujesz. Druga możliwość - BASCOM kiepsko obsługuje AVRy z tak dużą ilością pamięci FLASH, ale ten problem powinien pojawić się po przekroczeniu 128kB zajętości, co ciebie chyba...
Silnik ruszył:)Pięknie zmienia kierunek obrotów. Problem jest w regulacji obrotów, ponieważ są cały czas są stałe .Drugi problem jest w włączaniu/wyłączaniu silnika. Pomimo różnych zmian w programie nadal nie mogę go przyciskami włączyć i wyłączyć . Silnik cały czas chodzi i nie chce się zatrzymać.
Łatwiej byłoby wykorzystać wejście z przerwaniem. W programie ustawić w głównej pętli czy gdzieś sprawdzanie tego wejścia i jak np. przyjmie stan "0" to program usypia procesor i włącza przerwanie. Jak pojawi się "1" to procesor się obudzi. W ten sposób masz tą zaletę, że możesz dokładnie określić w którym momencie procesor ma się usypiać (zaraz po...
Diodę gaś tak jak ją zapalasz. [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 1000000 Config Portb.0 = Input Config Portb.1 = Input Config Portd.5 = Output Przycisk1 Alias Pinb.0 Dioda Alias Portd.5 Przycisk2 Alias Pinb.1 PORTB.0 = 1' to jest podciąganie do Vdd - działaj w tym celu na rejestrze 'PORTX lub PORTX.Y PORTB.1 = 1 Reset Dioda Do If Przycisk1...
Buźka mi się śmieje, bo ani razu się nie wysypało. Kilka razy zdejmowałem zasilanie i podłączałem po jakimś czasie, za każdym razem program ruszał. Na razie mam podłączone tylko cztery pierwsze klawisze i ostatni, bo gdzieś zawieruszyłem kabelki żeńsko-żeńskie, dlatego nie wpinał się w złącza arduino. Dziś pracowałem nad menu, ale nie potrafię wymyślić,...
Wykrycie stanu napięcia niskiego, zatrzymanie programu na 10 sekund. Właśnie tak zrobiłem. Ale to nie jest problemem. Albo TSOP wariuje albo kod jest zły, proszę o pomoc. Już sam nie wiem co robic... Przeciąłem kabelek od OUT'a TSOP'a, dioda nadal się świeciła. Odprowadziłem jeszcze jeden kabelek od masy zasilania i podłączyłem go pod wejście atmegi....
Witam Na początek to //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI DDRC =0b11111110; PORTC =0b11111101; skoro porty PC0(SCL) PC1(SDA) to wejścia TWI , ja bym je ustawił tak //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI // 1 -> wyjście // 0 -> wejście DDRC =0b11111100; // 1 -> z podciągnięciem do VCC (pull-up) // 0 ->...
Pierwsze co mi się rzuciło w oczy, to fakt, że gubisz większość przerwań timera, więc chyba nie można powiedzieć: do tej pory wszystko działa pięknie Być może nie jest to przyczyna tego, że program przestaje działać, ale na pewno nie "działa pięknie". owszem timer zostaje zatrzymany i sygnał zegarowy przestaje być generowany przy ustawieniu mniejszej...
Witam. Mam kod, w którym Atmega ma wysłać na kompa dane dopiero wtedy jak komp wyśle ramkę 0b01111111. Zatrzymanie wystąpi po wysłaniu z kompa 0b00000000 (stan początkowy Atmegi, nic nie wysyła). Komenda 0b1xxxxxxx oznacza odczyt konkretnego urządzenia. Każda przesłana komenda ustawia odpowiednią flagę, która sygnalizuje działanie. Odbiór z kompa (Rx)...
Obraz widzę, ale ekran bardzo miga. W związku z tym mam pytanie. Czy ATMEGA nie wydoli żeby obraz nie migotał? Mam dwie hipotezy: 1. wyświetlacz wymaga szybszego taktowania i jak jest za wolno to jest taki objaw 2. dokonujesz w programie ciągłego uaktualniania obrazu, z za małą częstotliwością taktowania, spróbuj wysyłać obraz tylko jeśli coś się w...
Poczyniłem programik w C do zliczania impulsów z zewn. wejścia T1. Program zlicza impulsy do T1 w czasie ustalanym przez T0. Sterowanie jest tak ustawione że pierwsze odliczanie wpisywane jest do F1, drugie do F2, trzecie do F3 i tak w kółko. Na czas wyświetlania na LCD wyłączyłem przerwania. Wszystko działa ale nie do końca prawidłowo. Problem polega...
Ależ piękny by był to temat gdyby taki kod się tu pojawił i nie nie chodzi o cały program tylko jego podstawowe składnie. Pomyślnie tylko jak jakiś początkujący wpisuje w wyszukiwarkę " Liczenie milisekund" i to pierwszy temat który otwiera i ma piękny kod na tacy zaraz pod pytaniem bez czytania minioną postów... Itd.. Tak wiem że należy odpalić timer...
Witam skonfigurowałem wstępnie adxl345, jednak wyniki są błędne. Czy ruszam akcelerometrem czy ie pokazuje jakieś wartości na wyświetlaczu lcd. Mój sprzęt to: Atmega16A 1Mhz (testowane również na 8Mhz). Wyświetlacz LCD, ADXL345. W programie część na pewno jest dobrze napisana, gdyż jak zmienię szybkość SPI to na wyświetlaczu szybciej wyświetlają się...
Witam! Udało mi sie uruchomić modułu RFM12B. Pózniej spróbowałem odpalić je za pomocą kodu znalezionego na forum, co sie nie udało. Po powrocie do starego kodu układy już nie działają. Program zacina sie w funkcji odbierajacej bajt danych. Stad mam kilka pytań: Możliwe jest by zły kod mógł uszkodzić transiver? W jaki prosty sposób można sprawdzić czy...
Witam wszystkich. Potrzebuję program do ATmega działający jak czujnik obrotów. Program nie musi zliczać obrotów tylko informować czy w ogóle się obraca. Zastosowany jest do tego fototranzystor i koło z otworami . Gdy koło się obraca fototranzystor powoduje szpilki napięciowe które odczytuje układ RC a ten z kolei informuje czy koło jest w ruchu czy...
Wiam wszystkich. Moj problem polega a tym ze chce zbudowac miekki start i miekkie hamowanie silnika krokowgo. Mam sterownik silnika ktorego steruje atmegą 128 za pomoca impulsow ( 1impuls=1krok) :idea: I teraz tak zalozmy ze mam zrobic silnikiem 1000 krokow. I chcialbym zeby np. przez pierwsze 100krokow sie rozpedzal do swojej jakiejs predkosci ktora...
Witam. Posiadam następujący problem, być może, ktoś już to przerabiał i jest w stanie mnie nakierować, gdzie doszukiwać się błędów/poprawek. ATMEGA 128, po I2C połączone PCF8574 oraz DS1307. Na liniach I2C podłączone rezystory podciągające 4,7kΩ. Każdy układ z osobna działa poprawnie, natomiast w momencie kiedy są oba podłączone i następuje próba...
Napotkanie Inkey() powoduje zatrzymanie pracy programu aż do odczytu znaku z bufora UART.
Tworząc prosty układ z wykorzystaniem ATMEGA-32 , który miał rejestrować na karcie SD datę i czas wejścia/wyjścia do/z mieszkania, zatrzymałem się na oprogramowaniu zegara PCF8563 - brak "lekkostrawnej" biblioteki. Dla zegara PCF8583 i iic istnieje przejrzysta biblioteka napisana przez Roberta Krysztofa, która posłużyła mi do stworzenia analogicznej...
Ten temat mnie zaskakuje, najpierw okazuje się, że ATmega Arduino i przetwornik 2R2 osiąga więcej sampli na sekundę niż STM z wbudowanym DAC 1MSPS, a później pojawia się kolejny projekt na STM+TFT. (at)piotrva czym się różni gitlab od github? Co do obsługi LCD na HD44780, zatrzymanie programu piszącego do LCD (przez przerwanie) nie powinno zakłócić...
To ja może dokładniej opiszę objawy: Program ma za zadanie zapisywać w tablicy siedmio elementowej wartości odebrane z wejść przetwornika AD ADC0...ADC6. Wartości mają być uśrednione (10 pomiarów). W programie wykorzystywane jest przerwanie od końca konwersji. //dekalracje zmiennych globalnych volatile unsigned char czujnik_nr, pomiar_nr, czujnik_max=7;...
program dla atmega 128: ; ========================================... rcall czekam_50ms ; powoduje skok do programu o podanej nazwie a po skończeniu powrót (polecenie ret) ; ========================================... Czekam_50ms: ldi R16, 0b00011000 out TIFR, R16 ; zerujemy TIFR ldi R16, 0b10001000 out OCR1AL, R16 ; OCRxn przechowuje nastawę...
Udało mi sie pójść krok dalej, robot przestał wariować, ale kiedy próbuje wysłać mu coś przez RSa, nic się nie dzieje. Ogólnie kiedy włączam robota zapala się lampka przy RS, która odpowiada wysyłanie, a kiedy podłączam kabel do RSa to zapala się też lampka od odbioru. Kod z robota: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h>...
Witam. Niestety nie pomogło.. Czekam na dalsze sugestie Prawdopodobnie to odbiornik RRQ3 433Mhz daje zbyt dużo śmieci na wyjściu i dlatego procesor "mysli" ze te dane są rs232 i dlatego procesor staje i nic nie wyświetlacz na wyświetlaczu("w tle" czas idzie-gdy załącze ponownie zasilanie nadajnika wszystko wraca do normy) moze ktos sie z tym juz spotkal?...
Witam Potrzebuję zbudować zegar z dużymi wyświetlaczami do odmierzania czasu jak w stoperze. Problem polega na dokładności pomiaru. 00.00.00 ( minuty, sekundy, milisekundy ) Potrzebuję aby można go było uruchomić za pomocą przycisku i zatrzymać za pomocą tego samego przycisku. Drugim przyciskiem kasowanie wyświetlanego wyniku. ( Start stopera - Stop...
http://obrazki.elektroda.pl/3185739500_1... Witam. Przedstawiam dziś kolejne urządzenie z serii: Atmega8 + LCD z nokii 3310. Jest to graficzny rejestrator napięć oparty na mikrokontrolerze ATMEGA8A - AU i jego wewnętrznym Przetworniku A/C. Jest to coś ala oscyloskop cyfrowy, jednak do oscyloskopu sporo mu brakuje głównie ze względu na ograniczenia...
Hejka Podświetlanie już działa na zadany czas ;-) faktycznie znalazłem błąd w kodzie. Jednak teraz gdy załącze podświetlanie i program ma się wykonywać przez dany czas, to nie działa mi pomiar temp z DS18B20. Jak usunę pomiar, to program działa normalnie, wykonuje wszystkie podprogramy. Doszedłem do tego, że przerwanie powoduje, że komenda 1Wreset nie...
Niestety to jednak nie w tym tkwi problem. Zmieniłem troszkę program dlatego opisze jeszcze raz o co chodzi ;) Usunąłem wszystkie błędy programu i o dziwo komunikacja jako tako działa, ale oczywiście jest jedno "ale" z którym jakoś nie potrafię sobie poradzić i nie wiem dlaczego tak się dzieje. ATmega16 (do niej podłączony jest klawisz i LCD) mierzy...
Witam Chodzi o to, że jest ATMEGA z wbudowanym zegarem RTC. Po odpowiednej konfiguracji i uruchomie wszystko jest OK, zegar pracuje. Jednak zegar ten ma być wykorzystywany do pomiaru krótkich odcinków czasu. Czyli odmierza ustawiony czas i jest blokowany poprzez STOP TIMER2 (w Bascomie). Po naciśnięciu klawisza start układ wg założeń powinien uruchomić...
Witam, czy ktoś mógłby mi w dość przyzwoity sposób wyjaśnić, w jakim miejscu w programie zawsze (bądź najczęściej) kończy się funkcja zatrzymująca STOP (jak ona wygląda). Jakie istnieją sposoby na zatrzymanie programu. Czy można uznać słowo kluczowe break w pętli jako funkcję zatrzymującą? Prosiłabym o ewentualny krótki kod, który mógłby mi zrozumieć...
No więc sprawa wygląda tak, że zastosowałem finalnie bramkę żeby odwrócić przebiegi, ale wcześniej długo kombinowałem jak to zrobić programowo... Na początku próbowałem z FOCnx bez rezultatu, procesor ignorował całkowicie ten bit, potem kombinowałem ze zmianą wartości rejestru OCR1B i wtedy wpisując do niego wartość 1 udało się odwrócić przebieg o 180°...
1) Ale zauważ że ten Bitwait nie zawiesi programu. On przecież czeka na linii do której jest podpięty czujnik IR TSOPxxxx. Bez nośnej 36kHz program natychmiast wyjdzie z Bitwaita. Żeby go zawiesić trzeba by nadawać IR w nieskończoność. Jakakolwiek transmisja ma to do siebie że wcześniej czy później da stan wysoki, a w przypadku pilota będzie to max...
Mirekk36 Co do działania samego programu to trafiłeś w sedno:) Na INT0 ma podawaną szpilkę z detektora zera sieci. To przerwanie ustawia wartość w Timer0 i uruchamia go, a po dotarciu do jego przerwania wykonuje się ten kawałek kodu: Triac: 'program przerwania Timer0 Stop Timer0 'zatrzymanie Timer0 Portb.2 = 1 'wystawienie sygnału na moc3022 Waitus...
Witam, Ostatnio zainteresowała mnie obsługa i programowanie mikrokontrolera atmega8. Chciałem zaprojektować zwykły prosty układ który uruchomi silniczek i po wciśnięciu przycisku silnik się zatrzyma i uruchomi się drugi. silniki to zwykłe silniczki po zabawkach ( styki + i -).Problem wytworzył się gdy po napisaniu programu i zamontowaniu atmegi na płytkę...
Niestety nadal w programie jest błąd. Ta moja wersja z krótszym buforem też się zawiesza. Jak bufor był krótszy i zaczynał się od 0 i szedł do 31 to zawieszanie następowało tak jak normalnie. U mnie po 67 sekundach. Czyli ta BASCOMowa zmienna siedzi gdzieś na początku bufora. Przesunąłem wykorzystywaną cześć bufora do indexów 128…159 i zawieszanie...
Owszem że chcę słuchać kolegi janbernat`a :) bo chcę się nauczyć, wczoraj i dziś próbowałem trochę poznać tajniki przerywań, a dokładniej TIMER0, jednakże nie za bardzo to rozumiem. Albo tak naprawdę nie wiem jak ma wyglądać konstrukcja programu żeby to chodziło. Czy coś takiego w uproszczeniu byłoby dobrym rozwiązaniem? (proszę się nie śmiać bo naprawdęnie...
Kilka postów wcześniej napisałem jak to zrobić , coś wydaje mi się że zastosowałeś układ którego działania nie rozumiesz , ale dobra jeszcze raz : wyjmij atmegę z podstawki praktycznie pozostanie Ci L298 plus stabilizator 7805 połącz wejścia IN1 , IN2 , IN 3 , IN 4 do masy GND połącz wejścia ENABLE_A , ENABLE_B do masy GND podaj napięcie zasilania ,...
Zmagam się z odczytaniem czasu układu PCF8583. Napisałem krótki kod na podstawie instrukcji napisanych w manualu Atmegi, który ma odczytać wyłącznie wartość sekund. Problem jaki się pojawił to zatrzymanie programu na funkcji oczekiwania odbioru flagi przerwania po zakończeniu transmisji instrukcji startu magistrali TWI: [syntax=c]while (!(TWCR &...
Witam Jestem w trakcie projektowania układu sterowania silnikiem DC o małej mocy (5 V). Ma być to model pełnowymiarowego urządzenia. W pierwszej kolejności zbudowałem prototyp na płytce stykowej z użyciem Arduino Uno R3. Program został przetestowany i wszystko działało bez zarzutu. Zaprogramowałem więc 'goły' mikrokontroler ATmega 328P i zbudowałem...
Sorry, że wam się wtrące ale też pracuje nad komputerkiem dla Vectry B Silnik na wtrysku paliwa więc wysarczy zmierzyć czas otwarcia wtryskiwacza i tu moje pytanko. Jak najlepiej odmierzyć czas otwarcia wtryskiwacza oraz ilość wtrysków na jednostke czasu? Wtryskiwacz jest sterowany masą wiec spoko można użyć przerwań z końcówki INT1 do wykrycia otwarcia...
Witam, Mam pewien problem powiazany z UARTem pod atmega8l... Otoz mam pewnien program ktory pieknie dziala pod attiny2313(UART sprawny, komunikacja rs232<=>pc tez dziala dobrze). Problem narodzil sie, gdy chcialem przeniesc ten program na atmege8l... Podejrzewam, ze problem lezy we flagach... Nie znam sie jeszcze na tyle dobrze na C, zeby problem...
http://obrazki.elektroda.pl/1347637100_1... Witam. Przedstawiam dziś drugą, ulepszoną i bardziej funkcjonalną wersję przenośnego oscyloskopu cyfrowego. Głównym założeniem było zwiększenie zakresu częstotliwości w porównaniu do pierwszej wersji oraz jak zwykle: jak najtańszy koszt. Ponadto chciałem użyć w miarę duży ale tani kolorowy...
Czyli jednak się da, Tranzystory NPN BC414 100mA 32 szt. Tranzystory PNP 2SA1359 3A 12 szt. Na razie każdy LED wysterowany na 14mA co mi daje możliwość zasilania nawet z USB poprzez programator i nie muszę się martwić o zatrzymanie programu i upalenie linijki. Jak wszystko zrobię poprawnie i linia nie będzie się zapalać na dłużej niż na 1/12 ms to wysteruje...
Witam W prockach dopiero raczkuje. Robię obrotomierz do samochodu (choć można zastosować to wszedzie). Oparłem to na atmega16 bo taki akurat teraz mam, ale docelowo ma byc na 2312.Na razie jest wszystko w fazie testowej na biurku, ale założenia są takie: na kole zamachowym umieszczam siakiś czujnik, podaje to na układ formowania impulsu, z którego będę...
Oki pomylilem sie chodzilo mi o pin WP czyli write protect. Jest tez jeden problem otoz programem do zczytywania adresow magistrali odczytywal mi kilka adresow a nie jeden jak pin A2 wisial w powietrzu a po podpieciu go do plusa adres zmienial sie na jeden 168. Wczesniej zczytal mi adresy 160, 162, 164, 166, jednak adres 162 gryzlby sie z adresem PCF8583....
Tylko, że podmieniane wartości nie są stałe. O to chodzi, że z dostępnych komunikatów w tablicy chcę odtworzyć dwa dowolne, których zmienne są ustalane podczas pracy programu. A tobie chodzi o to, że Dlugosc_drugiego_komunikatu jest stała, tak? Dlatego tak kombinuję, bo chcę skrócić maksymalnie funkcję z przerwania, żeby się nie przepełniła. ISR(TIMER1_COMPA_vect)...
Chodzi o Atmega16 w języku C. Zainstalowałem najnowszą wersję WinAVR i AVR Studio. Rozpoczynam przygosę z AVR. #include <avr/io.h> //#include <util/delay.h> #include <stdlib.h> #include <avr/interrupt.h> int main() { unsigned char P; DDRC = 0xFF; PORTB = 0x00; DDRB = 0x00; // Jakas poczatkowa wartosc - wartosc 10000000b...
Witam Nie wiem czy w dobrym dziale dałem ten temat, jeśli nie to z góry przepraszam. Jakiś czas temu zrobiłem (chyba ze dwa lata temu) sterownik do pieca na ATmega16, ma wszystkie funkcje jakie sterownik powinien posiadać (sterowanie obrotami dmuchawy itd.) Problem jaki się pojawia to w zasadzie druga awaria, polegająca na uszkodzeniu (najprawdopodobniej...
https://obrazki.elektroda.pl/2611358400_... Opisany poniżej układ to realizacja pomysłu na zagospodarowanie „modułów Arduino”, zakupionych często przy okazji, bez sprecyzowanego celu, oraz innych „przydasiów”. Na początku miał to być tylko mały pojazd sterowany radiowo. W miarę czasu przybywało pomysłów: dodano...
Dzięki :) w takim razie teraz proszę o sprawdzenie programu, wg mnie jest dobry, ale jeśli chodzi o symulacje no to ekhm... nie uznaje komendy "wait" więc nie działa na symulacji tak jak powinno :P a atmega do mnie dopiero jedzie :) Opis jest chyba zbędny, wszystko z programu można wyczytać, ale jak coś to pytać :) $sim Config Portd = Output Config...
Uczę się obsługi AVR i zatrzymałem się przy licznikach. Mam taki oto kod: licznik - w tym przypadku używam modulo. Wszystko niby działa, aczkolwiek zauważyłem, że dioda zapala się i gaśnie "na dwa kroki" - zapala się lekko, a po kolejnym przerwaniu (tak mi się wydaje), świeci pełnym światłem. Tak samo wygląda gaszenie. Podmieniając modulo na zwykłe...
Witam, Chcę dokonać pomiaru odległości ultradźwiękami. Najpierw program wysterowuje nadajnik ultradźwiękowy falą prostokątną 40kHz (timer0). W tym czasie rusza też timer1 mierzący czas do odebrania sygnału przez odbiornik. Po pewnej chwili (gdy timer1 osiągnie wartość wpisaną do rejestru OCR1AL) wyłączam generację prostokąta (zatrzymuje timer0). I teraz...
Witam! Mam problem z zamkiem szyfrowym. Mam taki kod: [syntax=cpp]/* KURS AVR-GCC cz.4 Zamek na szyfr (schemat i opis działania w artykule) układ atmega16 (1MHz) */ /**** PLIKI NAGŁÓWKOWE ****/ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> /**** DEFINICJE FUNKCJI ****/ /* Inicjalizacja i konfiguracja sprzętu */ void...
Tak ale przy "wiekszej zlozonosci" programu robi sie pewien misz-masz. A może raczej struktura programu do której nie jestem przyzwyczajony ;) Czegoś na "styl" drzewa wolał bym uniknąć. Może zbyt na siłę usiłuję przenieść przyzwyczajenia z C na Atmegach na pokład ESP8266 NodeMCU i Lua. Doskonale wiem o tym, że dalszą część programu wstawić w miejsce...
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:...
Twój program - po poprawkach - działa :) #include <avr/io.h> #define F_CPU 16000000UL #define _0_0125ms ( ( 0.0125 * ( F_CPU / 8000UL ) ) - 1 ) //polowa okresu 40kHz int main(void) { DDRB|=(1<<3); // ustawienie portu PB3 (OC2) jako wyjscie TCCR2|=(1<<CS21)|(1<...
Właśnie i tego się bałem ze jak wcisnę przycisk i go trzymam to przełanczaja sie kolejne programy Tak to wlasnie jest gdy increamentacja lub decr. zmiennej jest umieszczona w petli 'do...loop' i jest warunkowana poziomem na okreslonym wejsciu. Za kazdym "obrotem' petli zawarte w niej polecenia sa bezblednie wykonywane, przedzielone ustawionymi czasemi...
Męczę się już z tym trochę i mimo prób znalezienia rozwiązania - porażka. Układ ma być niby nic specjalnego : - sterownik jakiegoś tam urządzenia, - oparty na ATMega8, - ma sterować głównie przekaźnikami, które będą coś tam załączały (niby proste dwa stany włącz/wyłącz) według schematu : http://obrazki.elektroda.net/0_124798921... - wyświetlacz...
Witam ! Wykorzystuje kilkanaście procesorów Atmega 8, 16 i 32 współpracujących razem. Wymianiają pomiędzy sobą dane za pomocą jednego z nich, który wywołuje przerwanie INT w kolejnych procesorach i pobiera lub wysyła dane przez ten pin. To taka prosta trasmija szeregowa. Po odebraniu danych odwracają się role pinów w jednym i drugim procesorze Input...
Kolego tmf, dziekuję za rady. zbieram po prostu opinię. Natomiast odpowiedź że są szybsze procki to ostania rzecz której się spodziewałem. Wiem że to nie miejsce i czas bo dyskusje o tym co lepsze toczą się tutaj od wieków i toczyć się będą dalej. Ale ostatnio robiłem przymiarkę do jakiegoś ARM-a i poległem we własnych rozwarzaniach. Bo jak trafiłem...
Próbuję stworzyć sterownik do bramy dwuskrzydłowej. Układ opiera się o Atmegę 16. Na sucho wszystko działa jednak po podłączeniu silnika Atmega zaczyna działać sobie, tzn zachowuje się tak jakby na zamianę otwierać i zamykać, a więc uruchamia silnik, jak już rozpędzi to go hamuje, zmienia kierunek i w drugą stronę i tak w koło (start i zatrzymanie...
witam, potrzebuję porady z dość mało skomplikowanym programem. procek atmega8 , wyświelacz 7 segmentowy led. Program ma na celu wyświetlać na wyświetlaczu led cały czas zmienną x, która na po starcie programu ma wartość stałą np liczbę 2 a następnie jeśli odbierze inną wartość via uart (poleceniem inputbin? ) to przypisać do zmiennej x i oczywiście...
Może to pomoże: http://www.elektroda.pl/rtvforum/downloa...
Wszystko to pięknie, ale zapomniałem o jednej rzeczy. Otóż teraz, kiedy testuję tą transmisję, to pokazana obsługa Timer1 nie jest wykonywana. Jak widać, w programie jest "case" i w zależności od sytuacji albo przerwanie wygląda jak w listingu (czyli z obsługą ADC), albo - i tak jest w tej chwili - przerwanie nie robi nic. Znaczy jest ; [syntax=vbnet]Timer1_vector2:...
http://obrazki.elektroda.pl/7208083000_1... Witam Od dawna przymierzałem się do zbudowania zegara nixie na sześciu lampach. W internecie jest sporo takich projektów, jednak większość z nich nie odpowiadała moim założeniom. Postanowiłem więc zaprojektować i wykonać zegar od podstaw wykorzystując podzespoły, które miałem pod ręką. Założenia...
Dzięki jack63. Rzeczywiście chciałem przekładnik prądowy podłączyć do ADC Atmega8 lub Arduino według schematu: [url=https://openenergymonitor.org/forum... Do tego dorobić detekcję przejścia przez 0 napięcia (to jest bardzo proste). Atmega ma możliwość samplowania z prędkością ponad 10k sampli na sekundę, zatem pomiar prądu byłby...
Użyj jakiegoś timera i przerwania, powiedzmy TIMER0. Policzmy trochę. Zakładam zegar 8Mhz. Jezeli uzyjemy preskalera 256 to czas co jaki zostanie wywołane to przerwanie to 256*256/8000000=0,008. Ilość taktów co jakie zostanie wywołane przerwanie to 256*256=65536 (pierwsze 256 wynika z tego, ze licznik jest 8 bitowy drugie to preskaler) Żeby odliczyć...
Tak samo. Komunikacja z telefonem komórkowym przez UART sprzętowy ATMEGI8 o szybkości dostowowanej do S35i czyli 19200. Odbiornik GPS podłączony jest poprzez UART programowy o szybkości 4800 (bo ATMEGA ma tylko jeden sprzętowy). Wszystko działa tak: 1 wybieram nr telefonu podpiętego do systemu. 2 system automatycznie kończy połączenie, więc wiem że...
Witam, analizator zobaczył tylko ja specjalnie to zwęziłem żeby było widać zarys całego przebiegu,. Teraz tez już wiem, że pomysł stosowania przerzutnika D jest raczej bezcelowy. Bo i tak w programie trzeba sprawdzać stan na pinie kierunku. Oczywiście najlepszym rozwiązaniem jest zastosowanie bramek z histerezą. Jest jednak jeszcze druga kwestia, a...
Witam was, mam takie pytanie nawet kilka, są one spowodowane tym, że chce poukładać wiedzę jaką zdobyłem i zdobywam. 1. Przerwania ADC Zakładając, że przerwania mam uruchomione wpis do rejestru ADIE. To jak one działają Przerwanie uruchamia się po zakończeniu pomiaru i tu pytanie czy to jest jednoznaczne z zakończeniem konwersji ? Widziałem gdzieś kod...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
Dzięki wszystkim za opinie. Oddałem dziś projekt został oceniony na 5;] Dokonałem kilku zmian w programie więc wrzucam nową wersję: http://obrazki.elektroda.pl/8149391200_1... Jeśli już eliminujesz drgania styków programowo i w dodatku z użyciem timera, to mogłeś się pokusić o tak samo zrealizowane opóźnienia. Mnóstwo pamięci pożera...
Możesz napisać coś więcej o samej przetwornicy od strony programowej? W jaki sposób jest powiązany pomiar napięcia ze sterowaniem mosfetem? Regulujesz wypełnieniem PWM aby zmienić napięcie wyjściowe. W przetwornicy podwyższającej (boost, step-up) napięcie wyjściowe jest ściśle powiązane z wypełnieniem. Do wykonanie przetwornicy sterowanej prze procesor...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Musisz zmienić strukturę programu. Makra typu "loop_until_bit_is_clear" powodują zatrzymanie programu w "martwym punkcie". Gdyby program miał jeszcze do wykonania inne równoległe operacje , mógłby ich nie wykonać nigdy. Określ jeszcze raz jak ma działać twój program: - kiedy ma się zapalać/gasić dioda1, a kiedy dioda2? - czy przyciski W1 i W2 są do...
http://obrazki.elektroda.pl/3570551600_1... 4 lata temu zbudowałem sterownik, który do dzisiaj działa bezawaryjnie. Cały czas brakowało w nim jednak wielu funkcji. Wówczas programowałem w Basicu, ale teraz programuję wyłącznie w CC (AVR-GCC). :idea: Nadszedł czas na zmianę na konstrukcję w pełni elastyczną, którą można konfigurować,...
Witam. Napisałem program sterujący pracą silnika prądu stałego do którego podpięty jest enkoder inkrementalny (najważniejsze części programu poniżej). Mój problem polega na tym, że gdy mikrokontroler zaczyna wykonywać program ruch_osi_ ma 2 możliwości: czekać określony czas, jechać do określonej pozycji. Część programu odpowiedzialna za postój i przerwanie...
Układ ma odmierzać czas pracy przekaźnika, sygnalizować... i działa No więc... wykonałem to jak do tej pory z Waszą pomocą tak; [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define LEDR (1<<PD2) #define LEDY (1<<PD1) #define PRZEKAZNIK (1<<PC0) #define PRZYCISK (1<<PC1) #define...
Witajcie, jest to ulepszona pod każdym względem wersja mojej pierwszej machiny Sumo Challenge 2011 , w których brałem udział (zająłem wtedy przedostatnie miejsce :D). Ta sytuacja bardzo zmotywowała mnie do stworzenia czegoś szybszego, zwinniejszego. Tak powstał MacLiner 2.0 . Chciałbym serdecznie podziękować użytkownikowi Sabre , dzięki któremu mogłem...
Po podłączeniu rezonatora: Spróbuj w obsłudze zatrzymać timer przed jego załadowaniem, następnie uruchomić go po załadowaniu. W symulatorze Basom jest możliwość określenia ile cykli zajmuje wykonanie rozkazów wykonujących dane linie programu. Warto skorzystać z tego narzędzia aby skorygować wartość ładowaną do licznika. Tzn sprawdzić ile cyklów ucieka...
http://obrazki.elektroda.pl/2954571700_1... Davide Gironi skonstruował automatyczną nawijarkę do przystawek gitarowych. Jeśli ktokolwiek z Was wykonywał kiedyś taki pick-up, to wie, jak trudne i jednocześnie, jak ważne jest dobre nawinięcie jego uzwojenia. Zaprezentowana nawijarka CNC pozwala istotnie uprościć ten proces. Układ sterowany...
Witam. Chciałbym zrobić sterownik do takiego silnika , wydaje mi się że jest to silnik BLDC (prądu stałego z magnesami trwałymi) jednak można go sterować jak zwykły krokowy(bo już próbowałem). Jednak mam problem układ który poniżej przedstawiam nie chce ziałać poprawnie tzn silnik się nie kręci bez wyraźnego powodu. Czy mógłby ktoś wyjaśnić mi dlaczego...
Bo jak programujesz 1000 szt to robisz to kilka razy szybciej. Jeśli programuję takie ilości to zamawiam preprogramowane elementy, lub programuję EEPROM przed wlutowaniem. Przecież gdyby to miał robić MCU to musiałbym mieć program, który po pierwszym uruchomieniu jest zbędny. Zresztą i tak zostaje mi programowanie 1000 MCU. tmf napisał: A jakie to...
Mam mały projekt do zrobienia, którego głównym celem jest po naciśnięciu przycisku uruchomić sekwencję sterującą serwomechanizmem, a na koniec włączyć buzzer. Wygooglowałem tutoriala z gotowym już kodem, który zacząłem dostosowywać do moich wymogów, lecz napotkałem małe przeszkody. Może na początek kod, który już mam: http://obrazki.elektroda.pl/4621961000_1...
Witam Ponownie, Problem mam z prawidłowym zaimplementowaniem gotowej biblioteki obsługi dotyku na wyświetlaczu 2,4 " . A mianowicie ustaliłem trzy obszary dotyku równo w odstępach po długości ekranu ale nie do końca po szerokości i jeśli mój palec dotknie jednego z nich w tym miejscu pojawi się zielony prostokąt. Wszystko było fajnie jak był tylko skrajny...
Jestem początkujący w dziedzinie programowania Atmelków. Mam zamiar zrobić licznik impulsów , który w pierwszej linii wyświetlacza LCD 2*16 , będzie wyświetlał ilość impulsów , zaś w drugiej ma pokazywać ilość obrotów na minutę. Generalnie ma to rejestrować przebiegi wolnozmienne ok 1Hz nawet ciut mniej. Zaczerpnąłem kawałek kodu oczywiście z netu ,...
Zalegający śnieg na dachu, o ile jest go dużo, potrafi wyrządzić poważne szkody. Można tu wymienić zrywanie rynien, spadanie dużych bloków oblodzonego śniegu na podjazdy garażowe, parkingi, itp. W celu ochrony przed takimi wypadkami stosuje się różnego rodzaju zabezpieczenia przeciwśniegowe w postaci rur, barier, płotków. Ich głównym zadaniem jest zatrzymanie...
Pisząc o sekcjach INIT miałem na myśli to co standardowo robi kompilator języka C a nie bootloader. A skoro bootloader pisany był w C to musi zawierać takie sekcje ;) To nie jest żaden standard C, tylko sposób działania avr-libc i avr-gcc. No to już tylko takie czepianie się słowek, i nie ma to akurat tutaj wielkiego znaczenia, ale oczywiście tak,...
Witam forumowiczów, Swego czasu mojej znajomej zainstalowano bramę przesuwną z napędem. Na pytanie o opcję częściowego otwierania, czyli tzw. opcję furtki powiedzieli, że się nie da. . . . . Hłe, hłe nie da :) Pomyslałem, przeanalizowałem i zrobiłem. Działa bezbłędnie. Teraz znowu powtórka z rozrywki. Szwagier postanowił zmienić stary, wysłużony i niestety...
zatrzymanie programu bascom zatrzymanie programu prania odczyt programu atmega
przetwornik własnej roboty somfy piloty szybka transformata fouriera
Schemat prostownika z tyrystorami T25, 12V Schemat prostownika 12V z tyrystorami T25