Proponuje jak zwykle dokumentację - rejestr SPCR.
Datasheet strona 174 Table. 74
Za pomocą jakich instrukcji w assemblerze mogę zapisywać coś do rejestrów R0-R15 ? Masz na myśli zastąpienie załadowania bezpośrednich wartości np. ldi / cbr / sbr r0, 0xD5 (nie istnieją !) ? Jest tego trochę ;) (na przykładzie r0 , r16 i wartości 0xD5 ): ldi r16, 0xD5 mov r0, r16 ldi r16, 0xD5 push r16 pop r0 Można także zatrudnić w/g własnej pomysłowości...
A nie łaska w przerwaniu odkładać i zdejmować rejestry na stos/ze stosu? Push i Pop mogą Ci w programie głównym "nie działać" jak nie wiesz jak z nich skorzystać ale w przerwaniu na pewno zadziałają. Mówisz że wykorzystujesz wszystkie rejestry. Na to nie ma rady. Jest za to inna rada: Nie wykorzystuj ich ;) Po prostu przerzuć parametry do RAMu jak na...
rozkazy IN/OUT działają tylko do $60 adresu. Zamiast OUT'a daj STS UCSR0C, r16
Program w przerwaniu lepiej niech za długo nie siedzi. Jeśli musisz już takie rzeczy robić, to w przerwaniu ustawiasz flagę, którą to potem sprawdzasz w programie.
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
1. Czy w bitach konfiguracji wyłączyłeś tryb zgodności z ATmega103? 2. Czy przeczytałeś ostatni akapit opisu bitu 6 (ICES) w rejestrze TCCR3B, strona 135 datasheet?
ATmega128 ma dwa tego rodzaju rejestry, bo ma 2*UART, sprawdź źródła i popraw (UBRR0L/UBRR0H oraz UBRR1L/UBRR1H), bo UBRRL/UBRRH tutaj zwyczajnie nie istnieje... ;) A na przyszłość - czytaj dokumentację ... Pozdrawiam, Light'I
.Czy ktoś może wie w czym tkwi problem/spotkał się z taką sytuacją? A zmienna, której wartość kopiujesz do OCR3A/PWM3A nie jest przypadkiem zadeklarowana jako BYTE ? Jeżeli to nie to, to spróbuj zapisywać rejestry OCR3 osobno - OCR3AH, OCR3AL.
A jaki konkretniej problem masz? Nie możesz włączyć timera, pogubiłeś się w rejestrach i bitach...?
Skonfiguruj rejestry SPH i SPL, czyli wskaźnik stosu ustaw na koniec SRAM (SP = 4095)
Sprawdziłem, jednak chodzi o DDRB, który jest adres przed PORTB w rejestrze, a ktoś zamiast pisać DDRB woli PORTB-1
Czy istnieje jakiś avr kompatybilny programowo z atmega32 tylko z większą od 2 do 4 razy ilością SRAM i EEPROM? Wszystkie ATmega są kompatybilne programowo - kilka literek w nazwach rejestrów zmienić to żaden problem. Nowsza wersja ATmega32 to ATmega324/644/1284, ale tez zawsze jakieś rejestry inaczej się nazywają. Jeśli nie chcesz pokazywać kodu,...
#include <avr/io.h> Już jam jest. Problem w tym, że ATmega128 nie ma rejestru GICR... Jest za to MCUCR.
Poza Ox3F to chyba więcej rejestrów "wywędrowało".
Witam wszystkich , Robie własną płytkę z procesorem ATmega128 16AU.Do komunikacji używam JTAGCableII firmy Propox i korzystam z AVRStudio 4.13 .Wgrywam za pomocą JTAGa proste programy na procesor (działa poprawnie).Jednak podczas debagowania obserwuje dziwne zjawiska(oczywiście odpowiednio ustawiłem bity JTD i JTAG ) , mianowicie bity w rejestrach ,których...
Witam, czy ktoś testował obsługę TCP/IP wykorzystując biblioteki AVRlib, konkretnie chodzi mi o przykład w folderze /examples/netstack/netstack.c. Atmega128 nie komunikuje mi się z rtl8019, po zczytaniu rejestrów CR, PAR0-PAR5 itd, mam same FF
Może zostać zwolniony. Przerwanie w momencie wystąpienia jest odnotowywane w odpowiednim rejestrze i 'czeka' tam aż nie zostanie zresetowane/wykonana procedura obsługująca to przerwanie.
ATmega128 ma troszkę inne rejestry UARTowe, wystarczy się wysilić i spojrzeć do datenblata;)
Jakiego procka uzywasz? Bo ten rejestr odnosi sie do np. do 8515, natomiast ATmega128 ma juz inny rejestr do ustawiania zewnetrznych przerwan, sa to rejestry EICRA i EICRB. Moze konfigurujesz rejestr nieodpowiedni do danego procka?
Z tego co szybko wyczytalem w Atmega128 wprowadzono nowe rejestry ze wzgledu na wydluzona przestrzen adresowa. Nie widze aby tutaj korzystal z tych rejestrow wiec moze dales zly przelacznik przy kompilacji i kompilator tworzy kod wyjsciowy dla procesorow do 64kB przestrzeni programu. Musisz dac -mmcu=atmega128.
Rejestr przesuwny nie jest tym samym co rejestr wyjściowy. Wobec czego masz 16 taktów na odczyt. Oczywiście przy tak dużej prędkości cale 16bitow musisz odebrać w jednym przerwaniu.
ATmega128 ma "tylko" 8 zewnętrznych przerwań i nie ma tam przerwania PCICR. Przerwania możesz deklarować poprzez nazwy rejestrów: ON INTX lub jak dla M168: ON PCIEX i dalej korzystać z normalnej składni Bascoma.
8bitowe ramka:)
Szkoda, że masz płytkę, bo takto najlepiej było wpiąć RX obu usartów na linie komunikacji między urządzeniem a PC i nie byłoby problemu z przepisywaniem danych i ewentualnymi opóźnieniami. A takto rozwiązanie to tylko przepisywanie rejestrów.
Atmega128 posiada 128KB pamięci flash, żeby program poprawnie odczytał dane fontów rejestr RAMPZ musi być odpowiednio ustawiony. Może problemem jest umiejscowienie tych fontów we flashu, zaczynają się na pierwszej stronie pamięci (pierwsze 64 KB), a kończą na drugiej stronie (powyżej 64KB). Program odczytuje początek fontów z odpowiednio ustawionym...
Sprawdź to dokładnie, rejestr po rejestrze, ponadto czy taktowanie procesorów takie samo w obu przypadkach?
Po tych ustawieniach także nie trybi
Chodzi o zmiane fuse, kwarz nie bedzie przeszkadzal, dodatkowo KALIBRACJA rejestr OSCCAL=$ff
Mam problem z I2C W ATMEGA128 program: Config Scl = Portd.0 Config Sda = Portd.1 I2cinit I2cstart I2cwbyte &H01 I2cwbyte &H10 I2cwbyte &H06 I2cwbyte 70 I2cwbyte &H00 I2cstop w momencie napotkania instrukcji i2cstart program zawiesza sie próbowałem już na wszystkie sposoby z i2csend i nic. Trzeba jakieś rejestry specjalne konfigurować? Rezystory podciągające...
Zanim zaczniesz tego portu uzywac.I na przyszlosc lepiej maskuj bity w rejestrach zamiast wpisywac cale wartosci do rejestrow bo w dwoch roznych miejscach mozesz sobie cos pozmieniac.
...Ja używam co chwile tych instrukcji, ale nie korzystałem jeszcze ze skrótów z atmega128.inc tylko własne stałe robiłem będace np rejestrami /dla ułatwienia/ stąd ta moja niepweność... To dziwnie postępujesz ;) Po to wymyślono pliki include , by ułatwić życie programistom.Zapewne łatwiej jest zapamiętać symboliczne nazwy , niż "suche" liczby/cyfry.Więc...
Przecież wartości ładowane do rejestrów porównania zależą od programu. Wystarczy programowo opóźniać zmianę drugiego rejestru względem pierwszego.
JTAGa można też wyłączyć w software - rejestr MCUCSR bit JTD.
każda transmisja jest tak upierdliwa, ze jak coś nie działa to może być tysiąc powodów. Po pierwsze sprawdź czy działa transmisja przez max232 aby wykluczyć problem z USB. Sprawdź czy przypadkiem RXD i TXD nie są ze sobą zamienione. Ale nie pojawia się w terminalu nic czy tylko krzaczki? Jeśli krzaczki to USART jest źle zainicjowany - przelicz jeszcze...
TCCR3A |= (1<<CS32)|(1<<CS30); //ustawienie preskalera na 1024 Bity preskalera są w rejestrze TCCR3B
Rozwiązanie okazało się proste - wystarczy wyzerować rejestr TWCR, dzięki za pomoc.
Co to za procesor? Jaki jest jego częstotliwość zegara (kwarc + ewentualne dzielniki, a nie f_max z datasheet) PS. Bit SPI2X jest innym rejestrze w ATmega128. PS2. Kasowanie flagi SPIF w inicjalizacji mastera i slave'a możesz wywalić, nie jest potrzebne.
Z tego co pamiętam, rejestry OCR1x uaktualnia się w przerwaniu overflow do timera.
Jeśli max 512 to PWM jest 9-bitowy. Skoro zakres ADC jest 10 bitowy, to trzeba wynik z ADC podzielić przez 2 i wpisać do rejestru PWM.
Właśnie I2cstart I2cwbyte 162 I2cwbyte 2 I2crbyte Sekundy_ustaw I2crbyte Minuty_ustaw I2crbyte Godziny_ustaw I2crbyte Dzien_ustaw I2crbyte Dzientygodnia_ustaw I2crbyte Miesiac_ustaw I2crbyte Rok_ustaw I2cstop To jest zapis do rejestrów czy odczyt?
Witam, słabo znam te procesory, musisz więc sprawdzić w dokumentacji, moim zdaniem problem nie bierze się z kolejności wysyłania ale z kolejności odczytu. Generalnie, ośmiobitowe procesory przy dostępie (odczycie i zapisie) do szesnastobitowych timerów wykorzystują (dla zagwarantowania jednoczesności obu bajtów) specyficzny mechanizm. Starszy bajt nie...
rejestry PINx w atmedze128 są tylko do odczytu więc nie wolno do nich nic zapisywać. jak chcesz sprawdzić stan przycisku to robisz tak: ustawiasz pin do którego jest podpięty jako wejście podciągasz go do stanu wysokiego w pętli głównej sprawdzasz czy dany pin nie jest = 0 (co będzie miało miejsce gdy go naciśniesz) czyli mniej więcej tak: PORTA |=...
Nie bardzo wiem po co tam ten rezystor... za to capa nie widzę. Nie łatwiej ustawić w rejestrze, że aref na avcc?
(at)BoskiDialer, to jest to. Wielkie THX, również za pierwszą uwagę. Nie wiedziałem o tym, dlatego kiedyś miałem podobny problem (ten ze skokiem pod puste przerwanie). Zamiana linijek również pomogła, teraz jest wszystko ok. Jednak nie zamykam wątku bo mogę mieć jeszcze kilka pytań. Aha, nie jest też potrzebne zerowanie bitu SPIF, bo się sam zeruje...
No fabrycznie nowa Mega128 wychodzi z zegarem 1MHz. Jeśli masz taką nową to przy przestawianiu na 8MHz nie zapomnij wyłączyć JTAG i koniecznie wyłącz bit M103C bo to jest bit który ją "cofa w rozwoju" ahahaha czyli robi kompatybilną ze starszą Atmegą103 i tam jest kilka zmian w rejestrach i sprzęcie przez co program na pewno dobrze działać nie będzie...
Polecam od razu dać sobie spokój z Bascom, bo tam na prawdę wychodzą różne kwiatki. Nawet ostatnio w jednej z wersji jeden z forumowych Kolegów znalazł buga polegającego na złym kompilowaniu odwołania się do rejestru OCR1A za pomocą aliasu PWM1A. Jeśli nie chcesz tracić nerwów na to, że coś nie działa - zacznij od razu od C.
Witam. Mam problem ... .. bo nie chce mi się zajrzec do helpa ... ;) ldi R17, PINB ... To powyżej oznacza LDI R17,0x16(adres PINB). a)Musisz odróżnic dane bezpośrednie , od pośrednich bo inaczej klapa ;) b)Do odczytów rejestrów I/O uzywa się IN REG,IO lub LDS REG,IO :idea: Piotrek
z tego co widziałem to nie konfigurujesz odpowiednich rejestrów odpowiedzialnych za zewnętrzna przerwania. zobacz do noty katalogowej musisz skonfigurować rejestry: External Interrupt Control Register A – EICRA External Interrupt Control Register B – EICRB External Interrupt Mask Register – EIMSK External Interrupt Flag Register –...
(Czy to dobrze, jak słychać "bzyczenie" kwarcu 16MHz? :)) "bzyczenie" kwarcu przy 16MHz to masz niezły słuch ;) Jeżeli kwarc buczy to go wymień, raczej już nie drga na 16MHz. A teraz co do pytania to spróbuj zwiększyć czas startu[DS str 40]. Na wewnętrznym 8MHz nie działa, może ruszałeś rejestr XDIV?
Ale gdzie to mam poprawić? W deklaracji, definicji? Korzystam jak narazie i tak z TWI_odczyt, bo muszę podać adres urządzenia i nr rejestru żeby odczytać pierwszą wartość
Bascom tablice numeruje od 1. Można w nim zrobić tylko tablice jednowymiarowe. Ale masz w Atmedze128 4 liczniki. Nigdy nie robiłem nic na ATmega128. Ale właśnie ściągnąłem datasheet i widzę że timer3 ma 3 rejestry OCR timer1 2 rejestry timer2 i timer0 po 1 rejestrze. To razem osiem. A jeszcze pojemność liczników ustawiana-to jeszcze 4. To są różne częstotliwości...
No chyba żartujesz? To jedynie odbiera bloki po 512B. Żeby zformatować to trzeba po pierwsze wysyłać. Dla porównania powiem Ci, że procedura która odbiera dane (czyli ta z kodu powyżej) ma 85 linijek, a cała procedura (no może nie cała bo jedynie zapis i odczyt plików) to FAT16 jakieś 10000 linijek. Samo formatowanie jest prostsze, ale piszę to żeby...
Pokaż kod. Różnice oczywiście są. Na przykład takie że ATMega128 ma o wiele więcej rejestrów specjalnych i dostęp do większości z nich musi odbywać się za pomocą LDS/STS a nie IN/OUT, co trwa dłużej. Ale z tego by wynikało że to na ATMega128 powinno to chodzić wolniej. Na moje oko masz jakiś problem ze sprzętem. Coś nie łączy i tyle.
Nie znam się zbytnio na bascomie, ale spróbuj czy jednorazowe przesunięcie bez pętli zadziała. Być może to jakiś ukryty problem z przesuwanie rejestrów które są rejestrami fizycznie podłączonymi do sprzętu.
Dokładnie gaskoin. Do autora - jak masz problem odpal symulator w AVR Studio, w tak prostym kodzie błąd znajdziesz natychmiast obserwując rejestry. Poza tym #define to coś o czym lepiej zapomnieć :) Jak już musisz udziwniać, to zamień to na zwykłe funkcje - kompilator i tak zrobi z tego inline, efekt końcowy będzie więc taki sam, a przejrzystość, kontrola...
Czy ktoś sprawdzał czy funkcje dotyczące bootloadera z biblioteki libc (boot.h) z WinAVR będą działały z ATmega128, wiem że działają z mniejszymi np. ATmega32 ale chyba te układy róznią się rejestrami używanym podczas programowania bootloadera ATmega128 wzgledem np. ATmega32 - tylko nie pamiętam szczegółów i nie wiem czy można przenieść bootloader z...
Na arduino bez problemu możesz pisać sobie programy w c w winavr i je tam testować. więc jeśli nie przeszkadzają Ci inne rejestry poszczególny mikrokontrolerów to arduino powinno się sprawdzić.
Nie wiem co to za zestaw ZL8AVR, ale czy wziąłeś pod uwagę, że ta różnica w nazwach rejestrów wynika z tego, że ATmega128 ma dwa UARTy? Jesteś pewein, że konfigurujesz i używasz dokładnie tego, który masz podłączony? Dodatkowo uC posiada fusebit umożliwiający pracę w trybie zgodności z ATmega103, w tym trybie jeden z UARTów jest wyłączony, nie pamiętam...
czyli powinno byc ? DDRD &= ~(1 << PD3); //wejscie a moze DDRD &= ~(1 << DDD3) ? PORTD |= (1 << PD3); //pullupy if(bit_is_clear(PORTD,PIND3)) { a moze (PINF,PINF3) ? } i dalej wykonuje sie zawartosc petli gdy PD3 wisi w powietrzu... M. Dodano po 28 No i udalo sie, dziala jako: #define DOOR1_IN DDRF &= ~(1 << DDF5);...
Korzystasz z dwóch przerwań a w kodzie włączyłeś obsługę jednego. Zrób tak jak na stronie Niestety nie dziala, kompilator wyrzuca mi: ../LED.c:33: error: 'GIMSK' undeclared (first use in this function) ../LED.c:33: error: (Each undeclared identifier is reported only once ../LED.c:33: error: for each function it appears in.) W Atmega128 ten rejestr...
nie jest chyba możliwe, żeby wystartowały w tym samym czasie? Jest to możliwe. Np. w ATmega128 w rejestrze SFIOR jest bit TSM (Timer/Counter Synchronization Mode). Kiedy bit jest ustawiony na 1, wówczas wszystkie timery są zatrzymane i możesz je skonfigurować w dowolny sposób. Kiedy bit TSM ustawisz na zero, wówczas wszystkie preskalery timerów się...
Próbkowanie mam co 10ms a uklad ten ma badac sygnaly o czestotliwosci nie wiekszej niz 10 Hz. Nie co ile tylko ile trwa sam pomiar, to się ustawia w rejestrach konfigurujących przetwornik.
Opóźnienie - zatrzymanie timera na określoną ilość cyklów zegara. Zanegowanie - zmiana wartości w rejestrze porównywania(chyba OCRx). Zamiast 10 dajesz 255-10=245. Wystawić na innym wyjściu - zmienić timer. Pomyliłeś pojęcia myśląc, że układ sprzętowego PWM steruje na rejestrze PORTx. Takie rozwiązanie nie pozwalało by użytkownikowi na korzystanie z...
to dla mojej atmegi raczej by ci chyba nie poszlo bo widze ze w atmedze128 jest juz wiecej rejestrów UDR niż jeden i pewnei trzeba deklarować który.
To raczej inaczej się robi. Wykorzystaj piny ICP i przypisane im rejestry. Timer musi pracować z częstotliwością zależną od wymaganej przez ciebie rozdzielczości pomiaru czasu. W przerwaniu odczytujesz zamrożone stany rejestru i masz pomiar w tyknięciach licznika timera.
witam Zaczynam z atmega128 i na wstępie mam problem z uart avrstudio i asembler problem mam mianowicie z dostępem a raczej z wpisem do rejestrów UBRRH UCSRC z tego do czego doszedłem po paru godzinach to to ze avrstudio pokazuje mi te rejestry jako NA . Dodam ze fusebit jest wyłaczony M103 może ktoś mógł by mi to jakoś objaśnić bo nie czaje jak się...
Mam małe pytanko to jakimi poleceniami można zasterować, w które rejestry wpisać dane aby móc sterować nożkami PORTG.
Wykorzystywac pamiec RAM ? RAM to przeciez zbior rejestrow, w dalszej przestrzeni adresowej. Trzeba sie do nich inaczej dobierac, ale nie zmienia to faktu ze to rejestry.
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...
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...
1. Nie definiuj F_CPU w kodzie z tych powodów: http://mikrokontrolery.blogspot.com/2011... 2. Zastanów się co to ustawia i na którym pinie: [syntax=c]#define ADCIN PF1 DDRC = (1<<ADCIN); //Ustawienie Wejścia ADC [/syntax] Gdzie więc podłączasz sygnał mierzony? 3. Zwiększ długość bufora str i upewnij się że to zadziała...
Udało mi się ustawic tryb ctc przy pomocy zapisu do rejestrów bezpośrednio. Bascom nie pozwolił mi bezpośrednio na użycie komendy do konfiguracji.
Łopatologicznie: Najpierw ładowana jest stara zawartość rejestru odpowiedzialnego za włączanie lub blokowanie przerwań (korzysta z tego np. polecenie ENABLE). Potem włączane jest przyjmowanie przerwań z linii INT4, tak jakbyś wykonał ENABLE INT4. A na końcu nowa zawartość rejestru zostaje zapisana w pamięci procesora. I od tej pory przerwania z INT4...
Nie bawiłem się ATtiny2313, ale jeśli ma PWM to da się zrobić jakieś odtwarzanie dźwięku z próbek. Robiłem takie coś na ATmega128. Puszczasz generator PWM na najwyższej częstotliwości i jakiś timer do generowania przerwania okresowo. Timer determinuje częstotliwość prókowania. Podczas każdego przerwania timera wpisujesz nową próbkę do rejestru generatora...
Do tego procka najlepiej zastosować EEPROM z wewnętrznym zatrzaskiem młodszego adresu, jak to było w '51. W ATmega128 PortA przesyła Dane i młodszy adres, PortC górny adres a PG0=/WR, PG1=/RD, a PG2=ALE i oczywiście musisz w opowiednich rejestrach uaktywnić te alternatywne funkcje portów.
Witam. Nie spotkałem się z polską wersją dokumentacji do Atmegi8 jest polski opis do Atmega128 tutaj masz linka www.elektroda.pl/rtvforum/viewtopic.php?... Jeśli nie chcesz płacic prowizji podaj mi e-mail to wyślę ci go na skrzynkę. Pozdrawiam
przede wszystkim zmien .include "tn22def.inc" na .include "tn13def.inc" przekompiluj program.... - zobacz jakie błędy następnie w jednym okienku acrobat readera otwierasz "dejtaszita" attiny22 a w drugim attiny13 - strona po stronie, rejestr po rejestrze porownujesz co trzeba zmienic... - moze nie jest to kompleksowe rozwiązanie - ale od tego bym zaczął.......
nelik1987-ściągnięcie PDF Atmega128 nic nie kosztuje. A to był pierwszy procesor Atmela który przyzwyczajenia odwrócił do góry nogami. Naprawdę trzeba to przeczytać. Jeszcze jest port C domyślnie ustawiony na debugger. I rejestry poza normalnym obszarem I/O. I adresowanie pamięci 128 a nie 64. Więcej nie pamiętam- ale może ktoś pamięta. I scal te pytania...
yyyyy "Ten sam program wgrany do atmegi8 działa bez problemu.." Ty wogóle rekompilujesz soft?? Czy tak poprostu binarkę z atmegi8 wrzucasz na atmegę128? bo jeśli wrzucasz to od-tak, to pewnik że niebędzie działać - inna ilość rejestrów i/o, eee co ja będę gadał...
wtf? Czy ty myślisz, że jak zrobisz 0<< B 1 na aktywne wyjście a zmieniasz OCR1 A , to się rzuca w oczy na pierwszy rzut oka :]
2,7V czyli OK, Pisząc o programie, miałem na myśli, że w momencie stwierdzenia zaniku zasilania, przerwanie wszystkiego co można i wyłączenie wszystkich zbędnych wewnętrznych układów, by zaoszczędzić ładunek w Goldzie, potrzebny do zapisu karty. Gdy już zrobisz z Goldem to co radził TMF, i jeżeli masz dobry oscyloskop, to spróbuj zobaczyć co się dzieje...
Szczerze to nie wiem jaki jest tego powód. Ja też spróbowałem i uzyskuje tylko cytowane czasy 1s, 99s 99min - totalny brak reakcji na zmiany w rejestrze timera. Tajemnicza sprawa.
Chyba juz wspominalem wczesniej, ale powtorze - programowany przeze mnie procek (tylko na symulatorze) to ATmega128. Jesli dobrze zrozumialem, to bede musial wykorzystac rejestr porownujacy, czy jak to sie dokladnie po polsku nazywa, aby otrzymac przerwanie po uplywie 10ms. LuznyTomasz: Czy moglbys rozwinac to co powiedziales w konkretny przyklad? I...
Witam Być może było to już na forum ale ja nie mogę dla siebie nic znaleść odpowiedniego. Siedzę w tym już kilka dni (może już się zestarzałem i coraz wolniej rozumuje) i narazie jest to wsszystko w powijakach. Używam kompilatora AVR-gcc wię język c mnie raczej interesuje. Do tej pory była to moja ulubiona 51 z którą nie miałem prawie rzadnych problemów....
Przeniosłem sei() pod ustawienie wywołania. Sprawdziłem multimetrem stan na wyjściu INT z PCF i ciągle buja się od 0 do 5 niezależnie jak ustawie rejestry w PCF. Źle je ustawiam ? Czy może z PCF jest coś nie tak ? Godzinę wpisuje i odczytuje bez problemu.
Zaczynasz dobrze. Wg protokołu inicjację "/?!\r\n" wysyłasz na prędkości 300 bd (ustawienie transmisji 7E1). Nie żadnej innej - 300, bo tak mówi norma. Licznik energii ma wówczas maksymalnie 2 sekundy na odpowiedź, a odpowiedzią jest wpierw ramka identyfikatora licznika, który ma postać "/XXXZD<CR><LF>", gdzie XXX jest identyfikatorem producenta,...
Pony Prog coś miesza z rejestrem konfiguracyjnym, chyba "przypadkiem" neguje go przez zapisem czy jakoś tak. Była o tym mowa kiedyś na forum.
Jak chcesz żeby ktoś ci pomógł to nie bierz punktów za PDFa. Wpisujesz w Google MBI5025 i pierwszy wynik to nota: [url=http://www.prom-electro.ru/document... Na 4 stronie jest tabelka, już prościej się nie da tego przedstawić. OE-uaktywnia wyjścia LE-zatrzaskuje stany wyjść CLK- zegar danych W momentach przejścia CLK z stanu niskiego w...
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...
... JTAG wylaczylem. A tryb zgodności z ATMega103 wyłączyłeś :?: Uwaga : Rejestry PORTF, DDRF, PINF, PORTG, DDRG, PING nie są dostępne w trybie zgodności z Atmega103 Piotrek
Wiem, że temat był już poruszany niejednokrotnie i liczę się z "niemiłymi" odpowiedziami... No to pierwsza "niemiła" odpowiedź: Zajrzyj do dokumentacji AVR-ka i sprawdź DOKŁADNIE co należy wpisać do rejestru DDRx , by port był wejściem lub wyjściem. //... static inline void owire_wy(void) { DDR(OWIRE_PORT) &= ~(1<<OWIRE_PIN);...
Tak, na ustawionym breakpoincie sie zatrzymywał ale dalej już krokowo nie szedł i nie odswieżał zawartości rejestrów. Problem rozwiązałem podmieniając procesor na nowy egzemplarz. Z nowo wlutowanym wszystko działa OK. Pozdrawiam
A dlaczego kolega ma ustawiony bit ADLAR w ADMUX ( ADMUX = 0b00100000; )? Przecież to włączenie wyrównania do lewej w rejestrze ADC, więc trzeba to chyba później uwzględnić w obliczeniach. Chciałbym jeszcze zauważyć, że sprintf() operuje na zmiennej czterobajtowej, która w każdej chwili może zostać zmieniona przez przerwanie od ADC przykładowo w czasie...
Niestety nie możesz użyć rejestru OCR3B by licznik pracował porawnie w trybie CTC. Musisz użyć OCR3A. Dlatego też pierwotna wersja programu jaką przedstawiłeś nie działa.
Witam! po pierwsze musisz upewnić się czy operacje zapisu i odczytu faktycznie działają. Z tego co zaobserwowałem, zaraz po uruchomieniu RTL8019AS wybrana jest strona 0 rejestrów. Jest tam taki rejestr zwany BNRY do którego można zapisywać wszystkie wartości z przedziału 0-255 i odczytywać na tej samej stronie. W związku z tym zrób taki test zaraz na...
Ad2. Tak, tabela 30 strona 70 Datasheeta. Ad4. Generalnie wszystkie nazwy biorą się z datasheeta. Skoro chcesz skorzystać z timer1, to szukasz w DS informacji na jego temat (od strony 108). Tryby pracy, a raczej ich podsumowanie jest na stronie 133 tabela 61. W cały rozdziale, tj 108 do 143 są opisane wszystkie rejestry, do czego służą i jakie ustawienia...
zumek nie ma znaczenia czy jest włączony czy też nie - reakcja ta sama. zauważyłem, że po "resecie" program leci od nowa ale wartości w rejestrach sie nie zerują i timer liczy dalej do momentu wpisania wartości...
Chciałbym Ci przypomnieć że Atmega128 ma 2 uarty więc kod void wyslij(unsigned char data) { while((UCSR0A&(1<<... == 0); UDR0 = data; } jest błędny. Rejestr UCSR0A nie ma takiego pola jak UDRE ale UDRE0 (strona 189 datasheet). Jeśli to nie pomoże, zamieść schemat elektryczny, może tam jest błąd.
rejestry atmega8 modbus rejestry rejestry modbus
serwis amica zmywarka zasilać pompa oleju swiatła dzienne schemat
pompa ciepła split pompa ciepła split
Nikai TV TP.SK506S.PB802 Vertical Lines & Remote Not Working After Akai Firmware Flash Arduino ESP8266 Watchdog – przykład użycia, obsługa SW/HW WDT, kod, timeout