Wpisać magiczne "volatile" volatile int sekunda=0;
Gdzies juz chyba widziałem, jak napisałeś coś w stylu, że "ogólnie wiadomym jest, że bascomowe SPISLAVE nie konfiguruje tak jak potrzeba" . Ja o tym czytałem pierwszy raz... Mogę wiedzieć której wersji Bascom używasz jeśli nie najnowszej 2085? W SPI najważniejsze jest to, że to master taktuje slave`a. Dlatego nie bez powodu w komendzie konfiguracyjnej...
Możesz zwiększyć czas oczekiwania i wpisać wartość dla ciebie odpowiednią ale z kwarcem może być problem bo jak twoja atmega nie potrafi tak szybko pracować to nici. Na układzie w symbolu układu powinno być podane jaki jest maksymalny kwarc z jakim może pracować.
...niestety nie znam asemblera. Nie musisz znać. Jak przeczytasz uważnie i zrozumiesz zasadę, to sam napiszesz procedurę obsługi przerwania w C. Dla częstotliwości PWM rzędu kilkunastu kiloherców i zegara CPU 8MHz przerwanie występuje co ponad 500 taktów, więc nawet procedura napisana w C nie będzie za długa (myślę, że nie powinna przekroczyć 100 taktów)....
Po pierwsze - czy ustawiłeś prawidłowo fusebity, aby procesor pracował na zewnętrznym oscylatorze? Po drugie - w karcie katalogowej jest informacja, że rejestr UBRRH i UCSRR znajdują się pod tym samym adresem, więc instrukcją UCSRC|=_BV(UCSZ1)|_BV(UCSZ0&... wpisujesz tak naprawdę wartość do rejestru UBRRH! Aby wpisać ilość bitów danych...
Chcę napisac własny program z wykorzystaniem Timerów. Na początek proszę o wytłumaczenie dlaczego w poniższym programie: 1. wykorzystano podzial częstotliwości zegara (po preskalerze 256) 250/125 zamiast wykonac jedno dzialanie? 2. uzyto wartość początkową Timera0 = 250 przed Petlą do Loop End . O ile wyjaśnienie podane przez Tomq jest błędne(!) Load...
\ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy, nawet...
https://obrazki.elektroda.pl/2650867800_... Dziś kolejna krótka prezentacja wnętrza starego sprzętu. Tym razem będzie to 32-calowy telewizor LCD LG mający premierę w 2007 roku, sprzęt jeszcze z podświetleniem świetlówkowym, ekran o rozdzielczości 1366 x 768 pikseli. Pokażę tu jego wnętrze i sprawdzę, czy coś ze środka może się przydać...
W kodzie umieść funkcję [syntax=c] ISR( ISR_BAD ) [/syntax] i sprawdź czy program nie skacze do niej.
U ciebie 99E4 i zapyla na 8MHz ;) Poszukaj sobie kalkulatorka do fusebitów i będzie łatwiej . Możesz też policzyć te wartości z dokumentacji atmegi 32 ze strony atmela wpisujesz hasło fusebit i masz . Pamiętaj tylko że zaprogramowany bit ma wartość zero i to często jest mylące w programatorach dlatego pewniej jest wpisać wartość liczbową .
Witaj mam pytanie jaką wartość trzeba wpisać żeby temperatura wskazywana była po przecinku
Drodzy koledzy... Napisałem niedawno program. Jest w innym poście. Nadal go rozwijam i aktualnie pisze funkcje do programowania. Poprostu chciałbym aby moje urządzenie było uniwersalne, programowalne :) Włącze urządznie, odpali się z parametrami domyślnymi, zaprogramuje je i jak zapamiętać je, żeby po wyłączeniu i ponownym włączeniu one nie zgineły....
Witam projektuję układ który będzie odczytywać wartość napięcia na ADC0 (PC0) i zapisuje to jako liczbę dziesiętną w jakiejś zmiennej. Wartość przetwornika w formie binarnej zapisana jest w 16 bitowym rejestrze ADCW a właściwie w 2 rejestrach 8 bitowych. Wartość jest zapisana w 10 młodszych bitach 16 bitowego rejestru ADCW. Jak zapisać wartość binarną...
Witam serdecznie. Z racji chwili wolnego czasu piszę sobie kod do odbiornika IR na ATmega16. Korzystam ze scalonego odbiornika TSOP1736. O tym jak wygląda kodowanie sygnału w przypadku pilota do telewizora firmy Philips dowiedziałem się ze strony #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdint.h>...
Kod pochodzi z EP 4/2005 Problem polega na zmianie wyświetlanej wartości tylko z 1 na 2 przy kręceniu w jedną stronę. $regfile = "m8def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Portd = Input Dim Licz As Byte Dim Stan_enk...
Komplikacje z utworzeniem zmiennej. (Microchp Studio, AVR128DA32) Pokrótce: Odmierzam czas . Wynik wpisuję do EEprom-u , wartość 24 bity Chcę edytować w/w wartość, wpisuję ja do zmiennej "wartosc32" i błąd : zmienna "wartosc32" umieszczana jest pod adresem 0x940C Gdy zaglądam do pamięci- nic nie jest nadpisane ( czyli "??" ) Odczytanie wartości z EEpromu...
Mam takie pytanko: czy można w jakiś sposób przy programowaniu mikrokontrolera wpłynąć na zapisywane do pamięci eeprom dane? Mam program napisany w WinAVR który wgrywam za pomocą PonyProg2000. Korzysta on z pamięci eeprom która umożliwia zapis do niej pewnych wartości oraz ich odczyt. Problem w tym że przy programowaniu uC eeprom automatycznie zapisuje...
Witam Na atmedze obsługuje klawiaturę 4x4. Używam getkbd oraz look up. Działa ok. Natomiast zablokowałem się myślowe na problemie wpisania liczby np 3 cyfrowej. Wiem jak policzyć ta liczbę itp. Nie mogę wymysłem algorytmu żeby 3 kolejne naciśnięcia traktował jako składowe liczby. Naprowadzcie na jakiś działający algorytm. Może być taki ze po wpisaniu...
to inaczej - jak to wpisać żeby to niebyła pusta pętla tylko żeby program czekał poprostu pewną wartość czasu BASCOM
ehhh a nie lepiej jest użyć jednego licznika 8-bitowego ustawionego tak aby w ciągu sekundy np 32k razy przepełniał się - a w trakcie przepełnienia (przerwania) wpisać do odpowiedniego rejestru licznika kolejną wartość nowej próbki?
W dokumentacji niestety dla licznika 1 nie występuje preskaler 128. Występuje natomiast 256. Zakładając, że licznik pracuje w trybie CTC (WGM12 =1) i zakładając 8MHz źródło sygnału zegarowego (tak jak jest w komentarzu w kodzie) należy wpisać do OCR1A= 31249 oraz ustawić preskaler na 256 czyli CS12=1 A tak na przyszłość ...nota katalogowa. Tam wszystko...
Mam procesor ATMega 16, najnowszego bascoma w wersji demo i klawiaturę podłączoną do portu C. Niestety nie działa poprawnie funkcja GETKBD. Zwraca wartość 7 gdy nic nie jest wciśnięte. Pod pozostałymi portami działa ok. W ramach rozwiązania problemu zacząłem testować portc i okazuje się że nie mogę wpisać na niektóre wyprowadzenia "1" Ustawiam Portc...
Witam ponownie !!! Jeszcze jedna mała nie ścisłość: void USART_Init( unsigned int baud ) { UBRR1H = (unsigned char) (baud>>8); //ustawienie prędkości UBRR1L = (unsigned char) baud; UCSR1B = (1<<RXEN) | (1<<TXEN); //włączenie nadawania iodbierania UCSR1C = (1<<USBS) | (3<<UCSZ0); //format ramki: 8data, 2stop bit } Jest to...
Jest jednak jeszcze jeden mankament.Ale dotyczy kwestii elektronicznej. Otóż czasami jak wyślę polecenie odtwarzania jakiegoś pliku to w głośniku najpierw usłyszę trzask a potem odtwarzanie.Nie jest to wina programu ani odtwarzanych plików. Mogę odtwarzać 100x ten sam plik i trzaski pojawiają się losowo. W sumie to im większą przerwę czasową mam pomiędzy...
Zasadniczo macie rację, ale ja potrzebuję zapisać eeprom bit po bicie a nie bajcie i dlatego wygodniej jest mi wpisać zera i dopiero pracować na takim "wyczyszczonym" obszarze pamięci. druga kwestia, to fakt, iz w eepromie bedą w trakcie pracy zapisywane różne wartości, a przy restarcie muszę się tych danych pozbyć, to tylko kwestia przyjętej logiki...
wiem już chyba w czym rzecz, chyba tajmer1 musi zbyt dużo zliczyć impulsów aby nastąpiło pierwsze przerwanie od niego a on właśnie obsługuje wyświetlacz,muszę chyba wpisać wartość wstępną do niego przed pierwszym przerwaniem.... Dodano po 4 zmieniłem prescale tajmera 1 z 1024 na 1 i jest oki :-)
Serdecznie witam, Zlecę odpłatnie wykonanie prostego urządzenia. Urządzenie ma się składać z silnika krokowego, klawiatury numerycznej z zerem + przycisk OK, WSTECZ, TRYB, WYCZYŚĆ oraz wyświetlacza 3cyfrowego i jednocyfrowego. Ma to działać w następujący sposób: przyciskiem tryb zmieniam tryb pracy. Są 2 tryby pracy a) ustawienie jednostki kroku tzn...
Do programowania używam pony proga. Gdzie mogę dokładnie sprawdzić fusebits? Dodano po 13 Znalazłem znajduje się on w zakładce Configuration and security bits i w moim przypadku bit M103 nie jest zaznaczony czyli rozumiem że ma on wartość 1. Oznacza to że ten tryb zgodności jest w moim przypadku wyłączony. Jutro postaram się to dokładnie posprawdzać...
Zaleca sie uzywanie ISR() zamiast SIGNAL(). Makro SIGNAL() będzie w przyszłości usunięte, ISR() robi dokładnie to samo. W zasadzie jako argumentów tych makr powinno się używać SIG_OVERFLOW2 zamiast TIMER2_OVF_vect, ale to akurat nie powinno być przyczyną niedziałania, bo obie te konstrukcje znaczą dokładnie to samo. TIMSK =((1<<TOIE2));...
wymyśliłem sobie, że jak wartość wyświetlana spada poniżej 100, to ma nie być wyświetlana pierwsza zero (zamiast 099 ma być 99) jeśli wartość spadnie poniżej 10 mają nie być wyświetlane 2 pierwsze pozycje wyświetlacza (zamiast 009 ma być 9) Niby proste. Wystarczy na tą pozycje wpisać 10 i cyfra się wygasi. Kod jest taki: ISR(TIMER1_COMPA_vect)...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Witam Szanowne Grono Specjalistów Zdecydowałem się zamieścić w tym miejscu moje pytanie bo sam nie jestem pewny gdzie się zgłosić - proszę o wyrozumiałość. Chciałbym nauczyć się wykorzystywać mikroprocesory w swoich jakiś tam projektach. Zależy mi na nauce w asemblerze - w tym czuję się dobrze (bawiłem się tym w C-64). BASCOM odpada po zapoznaniu się...
Cześć. Prosze o pomoc w rozwiązaniu problemu, a mianowicie mam problem przy konfiguracji klawiatury. Nie moge ręcznie wpisać kodu np. 1234, tylko program sam dobiera mi kod ( caly czas podaje jedna liczbe"1", tak jak bym ja cały czas wpisywał) kod wtedy jest ustawiany na 1111, ale jeżeli zmienie wartość na "k=2" w miejscu zaznaczonym w kodzie to program...
Po pierwsze używaj znaczników SYNTAX dla łatwiejszego czytania składni. Druga sprawa, w twoim przykładowym programie źle ustawiony jest parametr F_CPU gdyż twoja atmega nie jest taktowana z 40MHz! Wpisz tam taka wartość w Hz jaka jest taktowana twoja Atmega. Podłączenie... Dioda przewodem do PC5 przy mikrokontrolerze. Przycisk przewodem do PB0 przy...
Witam W tym rejestrze tylko dwa bity dadzą się zmienić i przy okazji odpowiadają one za rozdzielczość więc wpisanie do rejestru wartości 63 dzisiętnie lub 3F hexadecymalnie załatwia sprawę. -- pozdrawiam
Na dole pierwszego pisze HIGH i LOW. W Mkvcalculatorze masz to samo tyle że u góry. Wpisz High i Low i wciśnij przycisk Ustaw. Wszystkie wartości się ustawią na podstawie tych dwóch wartości.
Analizowałeś plik .lss? Sprawdzałeś ilość cykli w symulatorze?: Wydaje mi się, że 20 cykli zegara to dużo, by zmienić wartość rejestru. W którym miejscu programu? Timer1OFF_dwupulsowy() zrobiłbym jako inline.
W trybie CTC wartość timera jest zerowana, gdy TCNTx jest równe OCRxA. Nie pojawia się tutaj sprawdzenie w relacji większy/równy. Tak więc jeśli w danym momencie OCRxA jest równe 100, TCNTx 98 i w tym momencie zostanie wpisane do OCRxA wartość 96 to nie zostanie spełniony warunek dla TOP, timer będzie się zwiększał aż do 65535 (długa przerwa) kiedy...
Witam, przetwornik ADC działa w ten sposób, że osiągnięcie napięcia AVref na wejściu ( zaniedbując błędy przetwarzania ) powoduje wpisanie maksymalnej wartości do rejestru ADCW czyli 0x3FF przy wyrównaniu wyniku do prawej (ADLAR=0) i wartość ta pozostaje stałą, nawet po dalszym zwiększaniu napięcia wejściowego przetwornika, więc nie da się w ten sposób...
A z jakiego terminalu korzystasz? Bo na obrazkach masz ustawienia portu tylko. Kiedy korzystasz z usartu nie musisz ustawiać kierunkowości portu. Po włączeniu RXEN i TXEN piny te automatycznie są wykorzystywane przez usart i procek sam nimi steruje (przynajmniej w usart0). A dlaczego nie korzystasz z usart0? Wykorzystujesz go juz? uint8_t uart_getchar(void)...
Jak przerwanie? To ma działać z automatu czy na przerwaniach? Bo jak na przerwaniach to musisz zerować w nim licznik, bo od ocr2b nie ma opcji ctc. Najlepiej zrób tak : ustaw licznik w tryb ctc i do ocr2a wpisz odpowiednią wartość skracającą cykl, do ocr2b wpisz dowolną wartość od 0 - ocr2a, ustaw bit COM2B0, włącz licznik z odpowiednim preskalerem....
Patrz wyżej - oblicz sobie odpowiednią wartość i ładuj do powyższych 3 rejestrów. Ale chodzi mi o to, że nie wyobrażam sobie jak ta Twoja pętla z 1szego posta wykona się 230400 razy, bo jak dla mnie to o jakieś 255 za mało wgzlędem tego co w rejestrach wpisałeś.
Hahahaha :D tak! W IDE sa wpisane takie dla małego projektu i małego procesora. Mając większy projekt i procesor trzeba je albo tam zmienić albo wpisać bezpośrednio w projekcie. Kompilator się nie pyta o nie bo ma wpisane te domyślne, ale one są za małe. Musisz wiedzieć jaki masz mikrokontroler i ile ma RAM`u. Na przykład ATmega 32 ma 2kB RAM`u (dwa...
Mylisz się :) Aby znaleźć plik to już trzeba trzeba trochę kodu (czyli wystarczy petitFatFs) :) Ale żeby już zmienić jego zawartość to już sporo zabawy :) Należy: 1. Wyliczyć wielkość danych które chcesz zapisać (pestka) 2. Zlokalizować plik w RootDirectry (trochę trudniej) 3. Wyciągnąć interesujące nas informacja o pliku z RootDirectry 3. Zmienić rozmiar...
Najpierw wylosuj jedną z tych sześciu zmiennych i przypisz jej 1. Następnie w losowaniu bierze udział pięć pozostałych, wylosuj z nich jedną i przypisz jej 2, i tak dalej. Ostatniej liczby nie ma co losować, bo zostanie tylko jedna, jej przypisz 6. Można też inaczej. W tablicy 6-cio elementowej wpisz wartości od 1 do 6. Wylosuj indeks tablicy, przepisz...
a no to ok skoro Verify było ok to już jesteśmy dalej ;) - ale coś cię trzeba ciągnąć za język - i po kilka razy zadawać pytania - czy może cię nie interesują już podpowiedzi w tym temacie? pytałem przecież czy aby napewno masz procesor ATmega48 a nie 89C2051? oraz pytałem czy przypadkiem nie piszesz programu mając zadeklarowany inny procek? Bo jaką...
1/ Zamieszane są te bity od szyny danych, w kodzie wcale nie umieszczasz bitów na swoje miejsca (w ZAPISZ_LCD bit źródłowy i docelowy są sygnalizowane tą samą stałą, więc w efekcie bajt leci na opak) 2/ Strasznie zagmatwany kod - wcięcia na różnych poziomach, zbędne (według mnie) odkładanie rejestrów na początku funkcji. Inicjalizację przecież można...
Próbowałem również wpisać odpowiednie wartości do UBRR, ale u mnie wyglądało to tak: UBRR0H = 0x07; UBRR0L = 0x01; Dla predkosci 9600 i kwarcu jak u Ciebie do rejestru UBRR0 trzeba wpisac wartość 72, więc dlaczego wpisujesz wartość 1793 ?? ( 0x07<<8 + 0x01) Niestety nic się nie poprawiło...
Jeżeli coś sumujesz logicznie np. "... |1 << PC1" to znaczy że "zapalasz" (ustawiasz w stan wysoki) daną nóżkę portu. Wartość PC1 jest zawsze równa 1 to poprostu taka stała. Wszędzie w programie zamiast PC1 możesz wpisać 1 :)
A nie lepiej generator RC? Dla mikrokontrolera generowanie sygnałów sinusoidalnych jest bardzo obciążające. Znajomy miał taki problem że mu ATmega nie nadążała więc zrobił coś takiego że wpisał wartości do tablicy a potem zamiast wyliczać to z niej ustawiał kolejne wartości.
Zatrzymanie timera - wystarczy do rejestru TCCR... wpisać wartość 0 :-) Dodano po 2 dokumentacja ATmega16. str. 114/115
To znaczy, że ja sam muszę zadbać o to, żeby dołożyć do przesyłanych danych bit startu i stopu? Mówiąc przyjmie miałem na myśli to czy da się to do niego wpisać (tak żeby poprawnie nadał), nie chodziło mi o odbiór. I jeszcze jedna sprawa: jak najlepiej sprawdzić wartość jednego bitu w rejestrze? Można go pobrać i wyświetlić jako int w postaci 0 lub...
Jeśli pracujesz na wewnętrznym RC część mikrokontrolerów wymaga wpisania odpowiedniej wartości kalibracji do osccal.
Jak w tytule, korzystając z funkcji DTMF out w Bascomie udało mi się wygenerować "jakiś" sygnał. .................. W moim programie nie ma żadnej instrukcji $crystal bo nie wiem czy powinna być. Podaję kod programu odpowiedzialny za wysyłanie DTMF: Jeżeli w programie /listingu nie ma podanego taktowania lub wybranego processora oraz wartości dla:...
Witam wszystkich ;) Czy ktoś może mi udzielić jakiejś wskazówki jak w procesorze Atmega2560 wpisać do rejestru TIMSK0 wartość 0x01. Chcę zrobić układ w którym po przepełnieniu Timera występuje przerwanie. I wszystko działa dobrze tylko muszę ręcznie (poprzez kliknięcie myszką) ustawiać ten rejestr. Próbowałem już wpisywać do niego wartość poleceniami...
W przedstawionym kawałku programu OCR1A nie jest ustawiony więc w czasie resetu przyjmuje wartość domyślną czyli zero. W takiej sytuacji na wyjściu PWM, w momencie "przekręcenia" licznika pojawiają się krótkie impulsy o długości trwania jednego tika zegara. To taki "ficzer" timerów AVR. Jeżeli pragniesz zobaczyć ładniejszy przebieg to do rejestru OCR1A...
Czyli będzie to wyglądało przy deklaracji: ChannelMUX Nie tu mają byc wartosci jakie chcesz wpisać do rejestru ADMUX if(ConversionResults Nie. 3 to przypadkowa zbierzność. << 3 oznacza razy 8. taka przyjałem wartosć o filtra. Moze byc to dowolna liczba większa od 1. wzór wtedy bedzie = (ADCW * (liczba)) - wtedy odejmowanie ponizej powinno byc...
wpisać wartość napięcia wpisać wartość bascom wpisać wartość napiąć
wharfedale wysokotonowy oporność głośnik dodge światła
diagbox lexia reset pieca buderus
Electrolux EDP12074PDW – czy suszarka ma pompkę wody? Kondensacyjna, pompka skroplin 100 mA Power Supply Design: Linear, SMPS, Hybrid, Maida Regulator, MOSFET, HV Circuits