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()...
.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.
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...
Jak sama nazwa wskazuje przy konfiguracji Timer1 masz compareA i compareB. Czyli masz dwa rejestry porowniania które zmieniaja odpowiednie nogi procesora czyli pwm dla tego tajmera są dwa A i B. Noga procka OC1a pierwszy PWM (kanał) i OC1B drugi. Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'regulacja...
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
Witam, już rozwiązałem problem(wyłączyłem bit konfigurujący z ATmegą 103 - w ustawieniach JTAGa) i wszystko jest ok.Być może rejestry w których były przypadkowe wartości to były te nadmiarowe ATmegi128 w stosunku do ATmegi 103. Pozdrawiam!!!
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,...
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.
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...
Witam wszystkich. Mam małe pytanie związanie z obsługą portów. Otóż czy jest możliwość jedną komendą wysłanie do 3 portów ( A, C oraz trzy pierwsze bity portu D = mam do tych portow podlaczony SRAM 512kb , adresowanie A0-A18) jakiegoś tam adresu. Wiem , że jest taka możliwość jako adres zewnętrznego SRAMu ale to co się orientuje to tylko do pinów A0-A15....
Proponuje jak zwykle dokumentację - rejestr SPCR.
Z tego co pamiętam, rejestry OCR1x uaktualnia się w przerwaniu overflow do timera.
Czyli mówimy o sygnale wejściowym rzędu 400Hz (rpm) i 120Hz (v). Tutaj nie trzeba żadnych przerwań, to wszystko można zrobić sprzętowo i tylko odczytywać rejestry co pewien czas. A grafika/animacje, to chyba tylko na postoju, bo podczas jazdy to raczej będzie rozpraszać niż pomagać? Moim zdaniem nawet M128 spokojnie wystarczy do takiego projektu. W...
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ć.
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...
Rozrysuj sobie na kartce wynik operacji OCR1AH=(wypelnienie>>4); i OCR1AL=wypelnienie; - pewnie zauważysz błąd. Druga sprawa - w AVR zapis do rejestrów 16 bitowych wymaga zachowania odpowiedniej kolejności - najprościej ich nie rozbijać na rejestry 8 bitowe i zrzucić pracę na kompilator.
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...
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ę...
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.
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...
Myślę że forum jest nie tylko po to by pytać. Kolega zdążył zamknąć wątek i napisał że Bascom nie pozwolił na skonfigurowanie Timera i musiał to zrobić na rejestrach. Nie wiedział jak, a ja chciałbym dla potomnych zostawić instrukcję. Dołączyłem ten post i odblokowałem temat. Tak to wygląda i się kompiluje: [syntax=basic4gl]$regfile = "m128def.dat"...
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...
Witam, posiada Atmega128 i jestem zmuszony użyć portu F jako wyjścia. Korzystam z AVRStudio 4.18 lecz rejestry tego portu nie są dostępne. Dowiedziałem się, że to tych rejestrów trzeba dostać się przy pomocy funkcji LDS/STS i tu rodzi się moje pytanie: Czy są jakieś odpowiedniki tych funkcji w języku C. Jak mogę ustawiać/kasować pojedyncze bity na porcie...
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....
... 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
Datasheet strona 174 Table. 74
tak dokładnie taki sam programik nawet na attiny 2313 teraz sprawdziłem i też działa. Zasilanie teraz zrobiłem tak jak krzych napisał i dalej nie działa. no to dalsze podpowiedzi - jakie jeszcze rejestry związane z portami mają AVRy? :wink: utro sprawdze pinb.4 = 1 :) próbowałem wszelkich mi znanych kombinacji aby odpalić diodę nawet toggle
Można dać NAKED i znając zasadę działania kompilatora w asm odłożyć używane rejestry na stos a w C napisać resztę. Czy sie mylę? Tylko po co skoro kompilator zrobi to samo w tej sytuacji? Naked to jest akt desperacji i rwania włosów z głowy "dlaczego nie użyłem porządnego uC". Należy dobrać uC do zadania, a nie kierować się swoimi umiejętnościami i...
Dzięki za podpowiedź, ale niestety nie pomogło :( Umieściłem te zmienne jakos globalne i nadal nic się nie wyświetla :( SPI i DS1305 działa dobrze, bo jak wrzuce kod w pętle główną to mi to ładnie sekundy odczytuje i wyświetla, więc widoczenie coś jest nie tak z tym przerwaniem .. DS1305 powinno co 1 sekunde wystawiać flagę przerwania na INT0, a w Atmega16...
Atmel się przesiada z oznaczeniami, a ATmega8 i ATmega 128 to wcześniejsze nazewnictwo, bo zaczynają robić procesorki, które mają jednakowe obudowy i rejestry i pierwsze cyfry mają je różnicować, podczas gdy następne oznaczają konkretną podrodzinę, a różnią się ilością pamięci Flash/RAM. ATmega128 to cienias dla ATmega1281/2561/1280/2560... ;)
Nie moge użyć instrukcji in w przypadku rejestru TWCR , ponieważ on znajduje się w obszarze rejestrow rozszerzonych i tam nie działają instrukcje in , out . The I/O memory space contains 64 addresses which can be accessed directly, or as the Data Space locations following those of the Register file, $20 - $5F. In addition, the ATmega128 has Extended...
2. Możesz użyć rejestrów przesuwnych np 4094 + jakiś element mocy (da sie zrobić na 2 pinach przy połączeniu kaskadowym i 8 przy równoległym). Przy równoległym 4 przekaźniki mogą być włączone jednocześnie. Jeżeli by wykorzystać rejestry przesuwne połączone kaskadowo to znikną ograniczenia związane z ilością włączonych przekaźników. Po prostu jeżeli...
Wykonuje przerwanie na procesorze Atmega128 pisząc program w C output compare i stosuje uchwyt w przerwaniu SIG_OUTPUT_COMPARE3A no i w tym trybie przerwanie mi działa jeżeli użyje uchwytu przerwania SIG_OUTPUT_COMPARE3B (odpowiednio) pozmieniam rejestry to niestety nie działa oto kod procedu najważniejszych: SIGNAL (SIG_OUTPUT_COMPARE3B) {...
Witam, Około pół roku temu zakupiłem moduł o którym mowa. Do tej pory nie korzystałem z PCF8583 modułu aż do dzisiaj. Rejestry da się zapisać oraz odczytać ale zegar stoi. Zwarcia w obwodzie kwarcu nie stwierdziłem...połączenia wydają się wyglądać poprawnie. Niestety nie mam jak sprawdzić czy kwarc coś generuje. Jakieś sugestie? Pozdrawiam Dosinsky...
Jesli nic nie zmieniales z lewej strony powinienes miec panel Workspace. Na dole tego panelu sa zakladki Project|I/O|Info. Kliknij zakladke I/O. Ukaze sie drzewko z zasobami procesora. M.in. jest tam galaz I/O. Po rozwinieciu powinien tez byc USART. W Atmedze 128 pewnie beda dwie takie galezie USART0 i USART1. Po rozwinieciu ukaza Ci sie wszystkie rejestry...
http://www.elektroda.pl/rtvforum/topic48... Cytat: Nie wiem czy to jeszcze aktualna uwaga, ale miałem ten sam problem, a po wczytaniu się w dokumentacje pisze tam że po włączeniu watchdoga i zresetowaniu układu - watchdog nie jest wyłączonay ( bit WDE w rejestrze WDTCSR nie jest zerowany ). Musisz jako pierwszą instrukcję w programie umieścić...
Ja mam tak rejestry i napewno odpowida ack po zaadresowaniu: Twar = &B10110100 'adres=180 dec, no general call answ. Twbr = &H00000000 'TWI bit rate (tu SLAVE dlatego 0) Twcr = &B01000101 'TWI enabled, TWI int enabled, ACK enabled Do tego jak już to odpalisz to potrzebujesz obsługę samego wektora przerwania i odpowiednie zareagowanie na to co...
A ni jest tak, że włączenie silnika i wogóle pracujący silnik czasami resetuje ci procka? Daj długi delay na początku to szybko to zauważysz. Nie masz włączonego watchdoga którego nie kasujesz? Czy masz dobrze skonfigurowane rejestry od przerwań? Może włączyłeś jakieś przerwanie a nie zrobiłeś jego obsługi? Może nie masz podciągnięcia na wyjściu sterującym...
A do czego wykorzystujesz ten układ? W skrócie: do szyfrowania połączenia Ethernetowego. Niby RTL zapisuje jakies dane, ale przeważnie błędne (albo nie zapisuje). Na razie tylko kilka rejestrów się zgadza, reszta jest błędna. A jak to jest z wyborem strony? Nie trzeba do CR wpisywać na miejsce bitu 6 i 7 (PS0 i PS1) odpowiednio żeby wybierać stronę?...
program pisze w bascomie (poniewaz narazie taki język znam, dopiero uczę sie C), w wersji prostej mial to byc zwykly sterownik do urzadzenia wentylacyjnego (pomiar cisnienia i sterowanie dmuchawą itd.), jednak z biegiem czasu zostały dodawane dodatkowe funkcje, a najwiecej miejsca zajmuje "historia modyfikacji" zapisywana do eepromu, ponieważ w bascomie...
To: ldir16,(1<<RXCIE0) | (1<<RXEN0) | 1<<TXEN0 Nie powinno być w nawiasie? Nie wiem jaki to kompilator, może ten nie akceptuje tego bez nawiasów. I tutaj: ldir17,0x00 ldir16,USART_Speed ;transmisja 4800 b/s ldir16,0x00 stsUCSR0A,r16 ldir16,(1<<RXCIE0) | (1<<RXEN0) | 1<<TXEN0 stsUCSR0B,r16 ;włączenie odbiornika RS...
bezpośrednio, bez pomocy wskaźnika można się odwoływać do pamięci zewnętrznej np tak: *((unsigned char*)0x1234) = ....; Problemem w dostępie do niższych adresów jest to, że pamięć zewnętrzna i wewnętrzna, przestrzeń i/o i rejestry mogą być osiągalne przez tą samą przestrzeń - przestrzeń pamięci ram, która ma 64KiB... Dolna część zewnętrznej pamięci...
Skoro to wstawka, to nie możesz tak: #define BARDZO_WAZNA_WARTOSC 42 asm volatile ( "ldi r16, %0" "\n\t" : /* wartosc zwracana */ : "M" (BARDZO_WAZNA_WARTOSC) : "r16" /* rejestry zamazywane */ ); Ewentualnie prościej: uint8_t stala = BARDZO_WAZNA_WARTOSC; asm volatile ( "jakas...
JarekC <- w zasadzie nie jest mi potrzebna tak "spora" moc obliczeniowa jaką udostępnia XMega, ale porównując cenę AtMega128 i AtXMega128X3 to wole wybrać XMega i powoli się z nim oswajać:). Druga sprawa to, że np. AtMega128 nie jest zalecany do nowych konstrukcji. tmf <- dzięki za obszerny opis. Póki co badam temat na sucho:). Z tego co napisałeś...
Bardzo dziękuję za podpowiedzi. Spróbuję z tym snifferem i zobaczę co się będzie działo. Co do kwarcu to jeśli będzie to jedyne rozwiązanie to spróbuję podmiany, choć trochę ucierpi procesor na szybkości czego wolałbym uniknąć. do tadzik85 dziękuję za informację, choć akurat dokumentację przeczytałem, ale mam jedną uwagę dla wszystkich którzy trafią...
Jak Ty sterujesz tymi silnikami krokowymi, że potrzebujesz tyle pierwiastków liczyć? Co do liczenia pierwiastków to przy obliczaniu rampy - przyśpieszenia/hamowania jest to chyba najdokładniejsza metoda i najprostszy wzór. Dlatego od tego zacząłem. Jest to w linku z mojego poprzedniego posta. Odpowiedź na Twoje pytanie kończy się przy równaniu nr 8....
FPGA to troche inna sprawa bo w jednej kosci mozesz i dac kilka procesorow do tego niezalezny hardware itp. Wszystko zalezy z jaka dokladnoscia musisz generowac sygnaly synchronizacji i wysylac do tego dane. Normalnie w PC miales pamiec obrazu o odpowiedniej organizacji ktora musiales wypelnic i fakt brak jakiejkolwiek sprzetowej akceleracji. Swojego...
Witam, od wczoraj zmagam się z problemem odbioru kodu RC5 w urządzeniu, w którym mam multipleks dużej ilości wyświetlaczy 7-segmentowych LED. Przerwania na multipleks przychodzą co około 4ms. Multipleksowanych cyfr jest łącznie 48, ale pogrupowane są one, tak jakby były tylko 4 cyfry. W każdym przerwaniu kody segmentów wysyłane są szeregowo na 3 rejestry...
rozkazy IN/OUT działają tylko do $60 adresu. Zamiast OUT'a daj STS UCSR0C, r16
rejestry atmega8 mcp23017 rejestry przerzutniki rejestry
chiński lampowy czytnik płyta panasonic generator szerokość impulsu
projektowanie elektroniki firmy sterownik rc310
Test zegarów samochodowych za pomocą Autocom Ustawienie zapłonu w Citroën AX - kopułka rozdzielacza