Napisze tutaj, bo nie wiem co częściej sprawdzasz. Tak patrze i przychodzi mi jedna myśl. Może po drodze coś się rzutuje i sama zmienna pamiec z racji, że jest char ogranicza możliwość większych wartości? To by tłumaczyło dlaczego tekst przechodzi, a inne wartości jak np. 0xFF nie dają rezultatu. Jeśli to jest problem to rozwiąże go zadeklarowanie tablicy...
Problemem jest char *cmd[]; - to oznacza tablicę wskaźników na char, a nie wskaźnik na char. A skoro tablica o nieznanej liczbie elementów to wszystko co masz po przecinku to kolejne elementy tej tablicy. Czyli usuwasz [] lub nazywasz pola, np. .ptrF=.
Pracowałem wówczas na ATmega162. Okazało się, że pewna seria '162 miała ten sam problem. Układ resetował się przy komunikacji UART. Temat zamykam.
nie wiem, jak to w gcc wygląda, ale nie zadziała czasem 'static' w deklaracji, ewentualnie 'const', ale nie za bardzo wiem, jak działa const w C++ (programuję w C), wiem tylko, że inaczej... :D static char tablica[8] = {1,2,3,4,5,6,7,8};
A może "buffor_danych" do którego wrzucasz kolejne bajty to też tylko wskaźnik zamiast tablicy (niezainicjowany lub ustawiony na 0)? To tłumaczyłoby dlaczego przypisanie ramka_danych do stałej tablicy znaków daje dobry wynik a ustawianie zawartosci kolejnymi bajtami się nie udaje. (podobnie do poprzedniego błędu) Przy okazji, sizeof(ramka_danych) to...
Przkonwertować się nie da :) Możesz: 1. używać adresu tej zmiennej volatile i robić derefencję [syntax=c] volatile uint8_t x; char *ptr = &x;[/syntax] 2. Przypisac wartosc tego do takiej tablicy [syntax=c]volatile uint8_t x; char c[ILOSC_ELEMENTOW]; /* ....*/ c[element] = x;[/syntax] 3. Jezeli chcesz mieć to w postaci stringa [syntax=c]utoa(x, c, 10);...
Siemano. Jeżeli chcesz umieścić np. tablicę jednowymiarową w sekcji EEPROM to możesz wykonać to w taki sposób const unsigned char Tablica[] EEMEM = { 0x3e,0x51,0x49,0x45,0x3e, 0x00,0x42,0x7f,0x40,0x00, 0x42,0x61,0x51,0x49,0x46, 0x21,0x41,0x45,0x4b,0x31 }; Niestety przy takiej deklaracji pierwszy element tablicy nie będzie znajdować...
Przeciez 180 czy 200 nie wykracza poza unisgned chara :O Generalnie przy buforze 64 program działał co najmniej wiele setek godzin na kilku urządzeniach i wszystko śmigało bez problemu najmniejszego. Spróbuj użyć tablicy w rozmiarze 126 ( granica signed - unsigned ) , jeśli będzie OK. to znaczy że kompilator coś kręci . Czasami zdarzają się błędy w...
Witajcie, mam problem z pamiecia programu w uC atmega128, tak sadze. Moj program rozrół sie do dosc duzych rozmiarow bo zajmuje około 70kB pamięci kontrolera. Z kolei licznik programu(PC) ma rozmiar 16, więc wydawało by sie, że maksymalnie może dostawać sie do komórki pamięci o numerze 656535 B pamięci programu, i przy większej ilości zajmowanej przez...
Zgodnie z deklaracją funkcja send_spi_buf przyjmuje dwa argumenty a ty podałeś jej tylko wynik. W to miejsce powinieneś użyć funkcji void Wyslij_string (char *dana) . Program i tak bedzie źle działał ponieważ zadeklarowałeś za małą tablicę na znaki [syntax=c]char wynik[]=" ";[/syntax] Popraw to na [syntax=c]char wynik[8];[/syntax]
#define kod {0,0,9,9,9,14,8,16} #define ilosc_zn 1 void znak(void)//definicja znaku { unsigned char zn[ilosc_zn*8] = kod; unsigned char x = 0; for(;x<ilosc_zn*8;x++) { write_command(0x40+x); write_char(zn[x]); } } #define kod {0,0,9,9,9,14,8,16} - to 8 liczb każda odpowiada...
Czepia się słuszne, bo czyta tablicę na szerokość int-a (co nieraz bywa przydatne, jeśli jest użyte świadomie), a nie jak ją zadeklarowano - char...
Witam, Mam następujący problem. Zakupiłem robota z zamontowaną płytką: http://www.mobot.pl/download/MOBOT-MBv2-... GPS to FGPMMOPA4, konfiguracja: 9600 bps/8/N/1 Po drobnych modyfikacjach zamontowany jest tam kwarc 7,3728 Mhz. Procesor to Atmega128L (początkowo był Atmega128A z kwarcem 16Mhz). Podłączyłem do RX0 wyjście TX GPS FGPMMOPA4....
A nie powinno być przypadkiem tak : [syntax=c]unsigned char fonts [] = {0x01, 0x01, 0x01, 0x01, 0x01};[/syntax] No bo skoro funkcja przyjmuje wskaźnik do char to tablica musi być typu char a nie tablica wskaźników do char. No i oczywiście ostatni element tablicy musi mieć wartość zero. A więc tak : [syntax=c]unsigned char fonts [] = {0x01, 0x01, 0x01,...
WItam. Możlwości uśredniania czy po prostu cyfrowej filtracji sygnału może być kilka. Najprostrza to taka jak napisałeś - zbierasz kilka próbek pomiaru a następnie je uśredniasz. Może to wyglądać np tak: unsigned int pomiar; unsigned int usredniony_pomiar; unsigned char pomiar_licznik; static unsigned int temp; pomiar = ADC; // pobranie wartosci pomiaru...
Może tak ? : LCD_DisplayPicture(*Obraz, 0, 0, 25, 7) Tak na pewno nie jest dobrze. *Obraz to liczba (z początku tablicy, czyli 0), a potrzebujemy wskaźnika. Nie wiem, czy dobrze mi się wydaje, ale dogm_core_data(pgm_read_byte(dpt... Nie inkrementuje zmiennej dptr sam z siebie. Spróbuj to zmienić na: dogm_core_data(pgm_read_byte(dpt...
Kiedyś umieściłem na obecnie niedostępnej stronie and.elektroda.eu materiał o dekodowaniu sygnału DCF. Urządzenie potrzebne było w urządzeniu, które wymagało synchronizacji czasu w pomieszczeniu gdzie wyprowadzenie anteny zewnętrznej do GPS było utrudnione. Poniżej umieszczam treść oryginalnego materiału, który może być pomocny przy budowaniu urządzeń...
Witam, mam problem przeszukałem wiele forów i próbowałem kilku sposobów. Może ktoś mi doradzi, więc mam problem z zapisaniem ciągu znaków w Atmedze (tzn. odbieranie). Wiem że należy zastosować najlepiej tablice do tego celu. [syntax=c]char odebrana_tab[]; if(odebrana_dana ==! 0) // jezeli dana nie jest zerem char i = 0; odebrana_dana = odebrana_tab[i++]...
Tablica w pamięci kodu (z tym, że przykład jest dla char): http://mirekk36.blogspot.com/2013/11/tab... Mając taką tablicę wyszukujesz pomiędzy którymi punktami tablicy leży wartość i liczysz https://pl.m.wikipedia.org/wiki/Interpol...
Operacje na stringach mogą być niebezpieczne, szczególnie, jeśli dostajesz stringi z zewnątrz Poczytałem, faktycznie śliski temat. Rozumiem ryzyko. Ciekawe rozwiązanie problemu jest poniżej: 5. Te wywołania strcat() są beztroskie. Czy chodzi Ci o ryzyko jakie z tego płynie? Zauważ, że np "strcat(txframe,IMEI);" tctframe ma 230 bajtów a IMEI ma 15 jednak...
A tak? Przecież napisał, że jak poda rozmiar to działa. Poza tym w Twoim programie też się "tekst" nie mieści w tablicy i brakuje mu dzięki temu terminatora. Dodatkowo nie widzę sensu w posługiwaniu się kopią wskaźnika na tablicę, co to zmienia?
[syntax=cpp] #include <avr/io.h> #include <avr/pgmspace.h> #include <avr/eeprom.h> #include <stdlib.h> #include <util/delay.h> #include "hd44870.h" #include "ds18b20.h" //#include "MyDelay.h" int main(void) { volatile char *tablica="MMM"; LCD_Clear(); LCD_Home(); LCD_Initalize(); LCD_WriteText("Rozpoczynam temp"); _delay_ms(1000);...
Chciałbym skomunikować 2 atmegi przez modbusa i używam do tego modułu USART. Walczę z tym już kilka dni i nie mogę dojść do ładu. Nadawanie skonfigurowane, odbiór również, bo klocki się komunikują, ale nie chcą wysłać (lub odebrać) wszystkiego co jest do przesłania. Próbuję nadać np 8-elementową tablicę liczb (unsigned char) i dochodzi tylko ich część...
Funkcja, nie widzi tablicy deklarowanej w innym pliku. Co może być przyczyna ? Na co zwrócić uwagę. Poniżej wycinki z kodu. [syntax=c] /* ATmega 8 */ glowny.c //==================================== . #define REJESTR 50 int rejestr[REJESTR]; void main(void) . while(1) . wykonaj(&ramka,(ile_bajtow-1)); . .=======================================...
Witam, Przeczytałem wiele stron z podobną tematyką, próbowałem wielu różnych algorytmów, jednak nie udało mi się osiągnąć tego co chciałem. Założenie: Komunikacja aplikacji napisanej w visual c++ 2010 express z atmega16/32. 1. Wysyłka 5 liczb z komputera: (parametr1, parametr2, parametr3, parametr4, parametr5) na atmegę. Sprawa wydawałoby się prosta,...
Witam, pytanie dotyczy WinAVR (ATmega). Podprowadzenie Kompilator zawsze umieszcza kolejne elementy tablicy ( umieszczenej w RAMie) w kolejnych adresach. Zwiększając wskaźnik tablicy o 1 (dla typu char) mogę indeksować kolejne pola. Pytanie właściwe A jak jest ze strukturami. Np. taka struktura: typedef struct { unsigned char TablicaPol1[8];...
Zrób sobie tak : [syntax=c]char cmd[15]; byte indeks; void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { char c = (char)Serial.read(); if(c == '\n') { cmd[indeks] = 0; indeks = 0; analiza(); } else { cmd[indeks] = c; if(indeks < 15) indeks++; } } } void analiza() { if(cmd[0] == 'c') { Serial.println("ok"); } } [/syntax]...
Przeniosę to przerwanie i tablice do plików .c. Ale wtedy w pliku głównym .c mam includować plik przerwania .c? Myślałem, że tam inkluduje się tylko pliki .h Nie musisz include'ować pliku .c, a nawet nie powinieneś. W Makefile dopisz go tylko do plików źródłowych (SRC = $(TARGET).c przerwanie.c inny_plik.c itd.) a linker odwali resztę roboty. Zostało...
Dzięki :) Teraz mam kolejny problem char* pch; pch = strtok(data,"!(at)#$%")... while (pch != NULL) { myGLCD.print(pch, LEFT, 130); pch = strtok(NULL, "!(at)#$%"); } W przykładzie tej funkcji jest deklaracja char* pch Ogólnie program się kompiluje, niestety używanie w arduino deklaracji z...
Po pierwsze Twoja funkcja: void odbierzstring(void) nie zwraca parametrów (wskazuje na to słowo void przed funkcją) a Ty mimo wszystko dałeś na koniec return... Twoja funkcja musi zawierać pętle, która odbiera znak za znakiem do momentu pojawienia się znaku końca '\n' tak jak napisał Ci kolega Freddie Chopin . Czyli cos takiego: unsigned char bufor[32];...
Witam forumowiczów :D! Tworze projekt na zaliczenie - prostą perkusje elektroniczną, która posiada 12 przycisków, czytnik kart SD i wyjście PWM podpięte przez wzmacniacze do gniazda jack. Wszystko do momentu odtwarzania dźwięku działa poprawnie - wartości z pliku czyta prawidłowo (przetestowane na diodzie). Problem pojawia się gdy zaczynam odtwarzać...
[syntax=c]char test[5];[/syntax] Bufor do którego odbiornik wpisuje odebranego stringa (przesyłana jest temeperatura bez przecinka) np 234 to tablica znaków mojego wyświetlacza [syntax=c]prog_char cyferki[15] PROGMEM = { 0x3F,//0 0x09,//1 0x6E,//2 0x6D,//3 0x59,//4 0x75,//5 0x77,//6 0x29,//7 0x7F,//8 0x7D,//9 0x00 //nic };[/syntax] Jak bezpośrednio...
Chyba trochę mały ten bufor na napis, w dodatku na stosie (pozostałe bufory tak samo). Zajeżdżasz sobie stos, więc nie dziw się, że się "cuda" dzieją.
to nie blad tylko warning anyway - to co napisales jest bezsensowne i nigdy nie bedzie dzialac, bo pierwsze 'niespelnienie' warunku z nawiasu wyjdzie z calej tej 'pseudo' petli. jesli chcesz odebrac 8 znakow, to logiczne dla mnie jest, ze liczysz do 7 (uwielbiam te zabawy z liczeniem : for(i=0;i<8;i++) { ... } wewnatrz petli czekasz na znak i wstawiasz...
Obsługuję led display, mam funkcje która odświeża 6 cyfr wyświetlacza na podstawie kodów w tablicy digits unsigned char txt_read[] = {0x00, 0x28, 0x7C, 0xFA, 0xAE, 0x00}; i funckcję która ustawia napis void set_lcd_text(unsigned char* text, unsigned char blink){ int i; for(i=0;i<6;i++) digits[i] = text[i];...
Nie podoba mi sie ta biblioteka, stan wszystkich pinow siedzi w jednej zmiennej, nie jest obliczana tylko modyfikowana bit po bicie. char napis[20] = "asdasd"; zmniejsz rozmiar tablicy do 8 np, chociaż to nie powinno miec znaczenia... kondensatory przy 74 i LCD 100nF masz? W czym kompilujesz? Może w kompilatorze masz FCPU inne ustawione, sprawdź. Krzaki...
tak czy siak musisz zadeklarowac miejsce dla tego bufora - statycznie tablica, lub dynamicznie - malloc(). zalozmy ze statycznie: na poczatku deklaracja: char bufor[5]; char *buf_in,*buf_out; potem setup: buf_in=bufor; buf_out=bufor; teraz sprawe mozna rozwiazac dwojako, zwykle tworzy sie dedykowane funkcje zapisu i odczytu do bufora: void FIFO_write(char...
Witam W tablicy RESZTA mam reszte liczby wyciagnieta ze stringu. Np "1234". Ta wartosc chce przeliczyc na inny format. W tym celu musze to podzielic przez 10000 i pomnozyc przez 60. Nastepnie otrzymana wartosc calkowita wyswietlam na LCD. Realizuje to tak: //funkcja przeliczajaca float dm_to_dms(char var[]) { float sec; sec= 60*(atof(var)/10000); return...
No z tego co się doczytałem, o ile dobrze zrozumiałem, to sekwencyjny wraca do początku dopiero na końcu pamięci. When the memory address limit is reached, the data work adress will "roll over" I tu się pojawia moje pytanie, bo za bardzo tego nei wiem. Jak jako argument funkcji podać całą tablicę. Z tego ci wiem nie ma zmiennych typu string i muszę...
Witam, Przejrzałem elektrodę i natrafiłem na temat o złożeniu w C przesyłanego bajt po bajcie floata. No i zastosowałem wskazany fragment kodu: [syntax=c]unsigned char *btr; float DNL; btr = (unsigned char*)&DNL; *btr =USART0_Receive(); btr++; *btr =USART0_Receive(); btr++; *btr =USART0_Receive(); btr++; *btr =USART0_Receive(); btr++;[/syntax] Kod ten,...
Witam. Próbuję opanować USART w ATMega 8. Wewnętrzny oscylator 1MHz. Z komunikacją nie mam większych problemów. Jednak zastanawia mnie ustawianie prędkości transmisji. W moim programie ustawiłem prędkość transmisji na 9600bps. Rozumiem że 9600 bps oznacza wysłanie 9600 bitów w ciągu sekundy (jeżeli źle rozumuję to proszę o poprawienie mnie), a więc...
Witam serdecznie, pisze program na aTmega 128, mam już napisaną zdecydowanie wieksza czesc kodu ale gubie sie przy operacjach na tablicach. Otoz, dostaje pomiary z 5 czujnikow. Kazda paczka danych od jednego czujnika sklada sie z 2 bajtow- starszego oraz mlodszego. Po wyborze odpowiedneigo czujnika, z ktorego chce czytac dane nastepuje ich zczytanie...
Chyba udało mi się rozwiązać problem (chyba :P). Informacje wysyłane zaczynają się u mnie od znaku $ i nigdy nie są dłuższe niż 13 znaków. W przerwaniu miałem obsługę czytywania każdego znaku z osobna i zapisywania kolejno do tablicy char[13]. Gdy tablica się zapełniła ustawiane były informujące obsługę żeby wykonała polecenie. Właśnie w tym miejscu...
Czy w takim razie to wystarczy? [syntax=c] char uart_getc(void) { // sprawdzamy czy indeksy są równe if ( UART_RxHead == UART_RxTail ) break; // obliczamy i zapamiętujemy nowy indeks „ogona węża” (może się zrównać z głową) UART_RxTail = (UART_RxTail + 1) & UART_RX_BUF_MASK; // zwracamy bajt pobrany z bufora jako rezultat funkcji return UART_RxBuf[UART_RxTail];...
Piszę program sterujący zapłonem silnika 3 cylindrowego, Ma on na celu "emulację" mechanicznego regulatora odśrodkowego kąta wyprzedzenia zapłonu. Wymyśliłem sobie że tabelę zmiennych zapiszę w PROGMEM, poniżej program testujący rozwiązanie z tabelą. No i teraz: Niech mi ktoś proszę powie czy licznik T1 (16bitowy) zwiększa się co 5uS?? Takie obliczenia...
Mam problem,bo nie potrafię odebrać poprawnie więcej niż 1 bajt danych po UART na ATMEGA 128L .Dokładnie potrzebuję np 100bajtów odebrać od razu i wiem ,że potrzebuję tablicy (której nie mam w poniższym kodzie). Odbiór danych mam na przerwaniu, pomału po 1 bajcie wysyłane dane z komputera dochodzą ,ale przy większej ilości już źle odbiera. Z procesora...
Ja w swoim urządzeniu zastosowałem taki algorytm: unsigned char ilpom; // licznik ilości pomiarów. dla każdego kanału wykonuję w pętli ilpom pomiarów. Najpierw zeruję tablicę - np. kanal Dodano po 7 unsigned int pomcal(char kanal, char licznik) // funkcja pomiaru ADC { uint16_t pomiar(uint8_t); // deklaracja typu funkcji dla pomiar...
Witam Od pewnego czasu zajmuje się komunikacją ATMEGI 328P i komputera poprzez popularny prot COM. Napisałem własny program w C++, który odbiera pewne dane od ATMEGI. W programie użyłem struktury DCB Winapi. Jako, że Atmega nie odzywa się nie pytana użyłem timera, który sprawdza czy przypadkiem coś nie przyszło. Poniżej kod, którego używam (dla komputera)...
Przy załączeniu napięcia atmedze na wyświetlaczu zamiast oczekiwanego napisu pojawiają się randomowe śmieci. Przy zwyczajnym resecie wszystko jest ok. Z resztą najlepie to widać na filmiku: //MAIN--MAIN--MAIN--MAIN--MAIN--MAIN--MA... portSHORT main(void) { //Inicjalizacja...
Podaję przykład w którym obliczam crc8 dla termometru DS18B20. Działa tak jak należy. Dane z termometru to dziewięć bajtów. Atmega 8 , WinAVR, język C. Może pomoże w znalezieniu właściwego rozwiązania problemu. // tablica pomocnicza do sprawdzania sumy kontrolnej CRC danych z układu DS1820 // ATMEGA 8 , WinAVR // #include "pgmspace.h" static...
mam problem z odczytem danych z telefonu. wysylanie komend at do telefonu (siemens s45) odbywa sie bez problemu - aparat reaguje prawidlowo. linia Tx kontrolera polaczona z telefonem poprzez opornik i zenera 3,3V. Linia odbiorcza polaczona bezposrednio. komunikacja z telefonem za pomoca terminala rowniez dziala prawidlowo. biblioteka uart: #include...
na spi ma być 5 urządzeń, sprawdzam na najmniejszej prędkości , w testach doszedłem do 4MHz ale przy tej prędkości już przerwanie się nie wyrabiało więc obniżyłem. A co do błedów szukam tylko nie mam speclajnie już nić do wyłowienia, bo niby gdzie ? ISR(SPI_STC_vect){ unsigned char data; data=SPDR; // 0 - odczyt danej z tablicy wg aktualnego...
Witam Piszę w Codevision w C. Zbieram 128 próbek z przetwornika ADC. Próbki zbieram w pętli: while(x<128){ dane[x]=read_adc(5); x++; } dane[128] to zadeklarowana tablica 128 elementów typu char. Podczas pomiaru procek nic innego nie robi. Chcę go max wykorzystać na szybkość pomiaru tj. liczbę próbek w czasie. Teraz uzyskuję 20k próbek na sekundę....
No ja rozumiem ze właśnie w tym jest problem. Mam te funkcje: [syntax=c]bool LCD_PutText(uint8_t x, uint8_t y, char *txt) { LCD_trans *trans=malloc_re(sizeof(LCD_trans) + strlen(txt) + 2); bool ret=LCD_PutText_B(x, y, txt, trans, true); return ret; } bool LCD_PutText_B(uint8_t x, uint8_t y, char *txt, LCD_trans *buf, bool autodel) { buf->cmd=LCD_Text;...
No to krok do przodu u mnie tez działa jeden warunek i wszystko gra serdeczne dzięki dla kolegi Marka jeszcze jak pisze może kolega mi podpowie jaki typ zmiennej jest widziany globalnie a raczej zewnętrznie .Mam funkcje w której mam zmienną funkcja co prawda jest umieszczona w innym pliku nagłówkowym oczywiście podłączona Includem pod główny program...
Wiem że temat ten byl wałkowany wielokrotnie ale nie znalazłem rozwiązania. Chodzi mi o to czy ktoś może przetestować kod na jakimś sprawdzonym układzie pod kątem odbierania bajtu. Atmegę łączę bezpośrednio z ukłądem FPGA ale przeważnie odbieram liczbę 130. Jedyne na czym mogę podejrzeć odebrany bajt to wyświetlenie na kolorowym wyświetlaczu pixeli...
Kojarze jak przez mgłę (to 20 lat): jakies binarne badanie bitów, jakby chodzenie po drzewie prawo-lewo, statyczna tablica char No właśnie też o tym myślałem - algorytm Huffmana się kłania :) Zrobiłem szybko testy (pliki codhuff.c i dcodhuff.c na google :) ), wsad do FPGA udało sie zmniejszyć z 97652 do 70525, ale z kolei nie zoptymalizowany program...
Witam ponownie, próbowałem ogarnąć na początek funkcję eeprom_write_block. Oto fragment kodu: [syntax=c] typedef struct { // tu są chary, inty, tablice } TEngine; // zmienna w RAM volatile TEngine Engine; // Kopia będzie w EEPROM TEngine EEMEM eeEngine; // i gdzieś w kodzie dalej eeprom_write_block( &Engine, &eeEngine, sizeof(Engine) ); [/syntax] Przy...
[syntax=c] #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <stdio.h> #include <math.h> #define adc #define VREF 5.05 #define ADCIN PA0 #define FOSC 1843200// Clock Speed #define BAUD 9600 #define MYUBRR FOSC/16/BAUD-1 volatile unsigned int usart_bufor_ind; //indeks...
Metoda ciekawa i właśnie myślę jak ją zaimplementować. Tylko powstaje tutaj problem. W C# zdarzenie od odebrania danych wywoływane jest gdy RS232 cokolwiek odbierze, więc jeśli będę w przerwnaniu wysyłał znak po znaku to w C# będę otrzymywać pojedyncze znaki... potem ciężko będzie to skleić do kupy odbierając znak po znaku. Poza tym będę wysyłał różne...
Witam, Chcę połączyć ze sobą dwie atmegi po TWI korzystam ze standardowej biblioteki do obsługi sprzętowego TWi tak jak w datasheetach. Jak podłączę jednego AVR do np Ds1307 to obsługa jest ok w dwie strony. Problem mam gdy połączę Atmega32 (master) z Atmega8 (slave) tzn gdy z Atmegi32 wysyłam coś np literkę 'q' to jest ona wrzucana do buf2 i ma się...
Mam pytanko czy ten program może robić za stoper i co wyświetli co się stanie na wyświetlaczu po wpisaniu tej linijki kodu D1_ON; // włącz pierwszą cyfrę wyświetlacza czy co takiego zapali się 192 a jak będzie D1_ON; to wyświetli się 192 249 tak czy tylko 249 i jak dorobić ", " :D #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h>...
Witam. Chciałem napisać następujący program: Dane przesyłane są z komputera przez UART1, a następnie te dane chciałbym przesłać dalej, za pomocą UART0. Na razie połączyłem sobie, w UART0 RxD z TxD za pomocą rezystora 200Ohm (taki loopback do testów). Czyli jak na razie chciałem uzyskać następujący przepływ : komputer -> UART1 -> UART0 -> UART0...
Witam, mam problem dotyczący wyświetlacza LED mianowicie ma on wyświetlać cyfry 0,1,2,3,4,5,6,7,8,9, 9,8,7,6,5,4,3,2,1,0 i tak cały czas bo jest to w pętli for cyfry mam w tablicy i wszystkie wartości przeliczyłem np. dla 1 bin to "11111001" i po zamianie wychodzi HEX "F9" tak jak jest to zapisane w programie niestety zamiast cyfr 4,5,6 są jakieś głupoty....
Proszę na przyszłość używać tagu ] do wklejania kodu... /syntax] . Poprawiłem to oraz tytuł na bardziej oddający problem, LordBlick Zacząłem swoją przygodę z mikrokontrolerami atmega i natknąłem się na dziwny dla mnie problem. Chce wyświetlić sobie jakiś tekst na hd44780 i korzystając z gotowej biblioteki radzia napisałem sobie taki oto kawałek kodu:...
Witam, mam problem z odczytem danych z karty SD do tablicy typu char dopisałem do programu odczyt z drugiego pliku do tablicy zmiennej char, aczkolwiek odczytuje tylko pierwszy znak. co robię nie tak, aby odczytywało całość linijkę do komórki tablicy? {PS. tablica char dlatego, bo pierwsza tablica String ma 47 komórek a druga też by miała 49 komórek,...
Przy okazji pytanie, czy każda operacja na stringach wymaga a by dany string był zakończony znakiem '\'? W języku C string to tablica znaków zakończona "null terminating character" którym jest "(char)0" albo inaczej zapisany '\0`. Wszystkie funkcje operujące na stringach wymagają aby ich parametry były C stringami (z małymi wyjątkami np strncpy) sizeof("1234")...
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...
Pewnie, że ruszyłem główką. Wyszperałem jakiś programik, który konwertuje wav-a do raw-a. Pod Linuxem jest tego trochę. Myślałem może, że jest jakieś gotowe narzędzie, którym to przerabiacie i jest od razu tablica char-ów - w wolnych chwilach pokoduję sobie takie coś:). PS. Przepraszam za niecierpliwość:) ale wystarczy spojrzeć na moją aktywność na...
Witam, Mam ten sam problem co kolega Beer Bear. Na zdjeciu otrzymuje to samo zaklocenie. Uzywam 2 pamieci rownoleglych po 64kB + zatrzask 573 . Caloscia steruje ATMEGA 64 16MHz. Wyeliminowalem częśc sprzętową, ponieważ sprawdziłem wszystkie połączenia na płytce kilka razy i nie znalazłem żadnego blędu. Wiec pomyślalem sobie ze wina moze tkwic w kodzie...
Witam Mam pytanie odnośnie metody zapisu stringów(char) do pamięci eeprom. Najlepiej abym mógł zapisywać i odczytywać całe zestawy danych. Robię dość skomplikowany budzik i chciałbym zapisywać do eeprom ustawienia. Skleciłem po wielkich potach coś takiego: SETTINGS.h typedef struct { uint8_t GODZINA; uint8_t MINUTA; uint8_t POWTORKI; uint8_t GLOSNOSC;...
Witam! Swego czasu zacząłem przygodę z atmegą i nadszedł czas na zrobienie termometru. Chcę to zrealizować za pomocą dwóch 7 segmentowych wyświetlaczy, termometru DS18B20 oraz mikrokontrolera Atmega8. Układ złożyłem, przedstawiony jest na zdjęciu. Niestety nie posiadam układów, żeby użyć mniejszej ilości pinów, dlatego wyświetlacze zajmują właściwie...
Witam, mam następujący problem. Chcę zaprogramować atmega 8 tak by przy określonej temp włączyła diodę. Temp mierze czujnikiem ds18b20 wykorzystałem kod który znalazłem w sieci. Całość pisana w C [code][syntax=c] #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "ds18b20.h" int main(void) { DDRD |=(1<<PORTD);...
Witam Na początek napisze ze jestem początkujący w C. "Napisałem" program który czyta czas i datę z PCF8583 i pokazuje to na LCD.I wszystko byłoby ok gdyby nie to ze dla testu na przerwaniu procesor ma generować krotki sygnał dźwiękowy co 1 sek. i "prawie" jest ok TYLKO raz na jakiś czas nie chce piknąć na mijającą sekundę, tak jakby gubił te sekundę....
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...
....zabrałem się do tego jeszcze raz....kilka godzin przy kompie i nadal jestem w kaczej d... nie chodzi i chodzić nie będzie..na LCD-ku ADC pokazuje bzdury..a ja jak babcie kocham nie wiem dlaczego...może w tych datashetach trzeba czytać pomiędzy wierszami.... //--------------------------------------... //################## procesor...
Witam dopiero uczę się programować mikrokontrolery i wystąpił u mnie następujący błąd: zamierzam wysłać przez uart tablicę play niestety w real terminalu zamiast jej zawartości widzę następujące wyniki: 7EFFD08081F7EF albo BE06038081F7EF dodam że moduł z którym chce się skomunikować (dfplayer mini wysyła prawidłowe komunikaty) a gdy przy tej konfiguracji...
Witam Próbuję zmusić swojego Atmege8 do gadania z btm-222 i mam mały problem. Dopiero zaczynam zabawę z elektroniką, procesorami i ich programowaniem, na co dzień zajmuję się zupełnie czymś innym więc proszę o wyrozumiałość :) Więc od początku. Mam program do wysyłania i odbierania danych po USART napisany w C (wzorowałem się na innych programach zamieszczonych...
Patrzę na kod od godziny, nie mogąc znaleźć przyczyny problemu. Pewnie winny jest jakiś drobiazg, którego nie jestem w stanie dostrzec. Zapewne ktoś z większym doświadczeniem wychwyci go natychmiast. Na początek trochę o projekcie . Jest to moje pierwsze "większe" przedsięwzięcie w ramach nauki programowania AVR-ów w języku C. Krótko mówiąc jakiś czas...
Powiem Ci tak. Nie wiem po kiego jest taki wielki ten kod i nie rozumiem czemu ludzie męczą się z bascomem i avr ja mam 1/3 tego co tu i mi działa klawiatura z wyjątkiem jednej rzeczy której nie umiem zmienić. [syntax=c]byte wiersz[]={13,12,11,10}; byte kolumna[]={9,8,7,6}; char kody[]={'1','2','3','A','4','5','6','B',...
Atmega narazie siedzi w arduino, w przyszlosci oczywiscie wskoczy na plytke. Zasilam z USB chyba ze wpinam duzo akcesoriow no to z zasilacza 9V. Czy VFD musi byc zasilany zmiennym napieciem, slyszalem ze ok 60V. Czy trzeba w atmedze ustawiac fusebity na zewnetrzny kwarc, czy sa juz gotowe. Znalazlem taki sketch tyle ze nie zabardzo go rozumiem, czy...
Diody mają nieliniową charakterystykę jasności świecenia w stosunku do prądu jaki przez nie przepuszczasz (tak w skrócie) Kiedy PWM ma wartość 1, 2, 3, 4 czyli niską to przyrost jasności w tych pierwszych krokach jest duży. Póżniej jednak "dokładanie" już zmienia niewiele. Taki prosty, liniowy PWM powodowałby że ściemnianie i rozświetlanie diody nie...
Tablica led 8x28 sterowane Atmega8 pord przez ULN i 74HC595 w kolumnach tak jak na stronie http://www.avrprojects.net/index.php?opt... Problem jest taki że literki idą nie po kolei czyli zaczyna się od 14 kolumny led i tak w połowie załącza...
Witam Mam zbudowany układ na atmega 32 i do niego podpięte 4 czujniki DS18B20. Po włączeniu przez kilka godzin wszystkie pokazują właściwą temperaturę. Po tym czasie trzeci czujnik co jakiś czas pokazuje trzecie miejsce po przecinku, a czwarty czujnik również co jakiś czas pokazuje niewłaściwą temperaturę - w okolicach 130 stopni ( rzeczywista temperatura...
Witajcie. Muszę się podzielić z wami pewnym spostrzeżeniem układ PCF8563 coś nie działa za prawidłowo. Do tej porty używałem układu PCF8583 i wszystko było pięknie ale cena czyni cuda i zastosowałem PCF8563 i lipa. Nie umiem opanować tego układu, na dobę potrafi opóźniać nawet do 5 minut absurd totalny, dodatkowo co jakiś czas w miejscu godziny pojawia...
Witam i dziękuję za włączenie się do tematu. Ciągle ten sam problem.Zawsze zapomnę o niektórych detalach. Uczę się programować w C i używam Eclipse. Skłamię, jeśli powiem, że nigdy nie walczyłem z eeprom. Jakiś czas temu bawiłem się wyświetlaczem i zapisem znaków do eeprom i odczyt. Przy starcie programu (włączeniu zasilania) program wczytywał zawartość...
Witam Na początek to //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI DDRC =0b11111110; PORTC =0b11111101; skoro porty PC0(SCL) PC1(SDA) to wejścia TWI , ja bym je ustawił tak //Porty: PC0(SCL) PC1(SDA) -> wejścia TWI // 1 -> wyjście // 0 -> wejście DDRC =0b11111100; // 1 -> z podciągnięciem do VCC (pull-up) // 0 ->...
Witam, Walczę juz z problemem trzeci dzień, prubuje wklejać rózne przykłady bibliotek wyświetlacza i ciągle nic. Przeglądam podobne problemy na google, na elektrona i dalej nic. Brakuje mi już siły. Podam przykład: [syntax=c]/* Plik main.c Wyświetlacz alfanumeryczny LCD 20x4 "QC2004A" układ atmega8 (8MHz) */ #include <avr/io.h> #include <util/delay.h>...
Witam. Jestem początkujący w programowaniu mikrokontrolerów. Dzis podpiołem wyswietlacz HD44780 z bibliotekami radzio. Pozmieniałem piny w pliku nagłowkowym i usunołem wszystko z R/W. Schemat podpiłem jak na obrazku: http://obrazki.elektroda.pl/2169783000_1... Wyswietlacz wyswietla czarne kwadraciki. Kod programu //LCD_Initalize();...
Witam wszystkich, projekt powstał na przełomie marca/kwietnia tego roku w wyniku zapotrzebowania na pompkę perystaltyczną potrzebną przy realizacji pracy magisterskiej. Nigdy wcześniej nie miałem do czynienia z elektroniką (nie licząc podłączania diod z rezystorem i prostych zasilaczy na LM7812) a tym bardziej z mikrokontrolerami. http://obrazki.elektroda.pl/2272591900_1...
Witam, Po przesiadce z Atmegi8 na wersję 32 postanowiłem ponownie złożyć układ z wyświetlaczem i dwoma termometrami, niestety pomimo użycia tego samego kodu już na początku mam problemy. Po sukcesywnym załadowaniu programu Atmega startuje i prawdopodobnie wywraca się na funkcji lcd_init i nie chce ruszyć dalej. Wspomagalem sie dioda sygnalizacyjna i...
Witam! Bardzo dawno nie bawiłem się atmegą, a i kiedyś nie były to intensywne czasy, ale teraz, gdy naszła mnie ochota na zrobienie czegoś napotkałem problem natury programistycznej, przy którym siedziałem pół dnia, być może łamię tutaj jakieś fundamentalne podstawy lub się ośmieszam, ale naprawdę nie wiem od czego to jest uzależnione. A mianowicie,...
No okazało się, że ja nie wiem co to jest polling. Żeby dobrze wytłumaczyć o co mi chodzi, przedstawiam schemat blokowy programu w bardzo dużym uproszczeniu: http://obrazki.elektroda.pl/4296195300_1... na czerwono jest zaznaczona główna pętla, w której program znajduje się w oczekiwaniu na flagę. Flaga ta może być tylko ustawiana gdy...
Witam. Postanowiłem zbudować kolejny gamepad na mikrokontrolerze atmega, tym razem miałby on posiadać 10 przycisków. Ze strony http://www.raphnet.net/electronique/usb_... pobrałem więc kod źródłowy 8 przyciskowego gamepada i zacząłem go przerabiać po swojemu. Najważniejsze zmiany jakich dokonałem to W pliku Twelve.c: Dodałem jeden bajt...
Pokaż program po zmianach. [syntax=c] /* BAUD RATE: 9600 */ #include <avr/io.h> // Załaduj bibliotekę input/output #include <util/delay.h> // Załaduj bibliotekę opóźnień #include <avr/interrupt.h> // Załaduj bibliotekę obsługi przerwań #include "ioinit.h" // Załaduj bilbiotekę zew. (do ustawienia portów ATMega 8) #include "uart.h"...
Mam sobie taką o to tablicę w epromie: P.S. Wiem, że pisze się uŻytkownik, ale chcę wiedzieć czy prowadzący przeglądają kody programów w raporcie:P
No więc szukam i mecze się od paru dni mam : następujące problemy 1. Projekt, gdy użyje polecenia wynik=sin(4.822); kompilator się kompiluje natomiast gdy napiszę float abc=2.345; wynik=sin(abc); się nie kompiluje i wyskakuje komunikat c:/winavr-20081205/bin/../lib/gcc/av...
http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...
Witam, 1. Mam nie lada zagwozdkę z obsługą zegara PCF8563p przez Atmege32 + wyświetlacz LCD. Sam zegar działa dobrze. Poprawnie wpisuje datę i godzinę. Problem pojawia się z odczytem. W PCF ustawiam wyjście na 1Hz, które jest połączone z Atmegą jako przerwanie INT0. Co kilka razy, przy resecie uC, gdy program startuje od nowa, to czas zaczyna się niepoprawnie...
Witajcie, próbuję odpalić dwie ATmega8 tak, by obsługiwały moduł radiowy NRF24L01. SPI mi działa, wiec dodałem te moduły. Jedna atmega z modułem ma nadawać dane, druga z modułem je odbiera. Niestety tak się nie dzieje... pisałem to na podstawie tej strony: http://gizmosnack.blogspot.com/2013/04/t... Kod nadajnika: [syntax=c]/*...
chara tablica tablica chara tablica chara flash
zmywarka amica silnik schemat magnetofon podłączenie komputer honda accord
Reset BIOS w Fujitsu LIFEBOOK E746 - metody i wskazówki Wyciek na dole kołnierza pralki Whirlpool - przyczyny i rozwiązania