A ściągnij sobie Atmel Studio i zapomnij o zastanawianiu się jaką wersjękompilatora używasz :) Chyba, że lubisz sobie robić pod górkę :) A jeśli używasz GNU/Linux to ściągnij atmelowski toolchain.
jak mi się wydaje No to nie wiesz po zmianie czego program zaczął działać poprawnie? ;) Mam teraz pytanie. Ze względu, że dostaje kilka ramek jak zapisać do zmiennej: $GPGGA ? Chcę zrobić odczyt od łańcucha $GPGGA aż do 14 znalezionego przecinka po $GPGGA? Do stosowania strtok() taki bufor może okazać się za mały. W prawdzie jest to jakieś rozwiązanie,...
Ponieważ odczyt z tablicy w maluczkich uC zajmuje "dużo" flash i czasu też, dlatego nie ma odczytu z żadnych tablic. A w tych gdzie ciąg ląduje w ram, zużywa ją niepotrzebnie. Na szczęście choinka if then else zajmuje zero bajtów i zero instrukcji oraz wykonuje się w ujemnym czasie. Proponuję najpierw sprawdzić obie wersje na min. 2 platformach, a...
Witam ponownie po dłuższej przerwie. W międzyczasie usunąłem jeszcze jeden zauważony błąd powodujący zawieszenie się odtwarzacza, a przedtem wyświetlenie śmieci na LCD. Błąd ten pojawiał się, gdy do odtwarzacza włożyło się nowo zakupioną lub pustą po formacie kartę SD. Błąd ten usunąłem modyfikując fragment funkcji main, jak poniżej: if (! (AT91F_PIO_GetInput(AT91C_BASE_P...
Szanowni Koledzy Pytanie jak w temacie czy macie jakieś doświadczenia i sugestie jeśli chodzi o odczyt kodu kreskowego skanerem i skojarzenie łańcucha cyfr przełanego przez czytnik ze zmienną np tekstową? Myslałem o instrukcji GetAtKbd ale ona zatrzymuje działanie programu dopóki w buforze nie znajdzie się znak do odczytu a dodatkowo tu chodzi o odczyt...
Witam wszystkich Forumowiczów. Szczerze mówiąc to moja pierwsza tak poważna przygoda z asemblerem...ale do rzeczy...znalazłem na necie programik który przekształciłem na swoje potrzeby. Program ten jest odpowiedzialny za odbieranie łańcucha znaków (tekstu złożonego z ok. 15 znaków) przesyłanego z modułu Bluetooth (wt11) do interfejsu USART (w trybie...
Odczyt CDiF łańcuch założony na znaki,czy mogło się zbiec i poszedł regulator cisnienia paliwa
Witam. Zmagam się z konfiguracją USART na rejestrach. Widziałem dużo rozwiązań na rejestrach - ale dotyczyły one odczytu pojedynczych znaków - ja chciałbym odczytywać łańcuch znaków. Inne rozwiązania bazowały na funkcjach bibliotecznych. Do tej pory efektem było odczytywanie pierwszej litery bądź ostatniej i wypełnianie nią buffora. Jak to zrobić żeby...
Czy ta funkcja kopiuje do mojej zmiennej char * wskaznik wszytsko co występuje w frame do momentu wystąpienia pierwszego "\r\n" (czyli w pierwszym wywołaniu nic tam nie będzie a wskaźnik wskaże na pierwszą cyfrę numeru imei (łącznie z resztą frame). Funkcja strtok() zwraca wskaźnik na początek łańcucha znaków od którego rozpoczęto poszukiwanie pierwszego...
Bufor cykliczny, inaczej też nazywany kołowym, to najlepsze rozwiązanie do tego co chcesz zrobić. Tym bardziej, że jak zaznaczyłeś danych będzie sporo. Każdy odebrany znak wpisujesz do bufora i przesuwasz wskaźnik zapisu o 1. Możesz to robić przez obsługę przerwania od portu szeregowego, albo możesz do tego wykorzystać DMA. Dlaczego bufor? Ponieważ...
Co jest w takim razie w łańcuchu pobieranym z COM? for i in range(1, 30) line = port.readline() print >> output2, i, ':', time.strftime("%H:%M:%S... 'T1=', line[5:9], 'T2=', line[11:15] output2.flush() W tym fragmencie kodu wyłuskujesz coś z łańcucha line[5:9] i line[11:15]....
Kolejne pytanie: Jeśli chcę odebrać kilka znaków z klawiatury to powinienem wpisać to w jakąś tablicę? Jeśli chcę wysłać do PC cały wyraz to jak to robić? Możesz to zrobić różnie. Zależy czego potrzebujesz i na ile jesteś wprawny w programowaniu w C. W każdym z przypadków trudno jednak będzie się obyć bez tablic dla ciągów znaków odbieranych i wysyłanych....
Działa to tak, że na początku obcinamy to co znalazło się przed pierwszym 'm' (możliwe, że były tam niepełne dane) a potem cyklicznie pobieramy wszystko od początku łańcucha aż do 'm', przy czym po odczycie danych, są one najpierw doklejane do tymczasowego łańcucha (obcinamy przy okazji znaki końca linii), dzięki czemu możliwe jest odczytanie wartości,...
czy odczyty w FES'ie mogą dać jakieś odczyty świadczące o przeskoczeniu łańcucha? Postaram się podejrzeć obudowę rozrządu ale nie pamiętam czy tam są jasno czytelne znaki.
No, coś mi się wydaje, że jednak może nie do końca rozumiesz właśnie to wszystko i stąd takie podajęcie. Co to w ogóle dla ciebie znaczy, że: Bo niby po czym innym program ma poznać czy odczytane dane pasują w tym określonym miejscu ? .... toż twoja próba obsługi tego przerwania - pokazuje, że w 1000% mógłbyś wykorzystać mechanizm z Bytematch Ustawiłbys...
Nie ma podstaw by rozrząd był przestawiony. Wał i wałek rozrządu był połączony łańcuchem. Oczywiście sprawdzę ustawienie najpierw bez znaku na kole magnesowym poprzez ustawienie tłoka na ZZ i sprawdzenie walka rozrządu. Błędny odczyt był spowodowany zaciętym klinem i Magneto było przesunięte. Rozrząd nie był przestawiany w trakcie. Najważniejsze że...
Ale to chyba nie ma wpływu na działanie tego odczytu? Możemy nawet założyć, że nigdy nie jest zerowany. Oczywiście teoretycznie, bo wiadomo, że pamięć się skończy. W praktyce czytanych jest około 100 bajtów i następuje wyzerowanie. A że jest w nim suma kontrolna, dlatego wyłapałem, że czasami ten łańcuch jest zły. No i po zalogowaniu okazało się, że...
Trochę się śpieszyłem z napisaniem o co mi chodziło i wydawało mi się że wszystko co istotne napisałem. Chodzi o to że z komputera dostaje jakiś łańcuch danych. Wiadomo że znak po znaku ląduje to do UDRa. A z UDRa czytam to do jakiegoś chara, np. char odczyt; odczyt = UDR; nie będę pisał tych wszystkich pętli, warunków odczytu itd. bo wiadomo jak to...
Witam Mam problem z PL2303 i biblioteką do obsługi PhpSerial: [url=https://github.com/Xowap/PHP-Serial... do github. Używam kodu z internetu: [syntax=php] <?php error_reporting(E_ALL); ini_set('display_errors', '1'); include "PhpSerial.php"; $serial = new phpSerial; $serial->deviceSet("/dev/ttyUSB0"); $serial->confBaudRate(9600); $serial->confParity("none");...
Jednym ze sposobów jest użycie funkcji łańcuchowych. Odnajdujesz za pomocą odpowiedniej funkcji pozycję łańcucha "pressure", następnie wycinasz łańcuch rozpoczynający się trzy znaki za końcem "pressure" i długości 6 znaków i masz ciśnienie. Musisz tylko zwrócić uwagę na dwie rzeczy: 1. Musisz być pewien, że ciśnienie jest zawsze o długości 6 znaków....
nie jestem tempakiem i to jest . Jeżeli nie miałbym tego to by wszystko sie posypało a nie mam problem z odczytaniem tylko z tym Open... to moment - nie masz problemu z odczytem, tylko z open? nie rozumiem... i w której linijce ten bład? Przeczytaj w pierwsze code w moim poscie a sie kapmiesz o co chodzi;P ifstream infile; int rozmiar = 1000; //dla...
Lancuch (wiersz) odczytujesz za pomoca f. getline. Pozniej w petelce mozesz sobie odczytac znak po znaku. Obiekt cin (lub plik) posiada takze metody umozliwiajace odczyt pojedynczego znaku. Ale moze lepiej pokaze maly pzyklad: is.open ( "filename.txt" ); while ( is.good() ) { int c = is.get(); cout <<...
Ja widze 2 rozwiązania 1. zaprojektować tablice dwuwymiarową typu string i odczytywać z pliku litery do momentu napodkania spacji, wtedy zmienić odpowiednio wiersz albo kolumne tablicy 2. zdefiniować typ zmiennej typu record zawierającą 3 łańcuchy znaków, zdefiniować tablice w pamięci o elementach typu tego wczesniej zdefioniowanego, zapis i odczyt...
No to już mogą być różnice między platformami (ja używam linuksa), bądź różnica między wersją funkcji dla C i C++, ja u siebie w systemie mam: FILE *fopen(const char *path, const char *mode); FILE *fdopen(int fildes, const char *mode); FILE *freopen(const char *path, const char *mode, FILE *stream); OPIS Funkcja fopen otwiera...
Jeszcze pytanie, dlaczego w tej funkcji odejmowana jest jedynka od długości zmiennej string, jeśli ma być usuwany ostatni znak? Ponieważ "length" podaje długość łańcucha, a elementy są indeksowane od 0. Przykład: dla ciągu abc, "a" ma indeks 0, "b" - 1, "c"-2, zatem ostatni znak ma indeks 2, lecz długość tekstu to 3.
kol Freddie, znajdujemy się w dziale "Mikrokontrolery AVR", zadziwiające jest to że zawsze znajdzie się osoba która będzie posługując się jakimiś wyjątkami udowadniać z góry ustaloną tezę. Co nawiasem mówiąc czynisz, po co ? To właśnie ty posługujesz się "jakimś wyjątkiem" i udowadniasz "z góry ustaloną tezę". Nie wiem co w tej książce pisze, ale albo...
Witam. Przepraszam ze zawracam głowę, ale mam problem z wyświetlaczem lcd 16x2 opartym na hd44780. Podłączyłem go do arduino, piny są prawidłowo połączone jednak lcd wyświetla jedynie pierwszych 8 znaków resztę ucina, to samo dzieje się w drugiej linii. Oto mój kod : [syntax=c]#include <LiquidCrystal.h> LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void...
Zasilam 3.1V i mam jeszcze podłączony ds3231. Napisałem taki kod do zapisu: [syntax=c] String str = tablicaMacCzujnik[a]; // przykładowy łańcuch znaków int address = 630; for (int i = 0; i < str.length(); i++) { Wire.beginTransmission(EEPROM_ADDR); Wire.write((address >> 8) & 0xFF); Wire.write(address & 0xFF); Wire.write(str[i]); Wire.endTransmission();...
#include <LiquidCrystal.h> LiquidCrystal lcd(31, 33, 38, 40, 42, 44); void setup() { // Wybór rodzaju wyświetlacza - 16x2 lcd.begin(16, 2); //Przesłanie do wyświetlania łańcucha znaków hello, world! lcd.print("hello, world!"); } void loop(){ //Przejście kursora do pierwszej kolumny drugiego wiersza lcd.setCursor(8, 2); //Odczyt oraz wyświetlenie...
Racja, trochę się zamotałem. Napisałem sobie poniżej prosty program i zastanawiam się czy nie jest on trochę niebezpieczny. Za pomocą malloc tworzę tablice wskaźników do tablic a następnie zapisuję pod tymi wskaźnikami jakieś łańcuchy. Tylko że teraz nie wiem czy te łańcuchy nie zniszczą jakiś innych danych, ponieważ nie rezerwowałem dla nich miejsca...
Bufor cykliczny - tablica o długości N bajtów. Dwa wskażniki na elementy tegoż. Pierwszy wskażnik do odczytu (wo), drugi do zapisu (wz). Początkowo oba wskażniki ustawione na początek bufora. Zapis: Procedura przerwania po każdym odebranym bajcie zapisuje go w miejscu wskazanym przez wz. Następnie wz jest inkrementowany i jeżeli wskazuje na element...
Zrób sobie zmienną globalną, która będzie indeksować łąńcuch bufora. W przerwaniu odczytujesz znak, wrzucasz do bufora pod baj o danym indeksie, zwiększasz indeks. Kiedy już przyjdzie znak końca łańcucha zerujesz indeks, a daną masz w buforze. Możesz ją jeszcze przepisać do innej zmiennej, by jej nie stracić, gdy zacznie się odbiór następnego łańcucha...
Chcę wykorzystać w programie informację o przyczynie resetu procesora. Odczyt rejestru MCUSR realizuję zgodnie z dokumentacją, wiadomo: char MCUSR_string jest o wiele za krótka, mimo, że najdłuższy string ma teoretycznie 22 znaki łącznie z nullem. Wyświetlany napis jest ucięty. Jeśli wydłużę łańcuch do np 40 znaków, to napis pojawia się w całości. Czy...
Obejrzałem procedurę 'main' a dokładniej jej główną pętlę: [syntax=C] while(1) { if(ds1820_ConvertT()){ _delay_ms(750); ds1820_Read(ds1820_pad); temp = ((ds1820_pad[1] << 8) + ds1820_pad[0]) / 16.0 ; sprintf("Lol","%4.1f\xdf""C", temp); LCD_LOCATE(0,0); lcd_puts("T. oleju: "); LCD_LOCATE(0,11); } } [/syntax] Nie wiem jakie skutki uboczne wywoła...
Dobrze wyświetla z pewnością, już wyżej napisałem o tym Konfiguracja LCD jest raczej prawidłowa bo przy wpisaniu tekstu w " " ( LCD_WriteText("mojtekst"); ) wyświetla się on prawidłowo. Odczytujesz jeden znak z UART po czym wartość tego znaku przekazujesz jako adres łańcucha do wypisania do funkcji LCD. Kompilator niby ostrzeżenia nie zgłasza? Nie rozumiem...
Witam! Od kilku dni uczę się asemblera. Chciałem napisać bibliotekę DLL w asemblerze, która zamienia małe literki na duże, w podanym w argumencie łańcuchu(w ramach nauki). Funkcja biblioteczna otrzymuje w argumencie wskaźnik na łańcuch(char *). Odczyt poszczególnych znaków działa, problem występuje natomiast w momencie gdy chcę coś zapisać pod adresem...
Ja zastosowałem podobną składnie do wydruku na LCD tak wygląda wywołanie: PrintStrLCD ("Anulowany.",0,4) a tak procedura: /***************************************... /* Procedura wydruku łańcucha S od współrzędnych x, y */ /* generatorem znaku określonym przez pGENERATOR */ /* na wyświetlacz LCD */ void PrintStrLCD (char...
Jeszcze pytanie do kogoś kto "siedzi" i to nie krótko w Bmwe. Na kole pasowym walu korb. jest kreska, na obudowie łańcucha jest wytłoczenie nad kołem pasowym. Kreska koła zgrana z wytłoczeniem myślałem, że jest to GMP i tak ustawiałem całość. Okazało się , że GMP jest wcześniej niż zgrane znaki? Wiem że otwór blokujący jest nad rozruchem. Czy te znaki...
... void LCD_TXT(char* str) { unsigned char znak; while (0 !=(znak=*(str++))) LCD_PORT |=1<<RS; // te dwie instrukcje LCD_OUT(znak); // powinny być w nawiasach {} } ... Nie analizowałem dokładnie całości, ale zauważyłem co następuje: Kiedy do funkcji "LCD_TXT" jako argument przekażesz...
Witam, Zapisuję i odczytuję dane z pliku. W każdym wierszu znajduje się dana liczbowa i jej opis. Odczytuję poleceniem: [syntax=c] sscanf (bufor,"%d %s",&danas,strOpis); [/syntax] Problem pojawia się gdy opis zawiera więcej niż jedno słowo gdyż funkcja traktuję spację jako koniec zmiennej. Czy jest jakaś prosta metoda odczytania za liczbą wszystkich...
sprintf (buffer, "%2.2f", wynik); czyli w moim przypadku przy odczycie mV (max 2000mv) powinienem napisać: sprintf (buffer, "%4.3f", wynik); - 4 miejsca przed przecinkiem + 1 na przecinek+ 2 miejsca po przecinku To Ci da wyrównanie w prawo z miejscem na cztery cyfry, kropkę, oraz trzy cyfry po przecinku. + null -> czy tak? (tzn. znak null jest automatycznie...
Witam proboje skompilować kod PDU z pewnego ebooka według mnie brakuje tutaj makrodefinicji #include ... tylko jakiej prosze o pomoc code char CPIN[] = "AT+CPIN=1643"; //wprowadzenie numeru PIN code char CHOOSEMEM[] = "AT+CPMS="; //wybór domy lnej ś lokalizacji pamięci code char ECHOOFF[] = "ATE0";...
(...) t szerokosc wysokosc temp display.println(temp); display.println(" "); display.drawRect(123,30, 5, 5, WHITE); // to jest od celsjusza znaku display.setCursor(110,25); display.setFont(); display.display(); Blynk.virtualWrite(V2, temp); //sending to Blynk app delay(5000); } Dziękuję za ponowne dostarczenie pełnego kodu. Wydaje się on poprawny i...
Podziałam dzisiaj wieczorem i dam znać co z tego wyszło. Kod do analizy/weryfikacji poniżej: /* * Atmeta4808_PomiarSily.c * * Created: 24.02.2025 23:00:58 * Author : Waldek */ #define F_CPU 20000000UL // wewnętrzny kwarc 20Mhz #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #include <util/atomic.h>...
(...) ay() pass def write(self, data): self.buff+=data if len(self.buff)>32: with open("logfile.txt", mode="a") as f: f.write(self.buff) self.buff="" return len(data) # enable logging to file os.dupterm(logToFile()) Dzień dobry, Błąd, który widzisz, wynika z faktu, że próbujesz wyczyścić bufor `self.buff` przypisując do niego pusty łańcuch znaków (`self.buff=""`)....
No ;) pomyślałem sobie - będzie jakaś fajna biblioteczka - choć ja mam swoje własne rozwiązania - jednak tak wielu początkująych rzeczywiście poszukuje tego typu rozwiązań, że faktycznie mogłaby być taka biblioteka przydatna. Tymczasem kolega pisze takie sorki ale wg mnie herezje odnośnie flagi zajętości: - praca w trybie 4-bit bez odczytywania flagi...
Więc martwię się tylko o to, żebym sam siebie rozumiał Z tym nie ma problemu. Na podstawie własnych doświadczeń raczej martwiłbym się o to, że to zrozumienie nie wyparuje po kilku miesiącach - po to właśnie trzeba pisać kod czytelny, nawet jak robi się to samemu. Dyskusja schodzi na mocne manowce - zastosowanie tutaj unii wg mnie nie ma specjalnie...
Witam po "krótkiej" przerwie :D Ja znów z prośbą o podpowiedź. Z projektem jestem już na ostatniej prostej ale jeden płotek jeszcze do przeskoczenia. Ostatecznie, w nawiązaniu do powyższych postów, sprawę mam rozwiązaną w ten sposób że html i config (json) mam na SPIFFsie na "wewnętrznym" flashu, a na zewnętrznym flashu zapisuję bez systemu plików surowe...
Witam, z góry przepraszam jeśli moje pytanie jest banalne ale zarówno C jak i programowania mikrokontrolerów dopiero się uczę. Korzystając bibliotek Dharmani'ego http://obrazki.elektroda.pl/6450825200_1... . Chciałbym na wyświetlaczu tft wyświetlać dane z kolejnych dni w formie wykresów stałych tj np mam zapisane dane z dnia 30.12.2011...
Dziękuję kolego, odpowiedź krótka i na temat. Pętle zapisu były za długie o jeden znak - uwzględniłem znak końca łańcucha ale podczas liczenia znaków liczyłem od jeden zamiast od zera, stąd liczba znaków wyszła o jeden za duża. Pozdrawiam
odczyt ciągu znaków bascom odczyt znaków stukanie łańcucha
awaria ekspresu philips kompresor osuszacz naprawa platformy
golarka philips schematy radio makita
Grzałka zamiast anody - dlaczego to niemożliwe? Solax hybryda trójfazowy nie ładuje baterii