Nie rób zmiennych ze stałych - first i last są zbędne. Nie deklaruj tablic wewnątrz funkcji - spowalnia to wykonanie i grozi przepełnieniem stosu. Nie potrzebujest wskaźników na bufory 15- elementowe - przedeklaruj je jako wskaźniki na char.
https://obrazki.elektroda.pl/9289076200_... Pracując nad kolejnym projektem stwierdziłem, że brakuje mi drugiego generatora sygnałowego. Tak zrodził się pomysł, aby zrobić na szybko generator na jakimś gotowym, tanim mini-module, do tego wyświetlacz LCD2x16 i enkoder z przyciskiem do wyboru parametrów. No i oczywiście oprogramowanie...
No ale po co Ty tworzysz osobną sekcje na JEDNĄ zmienną? Zmienne będą miały taki rozmiar jak mieć powinny, Jeśli w tych strukturach masz bufory jako tablice bez rozmiaru, to one będą miały rozmiar "zero". To po prostu powinno być zrobione inaczej. Przy okazji umieszczanie wszystkiego w CCM RAM to nie jest wcale taki dobry pomysł, bo z pamięci tej nie...
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ą.
Tak, i skoro Twoje tablice to np uint32_t[64] to sizeof Ci zwróci liczbę 256, a chyba nie tyle chcesz kopiować. Jak bufory będą przekazane przez parametr funkcji to skopiujesz tylko 4 bajty. Co do Twojego problemu - wystarczy ustawić flagę CGIF w DMA_IFCR, ustawić na nowo ilość danych i uruchomić kanał.
Widze że używasz biblioteki którą stworzył Peter Fleury. Osbługa uarta odbywa się w przerwaniach, może masz ustawione za duże bufory w kodzie uart.c i przekroczony zostaje 1k ram w Atmega8? Z drugiej strony spróbuj zmienić lokalne tablice z funkcji main() na globalne, bo zmienne lokalne są tworzone na stosie i może tu leży problem.
Witam! Staram sie komunikowac z modemem GSM. Chce opracowac metode rozłanczania osoby dzwoniącej niezaleznie od chwili w której dzwoni. Zalozenie jest takie iż w sposób ciągły: - wysyłam "AT" i sprawdzam czy jest "OK" - w miedzyczasie sprawdzam czy nie pojawilo sie RING, jezeli pojawilo wydaje komende "ATH0" *opcja echo jest off Wszystko działa tylko...
Niestety testy Cisco są zakręcone i często każdy wyraz ma znaczenie :( Pytanie 1: - pamięć ROM - zawiera okrojoną wersję IOS, która służy do diagnostyki, przywracania zawartości pamięci FLASH po awarii, itp, - pamięć RAM - w niej, podczas pracy, przechowywane są różne tablice np: routingu, bufory i do niej ładowany jest system operacyjny IOS (w bardzo...
Nie wiem, co ma do tego pseudolosowanie. ;-) Co miało by się znaleźć na tych dwóch ostatnich? Musisz w osobnej pętli dopisać tam jakieś zera czy cokolwiek chcesz. A jeśli chcesz, żeby tam było to co wcześniej było na początku, to musisz sobie zrobić dodatkowy bufor (tablicę) na te dwie zmienne i zapamiętać je przed przesuwaniem. Po przesunięciu skopiować...
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 //--------------------------------------...
... Kiedy dla próby użyłem konwersji hexval to w komórkach otrzymywałem C8. U mnie Twój kod działa bezbłędnie.Natomiast 1 uwaga: 'zamień Dim Nm As String * 1 'na Dim Nm As Byte Czy m32 na pewno chodzi na kwarcu ? Dobrze ustawiłeś opcje transmisji , w PC-towym terminalu ? Piotrek
kolega Freddie zasugerował jedno z możliwych rozwiązań, mianowicie: zamiast deklarować jakiś wskaźnik do bufora, spróbuj zadeklarować tablicę, np: unsigned char bufor[10]; nie jestem pewien co z tą funkcją dtostrf(), może to ona nie działa...
Tak przy okazji opinia Linusa: aa tiaa, ale to nie problem, zawsze po wyjściu z niej wystarczy dać : desc Dodano po 8 AD.1. zawsze, końcowe zero jest nieodłącznym elementem c stringów, więc słowo 'Ala' będzie miało cztery znaki. "Jeśli mam wyświetlacz 2x16 i chcę zapisać pełne 16 znaków w wierszu, to robię tablicę 16 bajtów, czy 17" - char bufor_1...
najprościej chyba użyć funkcji itoa [syntax=c]itoa(liczba_int, bufor*, podstawa) [/syntax] jako bufor podajesz tablice charów, podstawa mówi jaki format liczby chcesz wyświetlić. np 2, 10 ,16 p.s nie musisz inkludować plików *.c Starczy same nagłówki
Przede wszystkim wydaje mi się, że nie zdajesz sobie sprawy z tego, że w C/C++ tablice są numerowane od 0. Tak więc tablica zdeklarowan tak: char bufor[5]; Jest 5-cio elementową tablicą o elementach, do których możemy się tak odwołać: bufor[0]='a'; bufor[1]='z'; bufor[2]='1'; bufor[4]=NULL; Natomiast w przypadku...
(at)paweleke Tam jakieś urządzenie o IP 192.160.0.115 generuje problem - popatrz ile tam zapytań dropped forward pocket Restart może powodować przepełniona tablica wpisów bufora firewalla w modemorouterze. Rozwiązanie - znaleść urządzenie walące w firewalla w modemorouterze, spróbować wyłączyć całego firewalla (albo wyłączyć co i ile się da), co 24h...
1. Tak, jak przypiszesz null, lub nic ne przypiszesz do wskaźnika w trakcie jego życia to if nie przejdzie. 2. Tak, wynikiem będzie 33. Chociaż przekazanie powinno być inne, w przeciwnym wypadku dostaniesz warningi: [syntax=c] //1. Funkcja( &tablica[0] ); //2. Funkcja(tablica ); [/syntax] Może się to na pierwszy rzut oka wydawać dziwne, ale jeżeli się...
Piszesz, że jesteś początkujący więc będzie Ci trudno zrozumieć wyjaśnienie bez znajomości przynajmniej wskaźników i tablic. Przeczytaj najpierw podręcznik dla tej funkcji - [url=http://www.cplusplus.com/reference/... Funkcja wpisuje do zmiennej "bufor" (tablica znaków - cstring) odpowiednie dane (godzinę) ale żeby nie...
Adres zmiennej zwracany jest poprzez operator '&' - nie wiem skąd wytrzasnąłeś tą małpę... Twoja funkcja działą gdy podasz jej bufor, ponieważ nazwa tablicy jest wskaźnikiem na pierwszy jej element. Jeśli chcesz wskaźnik na inny element, to już potrzebny jest operator '&' 4\/3!!
Jak miała być kolejność? No właśnie , kolejność :-P Jakoś nikt nie zauważył, że pierwszy element tablicy bufor, ma być najmłodszym bitem liczby docelowej. Moja propozycja wygląda następująco: [syntax=c]char bufor[32]={0,1,1,0,1,0,0,1,1,1,1,1,1,1,1... uint32_t wynik; //... for(uint8_t i=0;i<32;i++) { wynik>>=1;...
np używając : snprintf(jakosc, sizeof(jakosc)-1, "Jakosc %d", zmienna); tylko trzeba dobrać długość bufora żeby się pomieściło.
Dokładnie jak kolega wspomniał powyżej. Poza tym, dodam tylko od siebie, że trochę kolega autor tematu namieszał z różnymi typami danych. W zdarzeniu nadejścia znaku ASCII ( OnRxChar ) czyta kolega dane do bufora zbudowanego z tablicy byte? To "niewielka" niekonsekwencja :) Sugeruję zdecydować się na konkretny typ danych (znaki albo bufor danych) i...
sam mu to powiedziales. liczby w formacie osemkowym zaczynaja sie dla kompilatorow od zera. szesnastkowe zaczynaja sie od 0x, binarne od 0b, osemkowe od 0 bufor1[i+i]=buforz[0]; //linia 2 bufor1[i+i+1]=buforz[1]; a co to za herezje? masz tutaj odpowiedz, czemu LCD sie krzaczy. konwertujesz liczbe jednocyfrowa. sila rzeczy...
Tablica Bufor() jest typu Byte więc to nie Stringi i konwersja Hexval do niczego się nie przyda. Bajty są zamieniane niejawnie we Frame tylko na potrzeby wyświetlania na LCD. Coś w ten deseń powinno działać. Ogólnie to można to mocno poskracać, ale nie chciałem zaciemniać. [syntax=vbnet]Dim Arr(4) As Byte Dim Test As Single At Arr(1) Overlay Dim Bufor(9)...
Teraz masz prescaler ADC ustawiony tak że zegar ADC ma 125kHz. Zegar ADC- a nie inne zegary. Zegar ADC ma mieć 50-200kHz. Jak Ci mniej zależy na dokładności niż na szybkości- można dać zegar ADC na 250kHz. A oprócz tego- możesz zrobić tablicę albo bufor dla UART-a.
Na szybko, moim zdaniem masz błąd w wołaniu metod write i read. Do read musisz przekazać tablice bufora przez wskaźnik, inaczej nic Ci się tam nie zapisze "buf Pointer to a buffer where the data should be written" Do write natomiast wskaźnik potrzebny nie jest ale nie szkodzi Druga sprawa to sprawdź czy oby na pewno działasz na tych samych kanałach,...
Kopiujesz nazwisko zawsze do zerowego elementu tablicy zamiast do i-tego: strcpy(tablica[0].nazwisko, nazw); W tej sytuacji zapamiętywane jest tylko ostatnie nazwisko, przy czym może dojść do przekroczenia bufora przydzielonego przez malloc() jeśli jakieś nazwisko jest dłuższe od pierwszego. Wszystkie następne bufory zawierają śmieci, co pewnie jest...
Jak to, nie możesz zadeklarować? Jedynym sposobem w C na problem "buffer overflow" jest przekazywanie zawsze rozmiaru wraz ze wskaźnikiem na bufor/tablicę. Wskaźnik przekazuje tylko adres zmiennej. Z samego adresu nie da się wywnioskować, ile jest pamięci dostępnej pod tym adresem. sizeof() działa na typie danych, tzn. tylko zwraca informacje ile miejsca...
Trochę mały ten bufor...
W przerwaniu nie powinno być funkcji obsługi LCD. Obsługę LCD daj do pętli głównej, bo inaczej będziesz miał problemy z przerwaniem. Jeżeli masz w buforze więcej rozkazów niż tylko RING, to strcmp ci nic nie da, bo funkcja ta porównuje dwa łańcuchy. Ale jeżeli w buforze bedzie zawsze tylko jeden rozkaz to możesz tak zrobić i wtedy nie potrzeba nawet...
To zrób sobie bufor (tablica pixeli) na której będziesz szybko operował a wyniki przerzucaj do Tbitmap.
Ten bufor w postaci tablicy(niepotrzebnie za dużej) jest zbędny. Deklarujesz zmienną int32_t, zerujesz ją, wpisujesz pierwszy bajt, przesuwasz 8 pozycji w lewo, wpisujesz drugi bajt operatorem |=, przesuwasz 8 pozycji w lewo, wpisujesz ostatni bajt operatorem |=. Można to zrobić w pętli - zaoszczędzisz miejsce. [syntax=c] int32_t read_data(void) { int32_t...
Zamykam temat. Sprawa okazała się dość trywialna. Przesyłałem łańcuch znaków co było błędem. Ramka składała się z 10 osobnych zmiennych USINT zapisywanych w kodzie HEX. Zatem krok 1 : zapis do tablicy 10 elementowej krok 2 : wyliczenie sumy kontrolnej i uzupełnienie tablicy krok 3 : kopiowanie tablicy do bufora z wykorzystaniem wskaźnika za pomocą polecenia...
W przerwaniu od timera, które ma następować co ileś tam ms (20, 30). Bufor to dość patetyczne słowo :D chodzi o tablicę lub po prostu jakieś zmienne gdzie jest przechowywany stan przycisku.
Najprościej zrobić sobie stały bufor, tablica char, tak poukładany by każda pozycja tablicy odpowiadała stałej wartości, np. pod text[10] zawsze jedności lat, pod kolejną dziesiątki miesięcy, itd. reszta danych. Wystarczy wtedy wczytać linię tekstu do drugiego bufora i porównać komórki pamięci, co trzeba zmodyfikować w pierwszej i zapisać do pliku.
Tablica data to bufor (z komendą), jeżeli jej drugi bajt oznacza komendę USBASP_FUNC_SETLONGADDRESS, to następne cztery bajty (od data[2]) zawierają adres wpisywany do prog_address. Tak wynika z tego programu. Rzutowanie na wskaźnik na unsigned long jest po to, aby ta pierwsza gwiazdka "wyciągnęła" z pamięci unsigned long. Inaczej, takie użycie to bezpośrednia...
Witam Możesz spróbować zrobić też w taki sposób: Do D = Inkey() If D > 0 Then 'jeśli coś jest odczytane to wtedy to zapisz do tablicy W(n) = D Incr N 'przejdz do czytania kolejnego elementu tablicy If N = 16 Then N = 1 'wykonywanie operacji na całej tablicy itp. End If End If Loop cały czas odczytujesz znaki a jeśli bufor nie będzie...
[syntax=c]void read_string(unsgined char* buffer) { while(*buffer++ = serial_read()); } //wywołanie #define BUFF_SIZE 81 int main(void) { usinged char bufforLinii[BUFF_SIZE]; read_string(bufforLinii); } [/syntax] Pisane z palca. Jest to najprostsza wersja bez kontroli przepełnienia bufora. Pozdr.
Musisz np. odbierane znaki wpisywać do bufora (tablicy) i po odebraniu znacznika końca komendy (np. <CR> czy <LF>) porównywać cały napis.
Załaczam kod, który działa. odbiera dane z portu szeregowego i wyswietla je w MsgBox(). Zwróć jedynie uwagę na zdarzenieSerialPort1_DataReceived. Zmień w nim ilośc bajtów po której mają zostać odczytane dane z BUFORA portu szeregowego. Początkowo bowiem dane trafiają do bufora (każdy bajt oddzielnie wywołuje przerwanie i trafia do bufora) a stamtąd...
Twój przykład w ogóle nie korzysta ze stosu (tylko do przechowywania zmiennych lokalnych). To co ci zjada stos to te tablice.
Nie wiem o jakiej stałej czasowej jest mowa. Na filmie #9 gdzie następuje mieszanie kolorów zmieniłem trochę soft i zastosowałem coś w rodzaju bufora fifo (tablica) z 30 próbkami dźwięku. Próbki przesuwają się w tym buforze. Nowa próbka zapisywana jest na początku, a najstarsza wylatuje. Każdorazowo po zapisie nowej próbki, ze wszystkich 30 obliczana...
obsłużyć wydarzenie jakim jest skonczenie odbierania znaku ? Chodzi mi to to aby program w pętli głównej robił co do niego należy, nie wiedząc kiedy ma spodziewac się znaku, jednakże cały czas byłby na to gotowy-aby go odebrać. tak na szybko algorytm: volatile char bufor[50]; volatile int ilosc_znakow; volatile char bufor_2[50]; int...
Przecież autor wyraźnie napisał: Przewód zasilający jest pociągnięty 5x4mm i zabezpieczenie na tablicy B20A. Zabezpieczenie można zmienić. Przewód pewnie też. Tylko po co?
Podejrzewam, że wyświetla się wszystko, tylko w terminalu mieści Ci się tylko 300 ostatnich wierszy. Zwiększ rozmiar bufora ekranu(Prawym na belkę terminala, właściwości i tam znajdziesz).
Przecież to co opisujesz to jest odbiór "po jednym znaku". Czy tobie chodzi raczej o całą liczbę mówiąc o "jednym znaku"? Jeśli tak to musisz sobie stworzyć bufor (tablica znaków), do którego będą zapisywane kolejne znaki. Gdy zbierze się kompletna liczba, wywołać na nim itoa . Pozdrawiam, GSM
Uuuaaa. Nieźle zakręcone. Przede wszystkim nie musimy pisać wszystkiego od nowa. Do takich celów stworzono funkcję sprintf http://man.he.net/man3/sprintf Ale jak już się uprzeć to ja proponuję coś zupełnie prostszego: char* uzupelnij_zera(char* str,uint8_t count) { char bufor[10]; int len = strlen(str); if(len < count)...
Czy ten kod na pewno powinien się skompilować? No chyba że to nie jest C++? ;) bufor nie ma żadnych metod, ponieważ jest to zwykła tablica znaków char , dlatego nie ma tu żadnego length . I skąd 1024? ;) Nie powinno być to 30? Natomiast *wskaznik odwoła się do pierwszego znaku, zamiast do całego ciągu znaków - należałoby raczej usunąć gwiazdkę. Kolejna...
ReadFile zwraca bool'a, więc: i f(ReadFile(hFile1, bufor1, Stat.cbInQue, &NumberOfBytesRead, 0)) { //kod do wykonania po pomyślnym odczycie } else { //kod do wykonania przy wystąpieniu problemu } ew. można jeszcze uściślić warunek - jeżeli odczyt się powiódł, ale odczytano 0 bajtów... czyli: if((ReadFile(hFile1, bufor1,...
Wielkie dzięki :) bardzo mi pomogłeś Widzę że śmiało można zrealizować bufor na tablicy jednowymiarowej :)
plazma bufory bufory szeregu bufory ciepła
bluetooth automatyczne noise floor konica firmware
kabel brake radio problemy diagbox
Schemat mini-wieży JVC UX-G210 – Service Manual, CA-UXG210, SP-UXG210, pobieranie Schemat bezpieczników Ford Focus C-Max 1.8 benzyna 2006 – lokalizacja i opis skrzynek