Ustaw znacznik gotowości w jakimś nieużywanym peryferialu albo załaduj timer wartością sprzed końca okresu i go włącz.
I sobie nie poradzisz, bo ten typ tak ma, można zmienić tryb generowania PWM i wtedy nie będziesz miał 100% wypełnienia, ale za to będzie 0%. Potrzebujesz mieć bez szpilek - skorzystaj z XMEGA - to tańszy niż ATMega644 AVR i ma bardziej elastyczny timer.
Witam. Trochę inny procek ATmega644 [syntax=c] TCCR1B |= (1 << WGM12); // Mode 4, CTC on OCR1A TIMSK1 |= (1 << OCIE1A); //Set interrupt on compare match TCCR1B |= (1 << CS12) | (1 << CS10); // set prescaler to 1024 and start the timer| (1 << CS11);// OCR1A = 976*8; //wartość do której zlicza licznik [/syntax]
Config rc5 = Pinx.y, Timer=2
Dla ćwiczeń - jak najbardziej. Edit: Edytowałeś post więc dodam: Jeśli musisz oszczędzić piny PWM lub timery do innych celów, to oczywiście rób PWM programowo. Ale wtedy musisz zadbać, by każde przerwanie wykonywało się szybko, by PWM się wyrabiał, bo znowu serwa będą drgać :)
Podejrzewałem, że coś zajmuje czas uC, myślałem, że to może printf, ale skoro ujawniłeś, że uC "robi mnóstwo innych rzeczy", to tam szukaj przyczyny. po prostu coś zajmuje mu te 200 ms.
Dla konfiguracji resetowania się watchDoga po 4 sekundach : Mcusr = &B00000000 'Zerowanie rejestru aby wyłączyć bit 3 czyli WDRF. 'Dokonywanie jakichkolwiek zmian w WatchDogu musi dokonywać się w ściśle określonej sekwencji wpisów do rejestru 'WDTCSR. Jako pierwszy krok trzeba zrobić wpisanie wartości 1 do bitu numer 4 nazywanego WDCE.Pozostałe bity...
Owszem, wykorzystać AVR z rodziny XMEGA - tam timer jest o wiele bardziej elastyczny, można go też taktować z innego timera, w efekcie uzystać dowolny preskaler zegara. W ATMega 64 timer też może mieć zewnętrzny zegar, możesz więc zewnętrznie połączyć wyjście jednego timera, który będzie preskalerem z wejściem zegarowym innego timera. CLK/2 w ten sposób...
Jeśli wartość OKRES nic nie zmienia, to masz gdzieś gruby błąd. Prawdopodobnie skrzyżowałaś różne kawałki kodu i wyszło coś, nad czym nie panujesz. W moim kodzie 3 kanały są ciągle mierzone przez ADC, a wartość OKRES reguluje tylko to, jak często czytasz/przetwarzasz te pomiary. Tak to się robi w rzeczywistych zastosowaniach, gdzie zwykle musisz mieć...
Wydaje się, że najlepiej zwiększać zmienną tak jak pojawiają się impulsy dzięki INT0, i po ustalonym czasie (Timer) ilość zliczonch impulsów dzielić przez określony czas i masz częstotliwość. A tu już łatwo do przekształcenia tego na prędkość. To jedna z prostszych metod pomiaru. Aktualnie ja sobie zrobiłem licznik impulsów by sprawdzić np. ile impulsów...
Czyli uszkodzony ...
Chyba znalazłem AVRa, który się nada do tego projektu. Otóż ATmega644 może pracować z częstotliwością 20MHz, ma 40 pinów w wersji DIP, 4 timery itd. Kosztuje tylko 20zł, więc chyba skorzystam z tego rozwiązania, chyba że ktoś ma lepszy pomysł... :wink: Pozdrawiam
witam, napisałem dwa kody na obsługę i2c master(atmega644p): /* * main.c * * Created on: 16 lut 2018 * Author: Mirosław Kardaś * web: www.atnel.pl */ #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <avr/wdt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...
Dzięki już program śmiga. Zastanawia mnie jeszcze jena rzecz dotycząca kolejnego TIMER-a TC1 w 644. W dokumentacji opisany jest bit od przerwań : TOIE w TMESK1, podczas gdy ja muszę zapalić TOIE1 (podobnie jak w 32) bo inaczej kompilator wyrzuca błąd. Niedopatrzenie w dokumentacji czy różnice w Toolchain którego użuwam (w Linux-ie)?
Poszukaj software pwm. Na elektrodzie znajdziesz o sterowaniu serwami tematy. Można to zrobić na kilka sposobów,np możesz uruchomić timer co ułamek 20ms i sprawdzać jak do tej pory, ew każde serwo osobno z licznikiem liczącym do np 4ms. Zobacz: http://www.elektroda.pl/rtvforum/topic30...
Cześć wszystkim! Projektuję właśnie prostą konsolę do gier wykorzystującą monitor VGA i opartą na ATmedze644PA. Tak tak, wiem że generowanie sygnału VGA to zadanie dla układów typu FPGA, ale odrobina szaleństwa jeszcze nikomu nie zaszkodziła :) Tak więc, ATmega644 służy do generowania sygnału VGA. Klatki są przechowywane w pamięci RAM (układ AS6C1008)....
Witam Chciałem przedstawić projekt prostego oscyloskopu, który wykonałem jako pracę inżynierską. Założeniem było wykonanie prototypu urządzenie pomiarowego, dzięki któremu będzie można podejrzeć wygląd sygnałów o częstotliwościach akustycznych. Urządzenie zbudowane zostało przy użyciu procesora Atmega644 połaczonego z wyświetlaczem z telefonu siemens...
Potencjometr się nie przyda, przyda się przetwornik cyfrowo-analogowy. Taki przetwornik znajdziesz np. w mikrokontrolerze umieszczonym na płytce STM32F0DISCOVERY, że do znudzenia powtórzę... Timer i UART zresztą też, w dodatku jak się uprzesz, to bez żadnych dodatkowych układów możesz ten UART przypiąć do RS232 w komputerze, tylko jeden rezystor będzie...
Tak, widziałem ten temat. W sumie skorzystam z sprawdzania, czy modem jest włączony. Oczywiście kod ładnie opisany, z powodu małej ilości wolnego czasu dopiero próbuję go ogarnąć i wyciągnąć co potrzebne. Natomiast mam obawę, czy to się sprawdzi w całym projekcie. Otóż oprócz odbierania i wysyłania SMS, Atmega obsługuje jeszcze 7 czujników DS, 1 czujnik...
Witam!!! Mam problem z uruchomieniem PWM w trybie fast PWM top=OC2A. Wszystkie inne tryby uruchamiają mi się do strzału. Ten coś nie bardzo chce działać. Na wyjściu z proca mam ciszę. Oto kod wygenerowany przez CodeVisionAVR // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: 62,500 kHz // Mode: Fast PWM top=OCR2A...
Właśnie o to mi chodziło. Przeglądałem to polecenie w wersji [syntax=c] Config Clock = soft [/syntax] ale tam była informacja, że potrzebny jest Timer, a ja już wolnego nie mam. Wystarczyła zmiana nazwy podprogramu do odczytu czasu i dopisanie zmiennych tak, jak Kolega podał i już. Działa jak trzeba, czyli przy odczycie karty SD w komputerze jest poprawna...
Nie za bardzo się nadaje. Musisz poszukać rezonatora kwarcowego z częstotliwością która dzieli się przez potęgę 2. Poza tym atmega ma chyba wewnętrzny oscylator ustawiany na 128kHz trochę mało ale zależy co zamierzasz robić.
Można to zrealizować w pętli głównej programu. Deklarujesz zmienna "nr_programu". Dla każdego podprogramu wstawiasz instrukcje warunkową która w zależności od wartości zmiennej "nr_programu" realizuje odpowiednią sekwencje czyli dla nr_programu = 1 -> program 1 nr_programu = 2 -> program 2 nr_programu = 5 -> program 5 itd.. Zostawiasz 1 przycisk którym...
Witam serdecznie! Mam problem z prawidłową konfiguracją timera1 w tej atmedze. Czy da się skonfigurować 1 wyjście (Pwm1b) aby na nim rozjaśniać i ściemniać diodę ? Config Timer1 = Pwm , Pwm = 8 ,Compare A Pwm=???, Compare B Pwm = ??? , Prescale = 1 może na innym timerze jest to możliwe?
W helpie jest napisane, że domyślnie Timer0, opcjonalnie Timer2. Czyli zostaje odbiór RC5 z dodatkowej płytki. A już myślałem, że Atmega644 jest jakaś trudniejsza w opanowaniu - są z nią większe problemy. Przyznam, że jeśli przy tej samej konfiguracji sprzętowej można uzyskać ten sam efekt a nawet "wyciągnąć" więcej to C staje się co raz bardziej kuszące....
Po poprawce idzie OK. Procesora brak podłączenia nie blokuje procesora. Dognę całość do swoich potrzeb i opublikuję całość w tym temacie. Dodano po 46 Jeszcze jedno pytanie. Jak w tym przypadku zrobić podgląd działania kolejnych procedur jeżeli nie są uruchomione przerwania. W jednym z przerwań są peryferia po i2c które muszą być już zainicjowane zanim...
Cześć ! Szukałem w internecie i na elektrodzie i pełno tego typu programów i gotowców, ale tylko pod BASCOM. Ja ostatnio zrezygnowałem z BASCOM'a i zacząłem z C. Zrobiłem odtwarzacz, ale strasznie charczy. Miałby ktoś pomysł jaka może być tego przyczyna? Kod: [syntax=c] #include <avr/io.h> #include <stdlib.h> #include <stdbool.h> #include...
Procka wybudza przerwanie z PCF8583 czyli zegarka. Oczywiście zegarek ma własną baterię. Jaki otrzymałem prąd to ciężko powiedzieć, gdyż mam procek w układzie z kilkoma rzeczami i wszystko lutowane SMD więc ciężko powiedzieć ile ciągnie sam procek. Ogólnie wyszło mi 10,9mA. W układzie jest rzeczony PCF, jest pamięć EEPROM I2C, wyświetlacz 44780 i 24...
Witam Otóż mam mały problem. Pisze sobie szybkie przerwanie dla timera na Atmega644, to co mi kompilator z C przetłumaczył na assembler wrzuciłem do wstawki assemblerowej a przerwanie zadeklarowałem z argumentem ISR_NAKED, rejestry używane w przerwaniu zarezerwowałem przez: register uint16_t licznik asm("r30"); register uint16_t temp...
Dla mnie byka masz w przerwaniu timer0=1023 ? Ten zegar jest 8bitowy więc brana jest pod uwagę wartość młodszego bajtu w tym przypadku 255, Przepełnienie zegara następuje po jednym impulsie taktującym timer0 czyli po 1024 impulsach zegarowych (prescaler) nie masz tam 5s tylko $crystal/1024 . W przerwaniach unikał bym wywołania call i if . Ustaw flagę...
to co innego - jak odnajdziesz zmiane - zaininclalizuj lub zapamietaj wartosc licznika zmienianego w przerwaniu timera - a kiedy znajdziesz druga zmianę zobacz jak mocno sie zmienił i na podstawie tego obliczysz szerokosc tego korytarza
Kolego tmf w sumie masz rację ;) Nawet jak opóźnienie będzie trwało kilka minut no to nie robi to żadnej różnicy... ma być po prostu mniej więcej ileś tam godzin włączenia i wyłączenia lampy. OK - spróbuję na dniach zrobić tego timera, pobawię się nieco. Trochę mam innej roboty także dam znać na forum jak coś naskrobię.
Witam Po tym jak zacząłem korzystać z zmiennej DCF_Status.7 działa jak trzeba. Przedtem nie maiłem problemu z synchronizacją, ale z wyłączeniem odbiornika w przypadku jej braku ( u mnie włączenie odbiornika DCF77 powoduje blokadę wywoływania innych funkcji - wywołanie czujników DS18B20 oraz wysyłanie przez RFM12 blokuje przerwania, a tego nie lubi biblioteka...
Witam. Pokaż schemat (at)Hypno . Uważam że powinieneś zrezygnować całkowicie z przerwań i zrobić to całkowicie inaczej. Na samych Timer-ach.
o kurde faktycznie to może dlatego dioda nie funkcjonuje tak jak powinna.. przerobiłam i świeci słabiutko jednolicie, zaraz coś przekombinuję moze będzie się rozjaśniać :D Dodano po 2 DDRD |= 0xFF; PORTD |= (1<<PD5); W mainie jest :D Obsługi przerwań nie deklaruje się wywołaniem sei(); ? Dodano po 6 DZIAŁA :D Dziękuję dziękuję dziękuję :* :* Wywaliłam...
Witam państwa. Mam szybkie pytanie. Skonstruowałem układ na atmega16 podłączyłem wszystko wgrałem program(90% zajętości pamięci) lecz przejście całego programu trwa koło sekundy, to zdecydowanie za długo szczególnie ze chce jeszce dodać TIMER i strasznie go muli. Zwykłe dodanie na końcu programu n++ i wyświetlenie n, inkrementuje go co sekundę. (nie...
1. Używasz nowych wektorów przerwań, ale starej funkcji SIGNAL. Zamiast niej używaj ISR(): http://www.nongnu.org/avr-libc/user-manu... 2. Zmienna accumulator jest 16-to bitowa a nie dbasz o sprawdzanie, czy już przekroczyła rozmiar tablicy. 3. Poza tym, jaki sens mają dwa przerwania, skoro przerwanie od Timer2 opiera się o...
Chciałbym się upewnić - czy dobrze rozumiem, że chcąc skorzystać z odbioru po RC5 ( http://avrhelp.mcselec.com/index.html?ge... ) przy konfiguracji BACKGROUND mode ( http://avrhelp.mcselec.com/index.html?co... ) muszę mieć odbiornik podłączony do ICP (czy to w tym wypadku noga (PCINT30/OC2B/ICP) PD6) czyli pin 20 mikrokontrolera Atmega...
Toś się atom1477 uwziął no:> Będzie to, że tak powiem, softwareowy rest, teraz pasuje?;) No jest to oczywiste że jak timer liczył to i będzie dalej liczyć itp. A zmienne akurat przyjmą wartości początkowe. Sam program wykona się całkowicie poprawnie od początku, kolega chciał usłyszeć alternatywę, jakaś to na pewno jest, czy jest dobra? Od początku...
Witam. Udało mi się zrobić miernik czestotliwości na Atmega644p dzieki dwóm timerą pierwszy timer 8- bitowy, drugi 16-bitowy. Pierwszy timer(timer0) ma za zadanie sprawdzac czy nie pojawił się impuls na pinie t0, natomiast timer drugi(timer1)ma za zadanie odmierzac czas. Całość taktuje kwarcem 16 000 000 Mhz. Jednak dokładność tego miernika czestotliwosci...
Hmm , chyba coś żle kombinuję . Teraz w ogóle nie wchodzi do pętli wyświetlania: [syntax=c] while(1) { if (gflaga_impulsatora) { tmf_impulsator(); gflaga_impulsatora=0; } if (NoOfPulses_last!=NoOfPulses) { ks0108ClearScreen(); ks0108GotoXY(1,10); ks0108Puts("T"); itoa(NoOfPulses,buf,10);//NoOfPulses ks0108GotoXY(10,10); ks0108Puts(buf); NoOfPulses_last=NoOfPulses;...
Dziękuję Piotrze za pomoc. Chciałbym Cię jeszcze wykorzystać, a w zasadzie Twoją wiedzę. Muszę skonfigurować 3 timery: 1. do przerwań dla RC5 (tu musi być niby timer=2) 2. timer do pwm 1 urządzenia 3. timer do pwm 2 urządzenia na tej właśnie Atmedze644p. Podpowiedz mi proszę jak potem wywołać wartość (na starszych atmegach Ocr=xxx itp.) dla tych timerów...
Atmega644PA posiada 2 timery 8 bitowe i 1 16 bitowy, natomiast Atmega1284p posiada dwa timery 16 bitowe. Najpierw spróbuję rozwiązania z wykorzystaniem wejść generujących przerwania jak sugeruje użytkownik "tmf", chyba że wciąż będzie brakowało timerów to będę musiał pokusić się o AVR z 4 timerami. Pozdrawiam
Nie wiem co masz przed pętlą główną, bo jeżeli tam wrzucasz coś na LCD to trzeba to też wziąć pod uwagę. Jeżeli w pętli głównej zostają na LCD jakieś śmieci "na końcu" to ja dodaję do stringa jakieś "spacje" i jest OK. Czyszczenie całego LCD nie wchodzi w grę w każdym obiegu pętli bo źle to wygląda (widać odświerzanie). Generalnie jeżeli wystarczy Ci...
jak włączam płytkę to kombinacje od razu się uruchamiają Na to pomoże taka zmiana: Dim Flaga As Byte Flaga=0 Do If PinA.0=0 Then Flaga=1 If PinA.1=0 Then Flaga=2 If Flaga=1 Then Gosub Sciezka If Flaga=2 Then Gosub Odliczanka Loop Próbowałem return ale to nie pomaga. Returny są konieczne, nie zauważyłem poprzednio że ich nie ma. układ nie reaguje wtedy...
Dzięki wielkie Dondu :) Wiele Twoich artykułów czytam. Miło mi :) A teraz.... Fujara jestem.... Poprawiłem kod: [syntax=c] /* * main.c * * Created on: 11 maj 2015 * Author: Radek */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define...
Ale jeśli sobie możesz pozwolić na tą samą ilość pinów co w m32 to zobacz jako alternatywę bardzo dobry PICO powerowy ATmega644PA , którego także z lubością używam - a to dlatego że pinologicznie zgodny z m32 ;) a flasha , RAM'u i EEPROM'a ma tyle samo co ATmega64. Więcej ma nawet dwa UART'y ;) .... tylko niestety nadal jeden Timer16-bit - ale coś za...
Tak kolego piotrva, nie jestem jego autorem - powinienem zaznaczyć, przepraszam. Kod pochodzi z kursu Bascoma And-Tech. 2. Ponadto - rozmawiamy od ATMega32, tymczasem w kodzie załączonym w 1. poście regfile podany jest dla ATMega644p - a to zupełnie inna seria procesorów Pierwotnie miałem ustawione poprawnie na A32 - tutaj przypadkiem usunąłem nie ten...
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"...
Schemat poprawiłem. Zmieniłem w pierwszym poście. Faktycznie, aż miło popatrzeć. Sam czasem się wkurzałem szukając ścieżki. Pomierzyłem jeszcze prądy: Atmega + SD - 220 mA Atmega bez SD - 140 mA atmega bez LCD i bez podświetlania - 84,9 mA Atmega z LCD bez podświetlania - 88 mA W założeniu ma to być: - pomiar z siedmiu DS18B20 - pomiar z dwóch czujników...
Witam Poniżej załączam kod, który ma sterować wyświetlaniem informacji na LCD oraz zmianą koloru podświetlania. Niestety po upłynięciu czasu ( różnie, czasem kilkanaście minut, czas kilka godzin ) procesor zawiesza się i na LCD wszystko się zatrzymuje. Wstawiam tylko część kodu którą obsługuję RC5, gdyż jego usunięcie ( ale pozbawienie obsługi RC5 )...
Podłączyłem impusator(do każdego pinu kondensator do masy) i zastosowałem kod kolegi tmf . Niestety nie odczytuje on stanu przy szybszym kręceniu , za mała częstotliwość próbkowania ? Drugie pytanie - jak wyczyścić część ekranu tak bym nie musiał całości ? Kod ks0108Puts(" "); niestety nie działa. [syntax=c] /* * Impulstor.c * * Created: 2011-04-24...
Amplituner JRK Audio Evothon wielofunkcyjny amplituner np do sypialni lub na biurko przy komputerze. https://obrazki.elektroda.pl/3066149400_... Pomysł na urządzenie zrodził się z chęci posłuchania muzyki w przyzwoitej jakości podczas pracy na komputerze. Wbrew pozorom o gotowe rozwiązania z funkcjonalnościami (szczegółowy opis poniżej)...
pozmieniałeś nieco moje fragmenty, i dlatego nie działa dobrze. oto gotowy kod według mojego pomysłu i w miarę prosto. Pętla główna pusta. Testowałem na atmega644p i działa jak należy. Przeanalizuj różnice między swoim a moim kodem i zobaczysz dlaczego nie działało $regfile = "m644pdef.dat" $crystal = 16000000 '$baud = 9600 Config Timer1 =...
Wg. mnie te 4 takty obejmują również czas wykonania przerywanego rozkazu. Przynajmniej tak pokazuje symulator w AVR Studio. Oczywiście jeżeli przerywamy rozkaz dwucyklowy (np SBI) to opóźnienie wyniesie 5 taktów. Jeszcze dla pełnej poprawności to piszesz o ATEMGA16 i ATMEGA644P więc Twój przykładowy program zawiera błędy: - dla ATMEGA rejestry Timera...
raczej chyba atmega644p, bo atmel to firma. Podam hasło pomocne w rozwiązaniu projektu: Timery Przycisk aktywuje odmierzanie czasu (np. poprzez wpisanie jego wartości do jakiejś zmiennej), timer w przerwaniu odlicza ten czas, a program główny sprawdza, czy czas został odmierzony. Jeśli tak to powracamy do danych głównych (A), a jeśli nie to wyświetlamy...
Witam mam problem z chyba skonfigurowaniem przerwań w "C" do tej pory takie "zabawy" robiłem w bascomie ale tam to każdy potrafi ;) mam przerwanie int0 z pcf8583 w międzyczasie odczytuje temperaturę z ds18b20 no i .. właśnie jak uruchomiłem PWM zaczęły się problemy, układ czasami się resetuje lub zawiesza zacytuje fragmenty: dodam ze pdf czytałem wielokrotnie...
kontroler to ATmega644p a co do schematu to są to po prostu diody podciągnięte pod wyprowadzenia portu PA (diody zapalane zerem). Czyli jednak opóźnienia tutaj nie są najlepszym rozwiązaniem i trzeba przerobić to na timer? Tak model jest zasilany z akumulatora, ale to nie jest problem, żeby dorobić do tego modułu dodatkowe zasilanie +5V. W ogólnym założeniu...
Masz tu fragmenty mojej (dzialajacej) incjalizacji: #include <avr/io.h> #include <avr/pgmspace.h> #include <util/delay.h> #include <stddef.h> #include <progspace.h> //Pin assigments: //PA5 - LCD Data //PD5 - 0 - PA5 is input //PC4 - 0 - PA5 is output (default) //PD4 - LCD CS //PC2 - LCD RS //PC6 - LCD RESET...
Zamiast wstawiania statycznej tabeli obliczonych 100 kroków, byłbym skłonny użyć funkcji trygonometrycznych dostępnych w tym języku. http://avrhelp.mcselec.com/index.html?si... Choć z drugiej strony z całkami i liczeniem pola byłoby sporo zabawy. Ciekawe, czy i jaka będzie wówczas oszczędność pamięci procesora. Odnośnie podlinkowanego softu Moc.exe...
Dzięki wielkie- ale to nie do mnie pisałeś. O Atomic_Block dowiedziałem się w czwartek- sprawdziłem- od czwartku jest to pierwsza wiadomość na ten temat. A wracając do tematu Fir3man- wymyśliłem taki schemat programu: #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> volatile uint8_t dol;...
Witam Jak zdefiniować trzeci kanał PWM a procku atmega644p. Mam teraz: Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1 Pwm1a = 0 Pwm1b = 0 a trzeci PWM?? poniżej nota atmega644p http://www.atmel.com/images/doc8011.pdf A wogóle , czy w/w procek ma 3 pwm, a może więcej??
No dobra. Pierwsze kroki. Teoria: http://ep.com.pl/files/3561.pdf Aplikacja do testów: http://www.mcselec.com/index.php?option=... Kod bootloadera: http://avrhelp.mcselec.com/index.html?lo... 1. W urządzeniu na ATmega644p stosuję wewnętrzny oscylator 8MHz i prędkość transmisji po UART 4800 baud (8N1,...
Dzięki, szczerze powiem że nie przyszło mi to do głowy. Diody mam 3,3V. Niestety ale na diodach 3,6V jest to samo. Jakieś inne pomysły? http://obrazki.elektroda.pl/7658833200_1... Programator USB ISP działa bezproblemowo na tej płycie, a tez jest na wirtualnym USB. O co kaman? Znalazłem problem, problem stwarza biblioteka "IRremote.h"...
Witam ponownie :) Chciałbym przedstawić własnej konstrukcji manipulator, który ze względu na kinową premierę nosi nazwę "Terminator_Hand". Robot posiada funkcję sterowania ręcznego oraz gotową funkcję "idź,złap-przenieś-upuść". Układ składa się z: - Atmega644P 16MHz, - 3x serwo TowerPro SG-5010 standard, 50Hz, - 1x serwo TowerPro SG-92 micro, 50Hz,...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
Co do szybkości - Flaga jest ustawiana co 3,21 sekundy [syntax=basic4gl] Czas: Timer0 = Timer0 + 112 ' ( 100 = 1 sekunda ) Incr Licznik_ds If Licznik_ds = 321 Then ' 3,21 sekundy Flaga_ds = 1 Licznik_ds = 0 End If Return [/syntax] czyli pierwsza flaga to wywołanie DS18B20, później znowu 3,21 sekundy i flaga, wtedy konwersja i obliczenia. Zastanawiam...
A czy można dać po jednym układzie na jeden pin Atmega ? Czyli coś takeigo: Dodano po 3 Znalazłem jeszcze taki kod: [syntax=basic4gl] $regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Declare Sub Get_dht11(t_dht As Byte , Rh_dht As Byte) Dht_put Alias Porta.0 Dht_get Alias Pina.0 Dht_io_set Alias Ddra.0 Dim T_dht11 As Byte Dim Rh_dht11 As Byte...
Witam Kolegów, W swoim projekcie opartym na ATmega644 stosuję wear leveling i zapis struktury 42 bajtów danych do pamięci EEPROM korzystając z wbudowanych funkcji eeprom_write_block i eeprom_update_block . Według dokumentacji zapis bajtu/strony (8 bajtów) danych do pamięci EEPROM zajmuje minimum 3.3ms (Table 6-2.). Zmierzyłem (z użyciem Timera1) czasy...
a jak tym sterować? Tak naprawdę to jest moja sprawa czym to będę sterował. Ja chcę taki, bo mój program będzie miał dość sporą poj. (dużo rzeczy do wyświetlenia). Ew. może być atmega640. Pozostańmy przy tym, bo zawsze mogą się te wyjścia przydać do czegoś. a w jaki sposób można napisać kilka podprogramów? Bo ja chce, żeby mi procek przełączał zmienną...
http://obrazki.elektroda.net/30_12564983... W ostatnim czasie przestałem pisać programy typu mrugająca dioda i obsługa przycisków i zabrałem się za coś poważniejszego. Postanowiłem zbudować prosty zegar. Po kilkuset linijkach kodu, okazało się, że zegar nie jest już tak prosty, bo pojawił się w nim: obsługa LCD, RTC, PWM, timer w trybie CTC,...
Witam Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563. Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ). Czyli jeśli czas jest 22:40:02 to jest wyświetlany poprawnie,...
https://obrazki.elektroda.pl/1596322200_... Witam drodzy forumowicze. Temat jak najbardziej świąteczny. Chciałbym Wam przedstawić elementy stanowiące uzupełnienie Szopki Bożonarodzeniowej. Można to nazwać tłem...czy po prostu małym miasteczkiem będącym uzupełnieniem szopki. Wykonałem je samodzielnie przy pomocy najprostszych narzędzi,...
Witam Korzystając kodu Tuxgraphics zmodyfikowanego przez Kolegę Mundi1970 , chciałem również postawić prosty serwer pokazujący temperatury z kilku czujników oraz wilgotność i ciśnienie. Po zmianach regfile i pinu CS nie mogę go jednak skompilować. Występują trzy błędy: Error 46 Line: 363 Assignment Error Enc28j60_linkup Erroe 229 Line: 450 End Sub or...
http://obrazki.elektroda.pl/1784240100_1... Projekt wykonany przez dwójkę studentów integruje 3 rodzaje pomiarów: pomiar ilości przebytych kilometrów, pomiar szybkości kroków oraz prawidłowości chodu poprzez analizę nacisku na poszczególne punkty na stopie, wykrywając przy tym skrzywienie stopy i kilka innych parametrów, które mogą...
czy w maxach ustawiasz poprawnie nadawanie i odbior bo moze tu robisz blad // USART1 initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART1 Receiver: On // USART1 Transmitter: On // USART1 Mode: Asynchronous // USART1 Baud rate: 9600 UCSR1A=0x00; UCSR1B=0xD8; UCSR1C=0x06; UBRR1H=0x00; UBRR1L=0x17; Brakuje ci UCSR1A tu masz caly...
Witam ponownie! Ta noc była długa. Z pomocą wyszukiwarki znalazłem pwm_set_duty(0, 0); oddziałuje na PC1 zamiast na PC0. Trochę mi głupio, bo zawodowo zajmuje się programowaniem od prawie 5 lat, jednak przez ten czas nie korzystałem z przesunięć bitowych ani w ogóle z C więc proszę o nakierowanie chociaż gdzie popełniłem błąd. Mam także parę...
no więc poddałem się psychicznie, bo nie mogę zrozumieć co jest nie tak z tym spi wyświetlaczych to najpewniej SH1106 lub SSD1306 procek to ATMEGA644PV https://obrazki.elektroda.pl/7385774100_... piny to (wszystkie na porcie b) #define pin_sck 7 #define sck (1<<pin_sck) #define pin_sda 5 #define sda (1<<pin_sda)...
Nawet bez algorytmu autonomicznego takie cudo, odpowiednio wzmocnione dla dużego zasięgu, miało by wg mnie ogromne zastosowanie w policji. J Wszystko to naiwne mrzonki. Typowy quadcopter ma beznadziejny stosunek udzwigu do masy i a z 4 trojfazowe ESC ktore wspaniale zaklocaja transmisje wideo, wiec trzeba dzwigac osobna baterie do toru wideo. Ew maja...
Witam, na wstępie poszukiwania Google nic nie dały... Jaki mam problem - sterowanie jasnością dwóch żarówek (niezależnie) poprzez opto i triak z TIMER1 (OCRA/OCRB) Atmega. Programuję w Assemblerze. Wykonałem to jako fastPWM dla TIMER1 z wartością TOP w ICR1 i wartościami dla jasności w OCRA i B. Wykrywanie narastających i opadających oblicza czas połówki...
Poniższy program dla wersji ATMega32 usiłuję przerobić na wersję dla ATMega644p /która posiadam/. Program ma za pomocą przerwań realizować opóźnienia. Niestety robi się to wszystko skomplikowane ponieważ jak wiadomo szczególnie system przerwań i timerów jest dużo bardzie rozbudowany niż na niższych modelach procesorów. Jeśli ktoś jest w stanie mi pomóc...
Witam serdecznie! Najpierw może podzielę się kodem: [syntax=basic4gl] $crystal = 8000000 $regfile = "m644pdef.dat" Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Dim Plynnosc As Integer Dim Plynnosc_r As Single Dim Plynnosc_t As Single Dim Reszta_pwm1b As Integer Dim Ustaw_czasu_ms As Integer...
atmega644 programator atmega644 arduino atmega644 bootloader
schemat elektryczny forda mondeo odczytać matrycy pasek przewijania firefox
hyundai terracan wiatrak pionowy
Gdzie kupić potencjometr 50KB-270°? Lokalizacja przekaźnika świec żarowych Volvo C30 2007 2.0 HDI