http://obrazki.elektroda.pl/4553573800_1... Przy tworzeniu projektów z mikrokontrolerami, oprócz uniwersalnych płytek stykowych, często przydają się gotowe moduły testowe, które można szybko podłączyć. Można kupić takie w wielu sklepach, ale ich ceny są na ogół absurdalne, np. w Kamami sprzedają płytkę z ATmega128 za 109 zł! Poniżej...
Dobrze kombinujesz z tym że wcześniej musisz włączyć zewnętrzną magistralę danych i adresową (ustawić odpowiednie bity). To jeden ze sposobów. Jednak koniecznie potrzebujesz ażeby ta zmienna była w zewnętrznej pamięci ?? Bo jeżeli nie to może zmieści się w wewnętrznej ? Magistralę w GCC włącza się tak: void xram(void) __attribute__ ((naked)) __attribute__...
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
Czyli zbyt późno, bo segmenty danych są inicjowane wcześniej, w .init4, czyli bez dostępu do pamięci zewnętrznej... O doprawdy? Czy o tym jakiś standard mówi? I czym to grozi jak będą nie w init4? Jakiś tajemny kod zainicjalizuje tę sekcję albo odwoła się do tej niewłączonej pamięci? Skąd ten kod się weźmie? Odpowiedź jest prosta. Ten kod trzeba napisać....
Ja już opykałem sprawe. Trzeba w rejestrze MCUCR włączyć dodatkową pamięć Ram. A potem : unsigned char *command = (unsigned char *) 0xFF04; unsigned char *data = (unsigned char *) 0xFF05; void write_command(char x) { *command = x; _delay_ms(10); } void write_char(char x) { *data =x; _delay_ms(10);...
Nie wiem dlaczego to chcesz napisać w Asm, ale musisz wiedzieć, że Bascom generuje plik OBJ który mozesz załadować do Atmel Studio i podejrzeć wygenerowany kod Asm. Mój program NoSave Tool także potrafi te dane wyciągać z pliku OBJ tyle że szybciej i przyjemniej - jednym klikiem. Proszę to zdeasemblowany kawałek (nie cały) kodu wraz z opisami która...
Witam. Mam problemik i bardzo prosze o pomoc. Robie projekt, w którym za pomocą USARTA chce zapisywać i oczytywać rejestry układu Wiznet (traktowany jako pamięć zewnętrzna). Problem polega na tym, że interfejs pamięci zewnętrznej działa ok do momentu, kiedy układ nie obsługuje przerwania. Po powrocie z przerwania pamięć zewnętrzna się nie chce zapisywać....
Witam. Robię obsługę czujnika przyspieszenia firmy MEMSIC MXD7202 (równoważnik ADXL202) przy użyciu mikrokontrolera ATmega8(kwarc zewnetrzny 8MHz). Czujnik mam z wyjściami cyfrowymi i pomiar dwóch wyjść tego czujnika polega na pomiarze współczynniku wypełnienia tego sygnału. Np. 50% współczynnik wypełnienia odpowiada przyspieszeniu 0g (g-przysp.ziemskie)....
Być może coś jest nie tak z twoją pamięcią lub może być to wina złego podłączenia jej do procesora... podaj jaka to pamięć podaj nazwę oraz jak podłączyłeś ją pod adresowanie z procesorem czyli adres oraz cs . Czy dałeś też układ zatrzaskujący adres a0-a7 przez 'ALE'? Spróbuj też wpisać przed pętlą : MCUCR |= (1 << SRE); // włączenie RAM'u co...
Witam. Jako że jestem początkujący w programowaniu pod AVR zwracam się do was z kilkoma pytaniami. Na początku napisze jak przedstawia się sytuacja: Robię projekt na propox'owej płytce EVBNet03 z minimodułem MMnet104. Projekt wymaga zainstalowania systemu czasu rzeczywistego FreeTROS + Specjalna maszyna wirtualna + komunikacja poprzez Ethernet. Postawiłem...
Ok dzięki te operacje na bitach (a w zasadzie bajtach) już rozumiem. Ta linia do masy układu rzeczywiście nie jest konieczna. 1. Co do wiatraczka to rzeczywiście pomyliłem kierunek strzałki. Czy tranzystor BD139 byłby ok? Może macie lepszy pomysł. Nad wygładzeniem zasilania dla wiatraczka też się zastanawiałem ale w tym układzie chyba nieda się tego...
W twojej książce znalazłem również zapis równy temu MCUCR |= (1<<SM1) czy jest on równoznaczny z MCUCR = (1<<SM1) czy używa się ich w zależności od czegoś ? :) Mam nadzieję, że po przeczytaniu książki znasz już operatory dwuargumentowe i wiesz co to oznacza |= ??? Ja z przyzwyczajenia wszędzie przy inicjalizacji bitów w rejestrach konfiguracyjnych...
[syntax=c]#include <avr/io.h> // Biblioteka wejść/wyjść #include <avr/interrupt.h> // Biblioteka przerwań #include <rc5.h> // Biblioteka ustawień RC5 #include <avr/eeprom.h> // Biblioteka pamięci EEPROM ////////////////////////////////////////... // // // PROGRAM DEKODOWANIA SYGNAŁU RC5 dla AVR // // ATtiny2313 // // //...
Witam Napisałem program i mam z nim problem. Po skompilowaniu zajmuje mi prawie całą pamięć 1724bytes (84,2%). Przyczyną jest zmienna opuzgrzew w _delay_us( ). Gdy zamiast tej zmiennej wstawię wartość stałą, program zajmuje mi tylko 400bytes (19,5 %). Czy ktoś ma pomysł jak zmniejszyć objętość programu? Zależy mi na tym ponieważ chciałbym dołożyć jeszcze...
Bardzo często pisząc programy posługujemy się zmiennymi lokalnymi, które teoretycznie zwalniają pamięć jeśli nie są używane... ale dlaczego przestawiając podział pamięci na zewn. SRAM (kostka 62256), zmienne te jakby się nie inicjowały i program się wywala? Przykład: dodałem do makefile LDFLAGS += -Wl,--section-start,.data=0x801100,--def...
Witam, mam problem z oprogramowaniem do regulatora modelarskiego na atmedze8, nie mogę poprawnie odebrać sygnału z odbiornika. Wiem że takich tematów było dużo, wszystkie które udało mi się znaleźć znam już prawie na pamięć i nadal nic. Teoretycznie odbiornik wysyła wygnały dodatnie co około 20ms trwające w zależności od wychylenia drążka około 1-2ms(mój...
Chętnie. Czegoś więcej się nauczę. plik H: [syntax=c] #ifndefLCDHD44780_H_ #defineLCDHD44780_H_ /* #defineLCD_HD_5X8 // Polskie znaki czcionką 5x8 a nie 5x7 //#defineLCD_ONLY_PL // Definicje w FLASH tylko znaków PL (mniejsze zużycie FLASH) //#defineLCDMIROR // Użycie tworzy w RAM kopię treści wyświetlacza #defineLCDLINE4 // Liczba wierszy #defineLCDROW20...
Dzięki wszystkim za opinie. Oddałem dziś projekt został oceniony na 5;] Dokonałem kilku zmian w programie więc wrzucam nową wersję: http://obrazki.elektroda.pl/8149391200_1... Jeśli już eliminujesz drgania styków programowo i w dodatku z użyciem timera, to mogłeś się pokusić o tak samo zrealizowane opóźnienia. Mnóstwo pamięci pożera...
Witam, Do pamięci zewnętrznej odwołujesz się przez zwykły wskażnik o adresie większym niż wewnętrzna przestrzeń adresowa RAM'u Więc aby stworzyć tablice musisz odwołać się przez wskażnik char* bufor = (char*)0x8000; // deklaracja adresu początkowego tablicy //--------------------------------------...
Zamień "in r24, MCUCR" na "in r24, 0x35" ... to wskazanie na adres w pamięci rejestru MCUCR. Wyeliminuje ewentualną pomyłkę w pliku deklaracji mikrokontrolera ;)
aby używać pamięci rozszeżonej ram musisz mieć ustawiony bit SRE w rejestrze MCUCR. Linii nietrzeba konfigurować.. Pierwszy bajt pamięci rozszeżonej znajduje sie za ostatnim bajtem pamięci podstawowej (zakres pamięci od 0x260 do 0x825F)
jeśli ustawisz bit sre znajdujący sie w rejestrze mcucr, a pamięć zew ram masz podpiętą do portów a i c, i pinów ale/wr/re to całość masz mapowaną w sprzęcie.. (na google.pl znajdziesz jak podpiąć ram) pamięć wewnętrzna znajduje sie w adresach od 0x60 do 0x25f, a zewnętrzna tuż za tz. od 0x260 do 0x825f (dla 32KB ramu), odczyt i zapis wyglądają tak...
Co do pierwszych dwóch uwag - zgadzam się, dodałem konkretne cytaty w odpowiednie miejsca. Co do ostatniej, tak, wyjaśniam już, że zwykle jest to początek pamięci flash, jednak w specyficznych przypadkach (konkretnie przy ustawieniu bitu IVSEL w rejestrze MCUCR w procesorach, w których ten bit jest dostępny) przenosi początek tej tablicy pod adres w...
No jeśli chcę używać przerwań to z dokumentacji wynika że powinienem na początku kodu botladera umiećcić:[syntax=c]/* Umożliwienie zmiany wektorów */ GICR = (1<<IVCE); /* Wektory przerwań na początku obszaru botlaoadera */ GICR = (1<<IVSEL);[/syntax] natomiast na końcu analogicznie:[syntax=c]//wyjscie i ustawienie przerwań na początku pamięci...
Program chodzi doskonale na Mega32. Ale kod jest na tyle mały, że zmieścił się do bliźniaczej Mega16. Na pierwszy rzut oka identyczne oprócz wielkości pamięci. Różnice są głębsze niż tylko pamięć: - zupełnie inaczej ułożona tablica wektorów przerwań. - inne umiejscowienie bitów w rejestrze MCUCR. choć przy ponownej kompilacji programu pisanego etykietami...
polecam Atmega128. 128KB pamięci flash na program - pomieścisz wszystko a nawet więcej, 16MHz przy 16Mips, sterowalnych pinów jest 53 więc można sie spokojnie bawić. pamięć danych - spokojnie można podłączyć do mikrokontrolera zewnętrzną kość ram (do 64KB), ustawić odpowiednie rejestry (mcucr itp) i już jest pamięć mapowana w przestrzeni adresowej,...
Witam, Nie zakładałem nowego tematu, gdyż szukam pomocy własnie odnosnie pamiec zewnętrznej SRAM i atmegi128L. Otórz mam atmege128L(8MHz) i pamiec SRAM: BS62LV1027 i zatrzask 74HC573. Wszystko mam juz połączone i teraz piszę kod na tą pamiec. Czytałem o podłaczeniu pamieci w dokumentacji zarówno procka jak i pamieci i nie rozumiem do konca jak wygląda...
...ta funkcja nie jest całkiem niepotrzebna - ten odczyt z zewnetrznej pamięci ustawia "przy okazji" zewnętrzny zatrzask, którego zawartość jest następnie wykorzystywana do adresowania rejestów ATA/IDE. To jest %100 racji , pisałem o tym wcześniej. Autor projektu 'cd_free' bazował na schemacie i kodzie yampp3 też to pisałem, została tylko usunięta...
Avrdude chyba sam to robi. Dodano po 1 Zmieniłem kwarc i kondensatory przy nim, bez rezultatu. Dodano po 8 Podejrzałem też fusy innym programatorem dla pewności (STK200) pod bascomem i wszystko jest tak jak powinno. Jtag wyłączony, tryb zgodności wyłączony i kwarc zewnętrzny a mega pracuje jak chce. Dodano po 45 Portc odblokowany. Winowajcą jest obsługa...
Program bootloadrera jest ładowany na końcu pamięci. W chwili uruchomienia programu użytkownika wykonywany jest skok z boot'a do adresu zero (czyli na początek pamięci) (albo gdzie tam chcesz - zależy tylko od własnych preferencji i ustawień w linkerze). Największa zabawa z boot'em polega na jednoczesnym czytaniem i pisaniem do pamięci flash - i tu...
Widzę, że temat nie dotyczy tylko mnie. Mi osobiście nie udało się jak narazie jeszcze wyeliminowac tych zakłóceń, także nie udziele pewnie pomocnej rady. Korowiow83: Nie napisałes jakiego zatrzasku używasz, spróbuj wersję AC573, mi osobiście to nie pomogło ale .... Kody wydają sie poprawne i skoro sprawdziłeś połączenia to ja więcej nie pomogę. Candle:...
Witam, doczytalem ze nie wystarczy wlaczyc XMEMa w MCUCR aby obslugiwac zewnetrzny ram,ustawiam sobie ze bedzie jeden sektor pamieci. Tym samym trace 4KB wewnetrznego RAMU ale zyskuje zewnetrzny. Pamiec strobuje z uzyciem A15 wiec interesuja mnie adresy 0x8000 - 0xFFFF. Trzeba jeszcze powiadomic o tym kompilator. Uzywam WinAVR i jest tam sekcja w makefilu...
Panowie, czy któryś z was używał VUSB z pamięcią zewnętrzną RAM ? Ja mam 64k na mojej płytce z atmega128 i niestety gdy dodaje: [syntax=c] void before_main(void) __attribute__((naked)) __attribute__((section(".init3"))) { MCUCR = 1<<SRE; SFIOR = 1<<XMBK | 1<<XMM0; DDRC = 0x80; PORTC &= ~(1<<7); SP = 0xffff; } [/syntax] do...
cześć. odgrzewam temat, ponieważ problemu nie udało się rozwiązać. Płytke procesora osłoniłem 1mm stalową blachą. low esr 1000u obok procesora. nic to nie dało, albo nie wiele. Procesor dalej się resetuje przy włączeniu stycznika. Program nie idzie w krzaki i zawartość pamięci nie ulega uszkodzeniu dzięki ustawieniu odpowiednich fusebitów zegara, zasilania....
To taki nawyk z C i asemblera :D . A poza tym to łatwiej manipulować rozmiarem stosu mając te informacje w programie, zamiast cały czas wchodzić w to okienko, gdzie to się zmienia. Jak podasz te informacje w programie to mają one priorytet nad tymi z okienka i tyle. Wgrywałeś ten program z moimi poprawkami do uC :?: Czy coś jest generowane na porcie...
Inicjalizacja : .def TempA=r17 InitExtSRAM: in TempA, MCUCR sbr TempA, 1<<SRE out MCUCR, TempA ret Zapis bezpośredni : DirectWriteExtSRAM: sts DataInExtSRAM, TempA ret Zapis przy po-mocy rejestru indeksowego : IndexWriteExtSRAM: ldi XL, low(DataInExtSRAM) ldi XH, high(DataInExtSRAM) st X+, TempA ;podobnie z Y(YL:YH),...
Jęsli jeszcze potrzebne:) LCD masz połączony przez dekoder adresu. Wystarczy dane podać na adres 0xFF05 – rejestr danych, a instrukcje na 0xFF04 – rejestr instrukcji. Przyklad ( sprawdzany na ATMEGA128 EVB503 - wtedy mam inne adresy danych i instrukcji. W przykładzie zmieniłem na te które są Ci potrzebne w EVB03) #define LCD_instrukcje (*(unsigned...
Stosując interfejs JTAG mamy właśnie sprzętowy dostęp do wszystkich rejestrów, jakie by one nie były. Można np. załączyć debuggowanie, potem wymusić 0 (sprzętowo - zwierając tą linię do masy) na jakieś linii portu. Będzie to widać w AVR Studio - zmieni się stan PINn. Można też zmieniać wartości pszczególnych rejestrów, flag np. słowa stanu (odpowiednik...
Cześć. Napisałem swój pierwszy program na przerwaniach, ale nie działa on do końca tak jak zamierzałem. Układ jest taki, że pod port B mam podpiętą diodę/diody, a pod wejście wywołujące przerwanie PD3 (INT1) mam podłączony oscylator o zmiennej częstotliwości w zakresie od 0 do +/- 30Hz. Program miał polegać na tym, że powyżej granicznej częstotliwości...
Witam wszystkich, robię mały projekt do którego używałem Atmegę8. Zaczyna mi brakować pamięci więc stwierdziłem, że wymienię ją na Atmegę328. Niestety jest trochę zabawy z przerobieniem kodu, po pierwsze w Atmega328 nie można używać PD0 itp, tylko PORTD0. Po drugie timery ustawia się innymi rejestrami. Ogólnie program sobie przerobiłem, niestety została...
Witam, Napisalem gdzie zaczyna sie problem, uk wywołuje przerwanie samoistnie, zaraz po globalnym zezwoleniu na przerwania sei() sam przechodzi do przerwania i je wykonuje. Chce mieć możliwość przerwania pętli while w jakimkolwiek momencie. Sposób jaki zastosowałem uważam za mało efektywny ale nie wiem jak inaczej się za to zabrać. Pozdrawiam #define...
witam wszystkich, Mam moduł MMnet03, który zawiera atmege128, mam problem z uruchomieniem LCD w interfejsie 8bitowym, chce to zrobic jak jak jest w dokumentacji rys18 http://www.propox.com/download/docs/MMne... Tzn, tak jak podłącze sie bezpośrednio do portów uC które są wyprowadzone na płycie,to wyświetlacz w interfejsie 4bitowym mi działa odpowiednio...
Postanowiłem na moment uprościć sobie zadanie - użyłem przerwań przepełnienia Timera1 zamiast przerwania porównania. Nie wiem czy program jest napisany efektywnie, ale za to działa. Wrzucam jego kod: INT0 znajduje się również instrukcja zapalenia diody. 3. Licznik mrugnięć zmniejszyłem do 19. Dzięki temu ostatnie przełączenie powoduje zgaszenie diody...
Witam, Próbując zaprogramować Attiny13 do kitu AVT2929 (Sterownik LED mocy do latarek) programem pobranym z elportalu napotykam błąd Załączniki ogólnodostępne w sieci - usunięto. Poprawiono tytuł. LordBlick
Eh, opornie to idzie. Próbuję obsłużyć przerwanie. Że tak powiem - moje pierwsze w życiu :P Póki co nie idzie za bardzo. Przypuszczam, że coś źle robię z ustawieniami pamięci (.org coś tam). W każdym razie - mam podłączony klawisz do pinu INT0 (ATmega16). Program ogólnie komunikuje się z Delphi, ale chciałem, aby przy naciśnięciu tego klawisza wyszło...
Funkcje zadeklarowałem jako inline, ponieważ są one wywoływane tylko raz w całym programie. Bez inline kompilator nie domyślił się tego i tworzył normalne wywołania, co było widoczne w listingu i w rozmiarze programu. Stosując inline zaoszczędziłem naprawdę sporo pamięci. Przeniesienie definicji funkcji do pliku nagłówkowego obecnie niby działa. Poniżej...
Program przekopiowałem już toczka w toczkę z płyty dołączonej do książki, oczywiście zmieniłem pod moje podłączneie do procesora ukłądu pcf8583 ale nadal nie wywołuje przerwania ten układ i nic nie mogę z niego zczytać. Jak sprawdzić czy czasem w jakiś sposób nie uszkodziłem tego układu? Jedyna różnica przy podłączniu odbiegająca od książki to nie podłączone...
Wszystko uwzględniłem. Przetestowałem funkcję dummy_timer, ale po chwili zastanowienia użyłem zwykłych opóźnień. Więcej wolnego miejsca w pamięci uC. Przełączanie stanów przerwania działa idealnie. Problem pojawia się przy dłuższym przytrzymaniu przycisku, uC jest w stanie uśpienia i nie reaguje już na wybudzenie. [syntax=c] #include "LCD.h" /*plik...
Poniżej źródło w którym mam: -pomiar ADC -pomiar szerokości impulsu PWM wysterowanie przekaźnika -USART Mikrokontroler ma spełniać funkcję sterownika do ledów jako oświetlenie samolotu z wyróżnieniem wszystkich etapów startu jak kołowanie włączenie silników itp. [syntax=c] #include <avr/io.h> #include <inttypes.h> #include <util/delay.h>...
Witam. Po przerwie wracam do tematu gdyż nadal nie mogę poradzić sobie z obsługą karty Compact Flash za pomocą mikrokonrolera. Sprawa wygląda w ten sposób że wykonałem układ do obsługi karty CF jak na poniższym schemacie. Poniższy schemat jest zaczerpnięty z Elektroniki Praktycznej z rocznika 2/2004 http://obrazki.elektroda.net/39_12252239...
Udało mi się zapisać pierwszą stronę pamięci, potem modyfikowałem program i chciałem zapisać kilka stron - za każdym razem zapisywała się tylko 1 strona poprawnie aż w końcu zapisuję tylko pierwszą stronę i to błędnymi danymi. Długa noc przede mną... wrzucam w zasadzie cały testowy kod, przepraszam za bałagan bo jest w nim pełno zakomentowanych kawałków...
Piszę obecnie program obsługujący termometr ds18b20. Nie mogę wykorzystać gotowych bibliotek dostarczonych razem z kompilatorem (CodeVision), więc obsługę 1 wire napisałem sam na podstawie specyfikacji. Jednak poza wysłaniem resetu komunikacja nie przebiega poprawnie. Oto mój kod: /***************************************... This program was...
Witam, jak w temacie, czyli źle wyświetlają mi się cyfry na LCD w sensie tak chcą ( 00 -> 01 -> 00 -> 01 -> 00 -> 08). Nie wiem po jakiej stronie leży problem. Pracuje na płytce ewaluacyjnej GOTRONIK z Atmega32A z RTC PCF8583 ( INT-PD2, A0-GND, SDA-PC1, SCL-PC0) Umieszczam kody programu: Main.c [syntax=c]#define F_CPU 16000000L #include...
Szanowni Forumowicze, Chciałbym zrobić układ, który będzie zapisywał dane czasu do pamięci eeprom po wyłączeniu zasilania. W tym celu na wyjściu stabilizatora liniowego LM7805 umieściłem diodę schotky, za nią kondensator podtrzymujący zasilanie, zasila on sam procesor i reset procka. Przed diodą jest zasilanie reszty układów. Układ wykrywania awarii...
Zmodyfikowałem przerwanie do takiej postaci: ISR(INT1_vect) //przerwanie od złącza PD3 (INT1) { if( ((PIND&0x08)==0)&... ) //jeśli został zwarty pin... { TCCR1B |= _BV(CS10); //start timera (przerwanie przez zrównanie) znacznik=1; //oznacz że rozpoczeło się liczenie...
Wyciąłem tylko obsługę EEPROM bo mi to nie potrzebne. Jak by ktoś mógł by się przyjrzeć to był bym wdzięczny. [syntax=c] /* * main.c * * Created on: 2010-09-07 * Autor: Mirosław Kardaś * * Program korzysta ze sprzętowej obsługi I2C/TWI * Umożliwia zapis danych do RTC oraz EEPROM a także * oczyt z tych urządzeń * */ #include <avr/io.h> #include...
Chyba tryb PWM, Phase Correct nie jest dla tych serv. Zmieniłem poniższy kod i serva przy ICR1 = 4999 zaczynają drgać aż podskakują na biurku, przy waratości 2000 już nie ale w żadnym wypadku nie da się kontrolować kierunku obrotów ani szybkości. Z powyższej informacji wynika, że nie w pełni poprawnie interpretujesz proces (mechanizm) tworzenia fali...
Witam. Od dłuższego czasu męczę się nad rozgryzieniem pamięci DataFlash AT45DB011. Jest ona w module MMmega02 podłączona pod SPI mikrokontrolera Atmega128. Jak narazie udało mi się odczytać wartości z pamięci, jednak nie mogę nic zapisać i nie mam pojęcia dlaczego. Wartości jakie mi się wyświetlają na wyświetlaczu to "255 255 255". W załącznikach podaje...
Witam, Jestem posiadaczem zestawu ZL3AVR dołączonym do książki Mikrokontrolery AVR w praktyce. Książka posiada gotowe przykłady, lecz działa mi poprawnie pierwszy program z diodami. Program trzeci, czyli przerwania + klawiatura już nie działa; Gdzie jest błąd? W podręczniku, czy gdzie? Ten program miał na diodach led wyświetlić odpowiednią wartość stosownie...
Witam! Głowie się z tym nie wiem którą godzinę i nie mogę dojść czemu tak się dzieje. Mam tego typu program: #include <avr/io.h> #include <avr/interrupt.h> float m_sekundy_wtrysk=0, m_sekundy_obr=0, wynik2=0; uint8_t i=0, k=0, znacznik=0; float wynik=0; ISR(INT1_vect){ //przerwanie od złącza PD3 (INT1) TCCR1B |= _BV(CS10);...
[syntax=c]#include <avr/io.h> #include <util/delay.h> #include "pcd8544.h" #include <avr/interrupt.h> void i2c_start() { //twint- flaga jest wyzerowana, gdy jest na niej 1, jest ustawiona gdy jest na niej 0 TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTA); //twcr-rejestr ustawień modułu twi, twint-twi interrupt flag, twen-twi...
Wiem ze w PHP operatory sa takie same jak w c, dlatego ucze sie C na uC, a nie np BASCOM'a ;] (choc C lepsze ;]). Dzięki za pomoc, teraz jest ok. Dodano po 14 A jednak nie, wystąpiła jeszcze bardziej komiczna sytuacja. Scislej: Gdy nacisne przycisk, do pamieci zapisywany jest czas wciscniecia, gdy w krótkich odstepach czasu nacisne kilka razy, mam po...
Jak przewalczysz temat będziesz wiedział, czemu wszyscy piszą, że przerwania mają być krótkie ;-) Tak tylko jakieś pomysły jak to rozwiązać w inny sposób? Wpadłem na pomysł aby zapalać jakąś flagę... np. odebrano coś na uart > zapal flagę... w main()...while(1)... sprawdź co to i zgaś flagę ?! czy to tak będzie działać? Jeśli odbiornik zgubi LF...
Witam Chciałem się podzielić prostym urządzeniem nazwanym prze zemnie "alarmem do szopy". Jak sama nazwa wskazuje urządzenie to ma stanowić pewnego rodzaju "zabezpieczenie" przed nieproszonymi gośćmi. Jego zadaniem jest wystraszenie-odstraszenie potencjalnego intruza i zaalarmowanie sąsiadów (gorzej jak intruzem okaże się sąsiad). Układ oparty na uK...
Witam Mam pewien problem z obsługą wewnętrznej pamięci EEPROM w ATmedze8. Mianowicie, napisałem prosty program mający na celu zliczać ilość wystąpień przerwania zewnętrznego INT1. Wszystko wydaje się działać poprawnie, ilość wystąpień przerwania jest zliczana prawidłowo i zapisywana w EEPROM oraz wyświetlana na LCD, jednak czasem po włączeniu zasilania...
Cześć, chciałem przeportować kod do odbioru RC5 autorstwa Dondu za ATMega8 na ATTiny13 - http://obrazki.elektroda.pl/8294459100_1... REzystory diod 470Ω, nie zmieniłem na schemacie. Pilot samoróbka, ale 100% pewniak. No więc w czym problem? Uruchomiłem przykład na ATMega8, wszystko pięknie śmiga. Program kompiluje się dla Tiny13...
Witam wszystkich bardzo serdecznie. Z okazji ukończenia szkoły elektronicznej postanowiłem zrobić sobie zegarek/wyświetlacz widmowy. Niestety utknąłem na funkcji, która ma odczytywać znaki z tablicy w pamięci i wyświetlać je w zrozumiały dla ludzi sposób ;). I tu zwracam się do was z prośbą o pomoc w poprawieniu tej funkcji abym mógł wyświetlić jakąkolwiek...
Dzięki Panowie za pomoc, poradziłem sobie z konfliktem sygnałów. Zastosowałem 2 przerwania zewnętrzne które odczytują wartość licznika, oraz 1 przerwanie od przepełnienia w którym inkrementuję odliczanie sekundy. Pozostało jeszcze wysłać zebrane dane do jakieś pamięci np. karta SD. W razie pytań będę pisał tutaj. #include <avr/io.h> #include <stdlib.h>...
Witam, Od jakiegoś czasu zmagam się z problemem braku odczytu danych z żyroskopu w układzie MPU-6050, poprzez I2C. Wykluczam problem z komunikacją pomiędzy układem, a mikroprocesorem(Atmega 32), ponieważ wszystkie dane z rejestru można odczytać(w tym z akcelerometru). Podejrzewam, że żyroskop trzeba w jakiś specjalny sposób aktywować, choć przekopałem...
Zabrałem się za ten sleep i coś mi nie działa wyświetlacz :( Nie wskazuje prawidłowych liczb tylko jakieś krzaki :/ Sprawdzałem w symulatorze i dobrze odczytuje wartości z pamięci a na wyświetlaczu krzaki :/ I nasuwa mi się pytanie czy tryb sleep typu idle powoduje przejście portów w stan wysokiej impedancji ? To by jakoś tłumaczyło te krzaki na wyświetlaczu....
http://obrazki.elektroda.pl/3207877000_1... http://obrazki.elektroda.pl/9634776400_1... http://obrazki.elektroda.pl/8673988800_1... http://obrazki.elektroda.pl/3005768300_1... Termometr z funkcją pamiętania maksimum i minimum (zapisane w rejestrach, tracone przy braku zasilania). Program...
Witam, zbudowałem klasyczny zegar, tak jak w temacie napisałem na ATmega32, Chińskim module z układem DS1307 i z jakąś pamięcią na I2C której nie używam, czas pokazywany jest na wyświetlaczu LED. Wcześniej testowałem sobie to wszystko z wyświetlaczem LCD 2x16 HD44780 wszystko śmigało mi super. Po dodaniu LCD i multipleksowania zegar po kilku, kilkunastu...
Witam ! Programuje właśnie uC Atmega8. Mam pewien problem z ustawieniem klawiatury. Otóż, podłączam ją poprzez ps/2 do atmegi, literki są poprawnie wyświetlane na wyświetlaczu LCD jednak jest taki problem ze podwójnie( AABB..) jeżeli wcisnę dość szybko jedna literkę po drugiej to mam : ABAB ... . Podejrzewałem, że to flaga 'nowy' jest za późno się zeruje,...
Witam! Próbuję poradzić sobie z zapisem i odczytem zmiennej z EEPROM'u. Gdy po zapisaniu do pamięci zmiennej resetuję procka przy użyciu programatora to jest ona prawidłowo odczytywana. Gdy natomiast odłączę zasilanie to niestety procek odczytuje mi inną wartość. Ta źle odczytana wartość równa jest '1' czyli takiej wartości jaką wpisuję do EEpromu w...
Wiec kto mi wytlumaczy kiedy ustawiany jest stan wysoki ALE i od czego zalezy. Jak to skonfigurowac zeby porty byly takie jak w normalnym trybie a na ALE pojawial sie impuls, gdy wysle na port A jakas dana. Tam jest tylko konfiguracja rejestru MCUCR zeby pracowal w trybie obslugi pamieci zewnetrznej a co dalej??? To sa moje poczatki z programowaniem...
Załącz plik ds18x20.c, załączyłeś tylko plik nagłówkowy. Potem będziesz musiał zamienić zmienne cel i cel_fract_bits na tablice i będzie ok. Twoim zdaniem utworzenie tablic będzie zbawienne, może to trafne. Od jakiegoś czasu ma pomroczność i nie mogę się skupić, najprostsze rzeczy stwarzają mi ogromną trudność - to chyba przesilenie. A zatem stworzenie/zamiana...
Przepraszam odrazu że poruszam temat wałkowany 1000 a moze i wiecej razy. Niestety jednak niepotrafie sobie sam poradzić dlatego prosze was o pomoc. Termometr wyswietla mi cały czas temp -0.02 Niemam pojecia dlaczego Ds jest zasilany ciągle (nie przez iwire) a środkowa noga zwarta przez rezystor podciągający (4,7k) do zasilania. podłączyłem go do 0...
Zwarcie Vcc do GND pomogło, ale dopiero takie dłuższe zwarcie ( 5 sek). Wyświetlacz ocnkął się, wyświetla dane, ale !!! ciekawostka, zegar stoi. Załaczam kod, taki wprost z Eclipsa, bez bibliotek. Jestem w trakcie przeróbki z innego projektu, proszę o wyrozumiałość. /* * main.c * * Created on: 2010-09-25 * * * PD7 - 1WIRE * PA0..PA7 - LD0..LD7 -...
Witam Kombinowałem już rożnie i nie wiem co źle napisałem że nie działa poprawnie. Powinno działać na stan niski, a w rzeczywistości działa non stop - niezależnie czy jest stan niski czy wysoki. [syntax=asm] .include "tn2313def.inc" .equ wejscia = portd .equ in_wejscia = ddrd .equ dane = portb .equ in_dane = ddrb .equ baud=9600 .equ freq = 12000000...
Witam. mam mały kłopot z przerwaniami w bootloaderze na wymienionym procesorze (dataszit o ile mnie oczy nie mylą, mowi ze adresacja sekcji pamieci flash jest taka sama jak w zwyklej atmedze8) proc ustawiony na wielkosc sekcji boot na 1024 słowa, po resecie wskakuje do bootloadera. program skompilowany pod 0xC00 czyli w makefile de facto adres .text...
Witam, mam następujący problem - staram się dołączyć do Atmegi 64k pamięci sRAM, konkretnie 2x 61256-15. Póki co procek taktowany wewn. rezonatorem 8MHz, docelowo ma być kwarc 16MHz (jeszcze go po prostu nie wlutowałem). Wyłączona zgodność z Mega103, JTAG też. Schemat tutaj: http://obrazki.elektroda.pl/8691151200_1... Przy czym bufor...
-------------serdecznie dziekuje za pomoc,podpowiedzi! i prosze o wyrozumialosć ----------- wklejam caly kod (napisany w Bascomie) i bylbym wdzieczny za pomoc w przeanalizowaniu jego dzialania, czesc kodu odpowiedzialna za dzialanie przetwornikow AC i sterowanie wyswietlaczem LCD nie istotna dla mnie w tym momencie ----------------------------------------...
Funkcje do obsługi wyświetlacza pochodzą z gotowej biblioteki, którą znalazłem za pośrednictwem elektrody. Oto funkcja do wrzucania tekstu na lcd z flash procesora. Co do pamięci - avrstudio pokazuje mi że używam około 12kB flash i 300bajtów sram więc ok. Co do double i float to nie wiedziałem, że to to samo... A jakie są tego konsekwencje? Funkcja...
Właśnie moja nauka zatrzymała się na wyświetlaczu LCD. Mruganie diodami już za mną. Dlatego proszę o pomoc:) Skonfigurowałem dwie biblioteki. Dodałem jako załącznik. Jeśli ktoś może to bardzo proszę o sprawdzenie. Pierwsza to biblioteka ze strony http://radzio.dxp.pl/hd44780/hd44780_avr... Wygląda tak: Pkik HD44780.h //--------------------------------------...
Witam, pisze program w assemblerze który pozwarciu INT0, będzie wykonywać określoną czynność(łączyć się z innym urządzeniem), Ale narazie utknąłem w martwym punkcie, napisałem program który po zwarciu INT0 wywołuje przerwanie które zapala diodę podpiętą do lini PC0 5 razy i gasi(zapalenie uzyskuje poprzez ustawienie PC0 w stan wysoki). Całość funkcjonuje...
#include <inttypes.h> #include <avr/io.h> #include <stdio.h> #include <stdlib.h> #include <avr/iom32.h> #include <avr/interrupt.h> #include <string.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "HD44780.h" //definicje zmiennych volatile int ms, s, m, h, znacznik; char buf[256];...
do CR0 ładowałem wartość 100 na preskalerze 8, ale i tak program się wieszał. Robiłem test w którym momencie się wiesza i wyszło, że przy TIMSK |= (1 << OCIE0) [syntax=cpp]#include "board.h" #include <avr/interrupt.h> #include <avr/math.h> #include <avr/signal.h> #include <util/twi.h> #include <avr/pgmspace.h> #include...
[syntax=c] /* * main.c * * Created on: 2014-10-01 * Autor: Dariusz M. */ #include <avr/io.h> #include <avr/wdt.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <util/delay.h> #include "1Wire/ds18x20.h" #include <string.h> #include <avr/eeprom.h> #include "I2C_SOFT/i2c_soft.h" #include "LCD/lcd44780.h"...
Pomoozcie prosze z tym kodem: #include "defines.h" #include <ctype.h> #include <stdbool.h> #include <stdint.h> #include <stdio.h> #include <avr/eeprom.h> #include <avr/interrupt.h> #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/wdt.h> #include <util/delay.h> #include...
[syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include "include/lcd44780.h" #include "include/i2c_twi.h" //********** funkcje konwersji char dec_na_bcd(char num){return ((num/10 * 16) + (num % 10));}//set = dec_na_bcd(set); char bcd_na_dec(char num){return ((num/16 * 10) + (num...
Jak ktoś już odkopał, to dorzucę dawno napisany własny kod na ATiny2313 (nóżkami pasuje) do tego kita. Chyba trzeba też zmienić 18S20 na 18B20. Program powstał jako próba ratowania tego zestawu po spaleniu oryginalnego uC. Nie wiem dlaczego, ale po miesiącu pracy oryginalny po prostu się ugotował i zaczął głupoty robić. Po zamianie działa już pare lat....
$lib "glcdks108.lbx" $lib "double.lbx" '$lib "i2c.LBX" $crystal = 16000000 $regfile = "m32def.dat" $include "font8x8.font" Config Graphlcd = 128 * 64sed , Dataport = Porta , Controlport = Portc , Ce = 2 , Ce2 = 3 , Cd = 5 , Rd = 6 , Reset = 1 , Enable = 7 Disable Adc Config Pinb.1 = Input 'wtryskiwacz...
Mam program, w którym uruchamiam przerwanie z pinu ICP. I wszystko działa jak należy, program jest przetestowany. Postanowiłem połączyć go z programem do obsługi karty pamięci pobranym z //**************************************... // **** MAIN routine FOR Interfacing microSD/SDHC CARD **** //**************************************...
Witam, Jestem na etapie tworzenia kodu programu sterującego układem nadążnym typu solar track. Wykonałem już całą mechanikę systemu oraz fizyczną warstwę układu sterującego (obwód drukowany z wszystkimi elementami). Układ sterować ma mostkiem H (silnik DC) oraz podawać trzy sygnały sterujące do zewnętrznego sterownika silnika skokowego (CLK, DIR, EN)....
bascom mcucr atmega8 mcucr rezystor pamięć pamięć
orange neostrada skalowanie excel drukarka laserowa kolorowa
pompa kaisai landini instrukcja
Autotuning falownika Omron F7: tryby i procedura Jak podłączyć Denon UPA-110 do equalizera?