Kombinowałem na różne sposoby i nadal nie rozumiem na jakiej zasadzie odbywa się sterowanie tymi układami z poziomu programu. Samą tabelę z datasheet zrozumiałem ale nie widzę co trzeba zmieniać w programie, by móc dostosowywać go do swoich potrzeb. Mógłbym Cię prosić abyś dorzucił kilka komentarzy? Zdecydowanie pomogłoby mi to w zrozumieniu. Musisz...
Nie musowo być biegłym w BASCOMie. Wystarczy znajomość jednaj komendy z BASCOMa: On Timer. [syntax=vbnet] On Timer1 Timer1_handler ... Timer1_handler: 'Tu robisz pomiary ADC Return [/syntax] A do skonfigurowania Timera w tryb PWM Phase Correct wystarczy wpisać odpowiednie wartości do rejestrów Timera (i nawet nie można tu w zastępstwie użyć polecenia...
No widzisz- jak zostałem zmuszony do takiego ręcznego ustawiania rejestrów w bascomie to pomyslałem sobie- dlaczego nie robić tego samego w C? Skoro mam i tak ręcznie się dobierać do wnętrzności procesora. Zwłaszcza że ustawianie rejestrów rozumiem. Najpierw myslałem że Bascom będzie mi jeszcze służył do napisania prostych programów i szybko. Ale tak...
Witam, Chciałbym wykonać rejestr przesuwny, używając 10 wyjść oraz jednego wejścia do przesuwania bitów switchem. Proszę o podpowiedź co do komendy jakiej użyć oraz proszę o jakiś przykładowy program (kilka linijek, żeby zrozumieć zasadę tworzenia rejestru). Język do programowania Atmegi - Basic. Pozdrawiam
Czy można w Atmel studio ustawić watch na rejestr konfiguracyjny ? Np. chciałbym podejrzeć zawartość TCC0.CNT, i/lub ustawić brakepoint condition na TCC0.CNT=0xff. Drugie pytanie - czy można debugować kod krok po kroku z częstotliwością taktów zegara ?
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Na początek polecam stronę: http://www.8051.prv.pl/ ale uwaga - przykłady są pisane pod AT90S8535, więc pod ATmega będzie to wyglądało trochę inaczej. Polecam lekturę datasheetów w razie wątpliwości. Bardzo przyjemny do pisania w AVR-GCC jest edytor AtmanAVR, ale niestety nie jest darmowy. Posiada wiele udogodnień (np. Code Wizard, który automatyzuje...
Chciałem się dowiedzieć jakie częstotliwość próbkowania osiągacie przy stabilnym odtwarzaniu *.wav bez zakłóceń wynikających z obsługi karty. Śledzę temat od dawna. Ostatnio z potrzeby chwili zacząłem eksperymenty. Oprogramowanie jest napisane w Bascom/Asm. Kiedyś napotkałem PDF'a kolegi Saabotaz dotyczącego obsługi karty SD / MMC. Uruchomiłem na podanym...
Ostatni raz powtarzam: #define STEP_OFFTCCR1B &= ~(_BV(CS10)) | ~(_BV(CS11)); <--- to jest źle, bardzo źle i niczego nie zeruje Zamień na to: #define STEP_OFF TCCR1B &= ~(_BV(CS10) | _BV(CS11)); <--- to będzie działać, to zeruje bity. Na więcej postów nie odpowiadam bo czuję tutaj stratę czasu.
PWM ustawiasz na przykład w tryb Fast PWM (patrz tab. 17-8): Mode 3 ustawiając: - bity WGM20 i WGM21, - preskaler bitami CS2x - dla wyjścia OC2A ustawiasz: -- pin jako wyjście rejestrem DDRx -- z tabelki "Table 17-3. Compare Output Mode, Fast PWM Mode " wybierasz tryb bez negacji sygnału ustawiając bit COM2A1 dzięki czemu będziesz miał sygnał w postaci...
Jesli chcesz wykorzystac sprzetowe I2C (TWI) w ATmega8 to wszystko ustawiasz za pomoca odpowiednich rejestrow. Jesli ATmega bedzie pracowala w jako SLAVE to za pomoca odpowiedniego rejestru ustawiasz jej adres. Poczytaj w doumentacji od uC.
Jeżeli dobrze patrzę w DS, to tryb CTC jest ustawiany bitem WGM02=1 (WGM00=0 i WGM01=0, WGM03=0) w rejestrze TCCR0B a nie WGM01=1 w rejestrze TCCR0A.
Jak ustawiać preskalery według tabelki z #27 podanej przez excray .Jak wygląda preskaler 32 i 128 jak to się ustawia. W internecie jest taki preskaler , TCCR1B |= (1<<CS12)|(1<<CS10); // preskaler = 1024 Jak czytałem preskalera 32 i 128 nie obsłuży Attiny 2313 i Atmega 8. Co obsłuży wszystkie preskalery podane w tej tabelce. Bo patrzysz...
Rejestr EIFR to rejestr FLAGI przerwania, która jest automatycznie zerowana po zakończeniu przerwania. Badanie jej w przerwaniu musi dac wynik pozytywny. Poza tym masz w tym kodzie błąd: reset eifr.0 if eift.0 = 1 then set led chyba powinno być: if eifr.0 = 1 then set led Napisz jak ustawiasz rejestr EICRA Na końcu przerwania zbadaj If EIMSK.0=1 then...
Zobacz jak dziala kod na jakims debuggerze - masz JTAG? Albo w AVR Studio (nie wiem czy Bascom ma odpowiednik). Sprawdz czy prawidlowo sa ustawiane rejestry odpowiedzialne za wspolprace z XRAM. Moze to jakis blad Bascoma? Swoja droga przy tak duzym procesorze chyba juz warto przejsc na profesjonalne narzedzia? :)
No to po kolei. W ATtiny26 w masz schemat przetwornika ADC na str.97 i tabelkę na str.104. Na górze tabelki masz które wejścia ustawiasz jako positive a które jako nagative. No i Gain- wzmocnienie może być 1 albo 20. No i dalej-ATMega8, 88 nie ma sprzętowego pomiaru różnicowego. ATMega16- ma, ale nie gwarantują tego w obudowie DIP- tylko w TQFP. No...
Dowiedziałem się, że to tych rejestrów trzeba dostać się przy pomocy funkcji LDS/STS... Jak piszesz w C nie musisz się o takie rzeczy martwić. To zadanie kompilatora dobrać odpowiednią instrukcję. Przeszukałem forum i google ale są tylko przykłady dla assemblera, nic dla C. Na pewno są też dla C, ale podam jeszcze raz: // kasowanie bitu 5 (bit...
Tak, możesz użyć rejestru PINx do tego celu. Pamiętać tylko musisz, że ze względu na obecność synchronizatora sygnał odczytywany z PINx jest przesunięty o jeden cykl zegara w stosunku do tego co na tym pinie jest, ale w więszkości przypadków jest to bez znaczenia. Co do ustawiania kierunku pinów to dotyczy to tylko pinu SS z interfejsu SPI, pozostałe...
Przeglądnij sobie ten przykład i wykorzystanie w nim sposobu ustawiania rejestrów USART (w tym bitu U2X) z wykorzystaniem nagłówka setbaud.h: http://mikrokontrolery.blogspot.com/2011... Może w ten sposób szybciej odnajdziesz przyczynę problemów lub zastosujesz zawsze rozwiązanie z artykułu, które działa zawsze poprawnie.
ustawianie stanów logicznych na pinie odbywa się w przypadku 1-wire nieco inaczej niż pokazałeś. Ty ustawiasz kierunek i wymuszasz stan, a to troche nie tak. Ustalać powinieneś jedynie kierunek transmisji. Domyślnie w rejestrze PORTx są same zera, więc nie musisz się nim w ogóle przejmować. Dla np resetu powinno być tak: ustawiasz port jako wyjście,...
Po restarcie mikrokontrolera i tak wszystkie piny są wejściami, zatem ustawianie PD0 jako wejście nie jest konieczne, za to może się bardziej przydać podciągnięcie tegoż wejścia programowo do VCC [syntax=c]PORTD |= (1<<PD0);[/syntax] Poza tym zamiast pisać tak: [syntax=c]DDRD = 0xfe;//IN0 ustawiam jako wejscie EICRA = 0x3;//Przerwanie ustawione...
Było już na ten temat nie raz ale co tam... Są trzy rejestry odpowiadające za porty... DDRx - ustawienie portu jako wejście lub wyjście (rejestr kierunku)... PORTx - odpowiada za ustawienie stanu portu (stan wysoki/niski na poszczególnych pinach lub całym porcie) "wystawienie" wartości na port... PINx - odczyt wartości z portu lub stanu pojedynczych...
Skoro już używasz timera, to zrób to na timerze :) Najprościej tak, że ustawiasz timer w tryb CTC, procedura obsługi przerwania działa tak jak to wcześniej opisałem. Jeśli chcesz uzyskać przyśpieszenie po przytrzymaniu klawisza to zmieniasz tylko wartość rejestru porównania w trybie CTC na mniejsza, w efekcie kolejne przerwania będą przychodzić szybciej,...
Witam Czy można w bascomie ustawiać rejestry odpowiedzialne np za to, czy procek (ATmega) korzysta z wewnętrznego czy zewnętrznego oscylatora kwarcowego, np w ATmega8 ustawia się to za pomocą CKSEL0...3 i czy da się to w bascomie ustawiać? Dzięki za odpowiedź i pozdrawiam.
No a w jakiej nocie kolega doczytał że preskaler dla m644 ustawia się w rejestrze TCCR1C ? ;) proszę to sobie sprawdzić.
Jeśli mogę poprosić o ocenę oto on: Przemyśl to :|
w naglowkowy w zasadzie nic nie ma: void Funkcja_Poczatkowa(void); void Walka (void); void Eliminacje (void); void Diagnostyka (void); void Test_Cz_Odleglosci (void); void Test_Cz_Linii (void); void Test_Silnikow(void); void Ust_Portow (void); void USART_Init( unsigned int baud );...
A skąd wiadomo, że działa akurat na 8kHz? A widzisz sie pomyliłem bo Atmega8A myślałem że on działa na 8MHz a standard to 16MHz wiec w rejestrze (1 << CS10) Timer ustawia 1:1 wiec sygnał może być 16kHZ jak atmega ma 16MHz..
Witam Najpierw niech kolega "na sucho" sprawdzi PWM manipulując zawartością OCR. Jeśli będzie ok to sprawdzić trzeba czy przypisanie na sztywno do zmiennej pomoc różnych wartości daje rezultaty. Jeśli wszytko będzie ok sprawdzić trzeba pomiar częstotliwości. Jak będę miał chwile to popatrzę na kod i jakiś schemat by się przydał może tam jest błąd ;]...
Z kwarcu i preskalera wyliczasz sobie przy jakiej wartości licznik powinien się przepełnić i taką wartość ustawiasz w rejestrze OCRx. Włączasz tryb CTC timera, preskaler i przerwanie.
Żeby na 100% nie było różnicy między badanymi stanami pinów podczas kolejnych badań oraz zapisu do rejestru, powinieneś tylko w jednym miejscu odczytać PIND i zapisać w zmiennej. Dopiero zmienną testować i gdy trzeba zapisać do tablicy. Sprawdź (pokaż) jak wygląda zawartość pliku .lss. Może trzeba powalczyć z instrukcją asm volatile("nop"), zeby program...
Pomijając fakt, że sam pomysł jest dziwny ... to powinno to działać tak jak planujesz. Kierunek portu (wartość rejestru ddr) możesz zmienić w dowolnym miejscu programu, nie tylko w deklaracji na początku. Czyli na początku programu deklarujesz pinb.1 jako wejście, zerujesz pinb.1 (reset). W programie sprawdzasz co jakis czas czy pinb.1 jest ustawiony...
\ 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...
Jak wiemy mikrokontrolery avr maja w datasheecie wartości initial value. Wiem ze po wgraniu nowego programu następuje reset i porty I/O są ustawione w stan wysokiej impedancji. A co z rejestrami np. TCCR, TIMSK od timerow czy rejestrami np od transmisji szeregowe czy jeszcze innych? Są ustawiane na swój initial value jak podaje producent w konkretnym...
Czekaj, czekaj. Jeden czujnik odpali przerwanie INT0 a w tym przerwaniu sie uruchomi timer. Drugi czujnik po INT1 ma go wyłączyć. Raczej o tym myślałem. Lepiej tak: czy ktoś by mi dokładnie wytłumaczył jak wywoływać timery, zbierać z nich czas, do czego służą poszczególne rejestry. Noty katalogowej tego procka po polsku nie znalazłem, a dobrego poradnika...
Polecam dokumentacje atmegi. Tam masz przyklady na 100% dzialajacej inicjalizacji usart oraz dokladne znaczenie rejestrow flagowych ustawianych podczas owej inicjalizacji. Pamietaj ze w zaleznosci od atmegi rejestry maja rozne nazwy.
Hm.. Nigdy nie używałem symulatora do AVR, choć uważam to za trafiony pomysł, alternatywą jest debugger, ale pewnie takiego nie masz. Głównie piszesz że jest wyzerowany , może symulator jeszcze nie działa prawidłowo? Ja bym spróbował na łatwiejszym przykładzie, np: takim bez przerwań i sprawdził czy ustawianie rejestrów działa poprawnie -- zawsze będziesz...
Dzięki za odpowiedzi, taki czas jest dla mnie idealny, nawet "potrojony" mnie zadowala :) Teraz pytania bardziej konkretne. Wstępnie będzie to Atmega128, pamięć typu 628512 podłączona zgodnie z helpem bascoma. Wg. dokumentacji, mogę "sprzętowo" obsłużyć 64kb, czy przejdzie taki myk, by podzielić 512kB SRAM na 8 banków i sterując je adresami A16-A18...
TXC "znacznik ten jest ustawiany("1") w chwili,gdy cała nadawana dana zostanie wysunięta z nadawczego rejestru przesuwającego i nie ma nowej zapisanej w rejestrze UDR" Dlatego dałem taki warunek,aby czekał na zakończenie transmisji .
(at)elektryku5 To już jest także w XMEGA oraz nowych ATMega. Generalnie jest to częściowe rozwiązanie problemu autora, bo w ten sposób można ustawiać/zerować lub zmieniać wybrane piny, ale nie można w ramach jednej operacji łączyć tych działań. ilka nóg mikrokontrolera (np 3, albo 4,5) ustawione w wyjście, i traktowane jako jedno "słowo". Ale nie 8....
Na jakiej podstawie uważasz, że przerwanie wykonuje się tylko raz? Na podstawie PWM? Wczoraj zadałeś pytanie ([url=http://www.elektroda.pl/rtvforum/t... 8535 - PMW C tryb 15) czy "rejestrem OCR1B ustawia się czas trwania jedynki a rejestrem OCR1A czas trwania zera". Odpowiedziano, że nie. A tutaj po komentarzach sądzę, że w dalszym...
M168 ma >128kB FLASH? Ciekawostka. Dodano po 2 Moja rada jest taka: przejść się na GCC. To jest niedoróbka BASCOMa, najlepiej zgłosić to do supportu. Akurat tu gcc obsysa podobnie. Co prawda jakoś to działa przy >128kB FLASH, ale nie do końca. Raz, że dane muszą być <64kB, inaczej trzeba kombinować jeszcze bardziej niż zazwyczaj, to jeszcze...
Mam problem ze zliczaniem czasu przez timer w układzie PCF8583. Na starcie programu ustawiam timer: I2cstart I2cwbyte 162 I2cwbyte 0 'rejestr kontrolny I2cwbyte &B00000100 'alarm aktywny I2cstop I2cstart I2cwbyte 162 I2cwbyte 8 'rejestr kontrolny timera I2cwbyte &B01000010 'zapis rejestru alarmu 'odmierzanie sekund ' włączony alarm timera I2cstop I2cstart...
Mało intuicyjne jest to ze zapisanie bitu TXC0 powoduje jego zerowania. Ale jest to napisane w nocie katalogowej. W AVR wszystkie (zdaje się) flagi przerwań itp kasuje się przez zapis 1. Układy 6526, 6821 i podobne miały tez ten mechanizm. W przypadku flag, bit 7 decydował czy flagi sa kasowane czy zapisywane, pozostałe bity to flagi. 0b10001111 ustawiało...
Witam, sterowanie przetwornicą za pomocą atmelka jest dość ciężkim zadaniem. I tak naprawdę nie wiem, po co to robisz. Do swojego układu masz doprowadzone 12 V, z którego mógłbyś zrobić pożądane 10 na zwykłym liniowcu. Ale jeśli chcesz... Po pierwsze zwiększyłbym R6, albo dał inną diodę, bo ograniczenie jest ustawione bez żadnego zapasu. Poza tym wartość...
Hej ! Ustawiam bit ACSR.6 i wejście nieodwracalne w kompaktorze ma swoje napięcie odniesienia 2.56V. Ale bit ACO (ACSR.5)z rejestru ACSR mi się ustawia/zeruje jak przekroczę na drugim wejściu kompaktora około 1.325 V, właśnie, dlaczego na 1.325V a nie na 2.56 ? pozdr.
Sprawdź poprawność symboli określających adresy rejestrów OUT i DIR. W podstawowej konfiguracji proty IO XMEGA nie różnią się od ATMega. Dopiero różnice widać jak korzystasz z rejestru kontrolnego portu. Użyj symulatora z AS do sprawdzenia czy po wykonaniu programu odpowiednie rejestry mają taką wartość jaką oczekujesz. BTW, w nowszych AVR stos jest...
Nie wiem jak to w bascomie nie wnikałem w kod, ale można to zrobić tak że deklarujesz aktywację przerwania jednym zboczem, a po jego wywołaniu zmieniasz tą konfigurację na drugie zbocze (zmiana w rejestrze MCUCR). Albo wywołanie przerwania ustawiasz na dowolną zmianę sygnału i w jakiejś zmiennej przechowujesz stan wcześniejszy i porównujesz
A więc tak: Mój pomysł z wykorzystaniem $Noramclear działa, ale go nie chcę, bo nie jestem pewien czy nie wyczyszczona pamięć nie namiesza mi w programie. Konstrukcja If Mcucsr.wdrf = 1 Then Info = 1 End If nie działa. Nie wiem dlaczego po resecie ten bit nie jest ustawiany ?? A to by było rozwiązanie najlepsze. Co zaś do $Timeout, to owszem można by...
Z tego co wyczytałem to rejestr TCCR2 w M168 jest podzielony na 2 rejestry TCCR2A i TCCR2B, zgadza się ? Gdzie to wyczytałeś? W dokumentacji? Jeśli tak to w jakim celu pytasz się, czy to prawda? :D Zestawienie rejestrów związanych z ustawianiem Timer2: 18.11 Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....
Jak można mówić cokolwiek o optymalizacji ustawiając / kasując po jednym bicie w rejestrach, zamiast ustawić od razu cały rejestr? Pozatym - czy naprawdę STANDARDOWE polecenia języka C są tak brzydkie, że trzeba je zastępować tymi bascomo-podobnymi potworami których użyłeś? 4\/3!!
Jesli chcesz aby bylo jak z pierwszego obrazka z wypelnieniem 50% (czyli zawsze jeden z nich bedzie w stanie wysokim) to ustaw timer1 na tryb 8. Rejestrem ICR1 regulujesz czestotliwosc (wraz z preskalerem), bity COM1A i COM1B ustawiasz tak zeby kanal a wlaczal sie przy przechodzeniu licznika w gore a kanal B wtedy wylaczal.
ustawianie rejestrów projektowanie rejestrów usuwanie rejestrów
impuls zbocze działa obrotomierz mazda odcisk palce
identyfikacja elementu czyszczenie pamięci android
Schemat jednostki sterującej 30p control unit 506270A Schemat blokady drzwi pralki - komponenty i działanie