dzień dobroci. #include "konfig.h" // sugerowalbym nazwy typu "config.h" volatile char Temp; // skoro odbierasz znak, to po co komu 16-bitow? ISR(USART_RXC_vect) { //Temp=0; // zbedne Temp=UDR; if (Temp=='1') // przynajmniej wiadomo o co chodzi { UDR=Temp; //echo tego co wysyla } } int main(void)...
O coś takiego chodzi? [syntax=c]char * Hex2Ascii( unsigned char *data, char *AsciiBuf, int length ) { while( length-- ) { *AsciiBuf = (*data >> 4) + '0'; if( *AsciiBuf > '9' ) *AsciiBuf += 7; AsciiBuf++; *AsciiBuf = (*data & 0x0F) + '0'; if( *AsciiBuf > '9' ) *AsciiBuf += 7; AsciiBuf++; data++; } *AsciiBuf = '\0'; return AsciiBuf; }[/syntax]
Nie widzę tu jakichś prawidłowości. Ja widzę, pierwsza - regularnie występują bajty synchronizacyjne 7f, 7f a po nich wartości binarne. Jedno jest pomieszane - część bajtów jest HEX a część jako ASCII a to strasznie miesza - trzeba te ASCII zamieniać na HEX i potem dekodować liczby. Problem jest jak pojawi się spacja bo słabo ja widać a też ma swój...
Jak byś pisał program do procka w C, to byś w prosty sposób sobie to "naprawił" ;) wynik = UDR - '0'; po prostu wysyłasz z delphi przecież panie kolego nie liczbę a znak ASCII - nie prawdaż ??? Zatem znak ASCII w postaci cyfry np "2" będzie miał wartość 50, znak cyfry "1" będzie miał wartość 49 - to chyba normalne. Zatem musisz od odebranej liczby (znaku...
Chyba się udało :D Podsumowanie i przykładowe kody w Pythonie - wykorzystywany algorytm CRC MAXIM czyli wielomian x8+X5+X4+X0 jako generator ciągu pseudolosowego [syntax=python]# Define a function `crc8()` def crc8(x): if x & 0x01: x = (x >> 1) ^ 0x98 else: x = x >> 1 return x [/syntax] - obliczanie ograniczyłem tylko do obszaru danych...
Sposób który pierwszy narzuca się aby liczbę przedstawić w postaci tekstu to znaleźć ilość jednostek, dziesiątek, setek, tysięcy, itd... w danej liczbie (dzieląc przez 1000,100,10). Następnie te znaki pozostaje już tylko "przesunąć" do znaków ASCII, a wiec dodać 0x30. Dla przykładu mamy liczbę 123, liczba setek: 1, liczba dziesiątek 2, liczba jednostek...
No cóż, wiesz jak zmienna char przechowuje znaki? Raczej nie zapiszesz w pamięci komputera np 'A' albo 'C'. Zmienne typu char przechowują znaki własnie w postaci liczb (Tu poczytaj trochę o ASCII). Wiec wniosek jest proty, losujesz liczbę z odpowiedniego przedziału (jesli rzuciłeś okiem na tablice ascii to bedziesz wiedział o co chodzi :) ), zamieniasz...
Tak jeżeli twój terminal obsługuje znaki sterujące. Kompletne polecenie wysłania wiadomości SMS wygląda następująco: AT+CMGS="+48XXXXXXXXX" <CR> Tekst wiadomości <CTRL+Z> <CR> - „Carriage Return” w tablicy ASCII ma numer 13 (0x0D). W terminalu ten kod będzie wysyłany po naciśnięciu klawisza [Enter]. <CTRL+Z> - "Substitute"...
Nie chcę Cię martwić (bo jeżeli Twój kod działa jak powinien to OK), ale to co robisz w pierwszym poście 1 i 3 nie jest sobie tożsame. Kod w #1 jest jak najbardziej prawidłowy. Typ char to dla platformy .NET tak naprawdę 16-to bitowa liczba z zakresu 0...65535 Więc taki kod: znak o kodzie ASCII = 4 . Do tego w zasadzie typ char został stworzony. Jeżeli...
Da sie to zrobić oszczędniej. Mój pomysł: void print (unsigned int data) { unsigned char l,t[5]; for (l=3;l<4; l--){ t[l]=data%10; data/=10; } //t[4]=0; //wedle uznania :) //w stringu t bedziesz miał swoją liczbę podzieloną na 4 cyfry // ale nie ascii - zeby bylo ascii to dodaj 0x30 //...
Jeśli chcesz gotowy kod to masz go w przykładach do książki do ściągnięcia za darmo z ftp helionu. Możesz sobie tam zrobić dowolną liczbę wyświetlaczy, o ile pamiętam kod jest okomentowany, więc nie powinno być problemów. W powyższym kodzie żeby zwiększyć liczbę cyfr trzeba dodać kolejne case w ISR, co jest pomysłem takim sobie. Warto też wyświetlaną...
Pisząc o dodawaniu masz na myśli, że jeżeli base jest np. 2 to jak przekształcamy na dziesiętnt to musimy dodawać wartości wymnożone i odpowiednio podniesione do potęgi drugiej? Nie.... Przykładowo masz ciąg "124" reprezentujący liczbę 124, a więc Bierzesz pierwszy znak z lewej (1 - kod ASCII 49) taka jest wartość bajtowa zmiennej char. Odejmujesz...
...Gdy z terminala wysyłam 2 to procek zwraca mi 50 gdy 1 to 49 gdy 3 to 51 itd Pewnie gdyby a była single to by było O.K. "Kłaniają się" typy zmiennych. Kiedy do terminala wpiszesz 2 , to po łączu szeregowym do uC , jest wysyłany kod ASCII cyfry 2 , czyli dziesiętnie 50.Instrukcja print , "przetwarza" owe 50 na ciąg znaków ASCII reprezentujących liczbę...
Okey, tak zrobię. A swoją drogą Debbuger mówi mi, że gdzieś w moim programie występuje dzielenie przez zero, ale nie jestem w stanie określić kiedy to może się dziać. Byłbyś w stanie pomóc z tym?
http://pl.wikibooks.org/wiki/Programowan... :-) A jeśli chcesz wylosować tylko knkretny znak od A do Z to piszesz: znak = 65+rand()%26; Wylosuje to liczbę od 65 do 90 (czyli w ASCII od A do Z) :-)
Aby zamienić na dowolny system dzielisz liczbę przez podstawę nowego systemu i spisujesz reszty od końca. np 123(10) 123:16= 7 * 16 + 11 7:16 = 0 + 7 11 to B więc wynik 7B
Albo łopatologicznie... void print (unsigned int data) { unsigned int temp, t, s, d; temp = data; t = temp / 1000; temp = temp - (t*1000); s = temp / 100; temp = temp - (s*100); d = temp / 10; temp = temp - (d*10); ... } Albo z większą finezją jak zaproponował kiedyś kolega przemek20... void print (unsigned...
Start: MOV SCON,11010000B ;... NIE SPRAWDZAM CZY JEST DOBRZE USTAWIONA TRANSMISJA MOV TMOD,00100000B ;... NIE SPRAWDZAM CZY JEST DOBRZE USTAWIONA TRANSMISJA MOV TH1,#243D ;..... brakowało "#" a samej wartości 243 nie sprawdzam :-) MOV TL1,#243D SETB TR1 ;................ włącz taktowanie SETB REN ;................ włącz odbiornik ELO: JNB RI,$ ;.....................
zrób sobie zmienną typu string i wczytuj do niej znaki. Wtedy masz tekst i z tablicy ASCII - na wikipedii masz fajnie rozpisaną ;) korzystasz i sprawdzasz czy podany znak jest cyfrą 0-9 czyli czy należą do przedziału 48-57 ;) i wczytujesz te liczby aż do napotkania znaku innego ;) Pamiętaj że możesz mieć wg tego co napisałeś różne liczby czyli zarówno...
Jednym z sposobów jest zapoznanie się z czymś takim jak ASCII i po skojarzeniu co to jest można napisać prostą funkcję, która przetworzy napis znak po znaku na liczbę. Kolejnym sposobem jak zapoznanie się z funkcjami z stdio.h tam też są cuda nie widy pozwalające wyciągnąć liczbę z napisu. Ostatnim chyba najprostszym sposobem jest zapoznanie się z dokumentacją...
Zera nie wyślesz w łańcuchu, bo 0 w C oznacza koniec łańcucha. Możesz przecież zdefiniować odpowiednie ciągi bajtów i napisać funkcję z dwoma argumentami (adres, długość) wysyłającą zadaną liczbę kolejnych bajtów. Znaki inne niż 0 możesz zapisać w łańcuchu używając sekwencji ósemkowych, np. "abc\003\016def" albo szesnastkowych, np. "abc\x04\x13def"....
To jest dosyć niewygodny sposób na przesyłanie zmiennych w postaci znaków ASCII i sam się nieco ograniczasz, bo pierwsza zmienna musi mieć zawsze dwa znaki, druga trzy itp... Jeśli chcesz troszkę bardziej uniwersalnie podejść do tematu to przesyłaj wartości zmiennych w ten sposób: PRINT XX,YYY,Z,KKKK czyli każda wartość oddzielona np przecinkiem. Później...
O ile dobrze pamiętam (nie pisałem w Delphi już jakieś 1.5 roku) była do tego standardowa funkcja Ord(). Jako jej parametr podajesz 1 znak (char) a na wyjściu dostajesz bodajże Byte. :) Pozdrawiam
Ale ten sposób wysyłania ramek to trochę nie teges. A jak poprawnie się wysyła takie ramki i czym? Nie możesz po prostu sprawdzić w opisie programu jak należy formatować dane? Bo domyślam się że to jakiś terminal jest. Na Wikipedi jest opisane tak: "Minicom to program do kontroli modemu oraz emulator terminala dla systemów uniksowych" Ciężko Ci pomóc...
Witam. Mógłby ktos doradzić jakiej funkcji uzyć i w jaki sposób,aby zamienić ciag znaków ASCII z LCD na liczbe typu int ??? Dziękuje z góry pozdrawiam:)
http://obrazki.elektroda.pl/4102413500_1... Wyświetlacz matrycowy LED 8x80 - mój projekt magisterski. W ludzkiej naturze tkwi fascynacja wszelkiej maści kolorowymi, mrugającymi świecidłami, stąd też chyba popularność wyświetlaczy matrycowych. Można je spotkać zazwyczaj na dworcach, w autobusach, albo w witrynach sklepów. Od dawna chciałem...
(at)oscil1 (at)excray Sądzicie że podpowiedzi mu coś pomogą ? Zerknijcie w historię (jak ja teraz). To kolega od zamiany Bascoma na ASCII
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...
Witam, zastanawiam się czy jest jakiś sposób żeby w PicoBlaze wydzielić poszczególne cyfry z danej liczby. Potrzebne jest mi to do wyświetlenia tej liczby na LCD (a on obsługuje tylko możliwość wyświetlania przez kody ASCII pojedynczych znaków). Czyli np. mając liczbę 255 musiałbym wysłać na LCD sekwencję ASCII(2), ASCII(5), ASCII(5) Problem pojawia...
Szkoda, że nikt (ze studentów) nie wpadł na to, że wystarczy jedna funkcja, by przedstawić wczytaną wartość w dowolnym systemie pozycyjnym. Chodziło tu o uzmysłowienie sobie ("odkrycie"), że wartość liczby nie jest trwale związana z jej reprezentacją i nie ma znaczenia to, jak liczba jest fizycznie reprezentowana w pamięci komputera. Dlatego było tak...
Trzeba odjąć od kodu ASCII znaku wartość 030H, to co zostanie to jest wartość cyfry.
Chciałbym dzisiaj opisać i przybliżyć Wam bardziej czytnik kart RFID. Opis będzie dotyczył modułu RDM6300. https://obrazki.elektroda.pl/6096516800_... Jest to czytnik kart i TAGów RFID pracujący z częstotliwością 125kHz, urządzenie to nie potrafi zapisywać kart/TAGów. Moduł sprzedawany jest w komplecie z anteną. Jego wymiary to: 39x19x12mm,...
http://obrazki.elektroda.pl/3025550100_1... Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale...
Witam. Nie znam bascoma (mogę pomóc w asm) ale z tego co już śledziłem tematy transmisji to bascom lubi "domyślnie" przekonwertować dane pomiędzy zmiennymi typu BAJT i ASCII i np wysyłając liczbę 23 w żeczywistości bascom wyśle kod ascii liczby 2 i liczby 3 czyli dwa bajty.... sprawdź czy w jakiś sposób nie są te dane powiązane (konwertowane).
W przykładzie wbudowanym w Arduino jest SerialEvent, w nim dowiesz się jak odebrać linię tekstu, czyli zakończenie w terminalu ma być znakiem końca linii i początek wiersza (standardowo). Taką linię tekstu parsujesz, zamiast tak jak jest w przykładzie odesłać odebrany tekst z powrotem. Deklarujesz dwie zmienne, przypisujesz do nich wynik parsowania,...
Witam, przesyłam wartość zmiennej z jednego uc do drugiego po rs232. Wykorzystuje printf("%u", zmienna); jeśli do "zmiennej" wpisze wartość np. 7 do drugi uc wyświetla mi nie 7 a 55 co odpowiada cyfrze siedem w kodzie ASCII. Mo je pytanie, jak wysłać wartość "zmiennej" jako liczba a nie kod ASCII. Dodam , że wysyłając z terminala 7 jako kod ASCII na...
Z kontekstu wynika, że funkcja uart_puts(x) powinna przyjmować argumenty typu char, czyli znaki. Wysyłając zwykły bajt dostajemy jakiś znaczek rozszerzonego kodu ASCII - czyli zwykle "kwadracik". Chcąc dostać liczbę należy wysłać kolejne znaki ASCII reprezentujące cyfry. Czyli przed wysyłką należy zamienić liczbę na tekst. Można to zrobić funkcjami...
No i poszło - CTF_{Move37} Dodano po 29 No więc po kolei. Etap 1/7: Pobieramy obrazek portalu, i biorąc pod uwagę że to kategoria "stegano", patrzymy na najpopularniejszą technikę steganograficzną - to jest ukrywanie informacji w LSB, czyli najmłodszych bitach obrazka. Po wykonaniu "pixel = (pixel & 1) * 255" na każdym pikselu tegoż, dostajemy następujący...
dzięki, tylko to"ORL A,#30H ;ZAMIENIAM JA NA ASCI " wystarczy żeby zamienić liczbę 4bit na ASCII? A i jeszcze czy żeby wyrzucić na port nie trzeba zrobić jakiegoś Out'a?dzięki i pozdrawiaam
1.; ****************************************... 2.; Program konwertujący 1-cyfrową liczbę szesnastkowo na kodzie ASCII 3.; ****************************************... 4. 5./* 6.0 – 30h 7.1 – 31h 8. 9. ASCII(x)= ASCII + 30h 10. 11.9 – 39h 12. ––– –––...
Bo to wczytanie to wczytanie znaku, a potem traktujesz go jako liczbę. Musisz najpierw przerobić wczytany znak na liczbę odejmując od kodu ASCII znaku wartość tak, aby wyszła właśnie cyfra.
Napisz sobie sam ta funkcję 1) instrukcją MID rozetnij stringa na 3 znaki ascii 2) liczbę w ascii przypisz do bajtu 3) odejmij od bajtu 48 4) teraz bajt setek pomnóż przez 100, bajt dziesiątek przez 10, a bajt jedności zostaw jak jest 5) dodaj te 3 bajty A wogóle to staraj sie unikać konwersji string<>liczby bo to zżera tylko pamięć. Nie możesz...
Ord, Chr, DecToBin (to już specyficzne dla kompilatorów niektórych)
Witam! Sądziłem, że skoro został wywołany plik cstdlib.h to funkcja atoi jest Koledze znana. Funkcja int atoi(char *), zawarta właśnie w cstdlib.h, przetwarza liczbę zapisaną w formie ciągu znaków ASCII na liczbę typu int. Komplementarną do niej jest funkcja itoa. A oto prymitywna wersja atoi: [syntax=c]int moje_atoi(char *s) // prosta funkcja przetwarzająca...
Jestem chyba przemęczony, sprawa wydaje się banalna ale chyba mi coś umyka bo nie mogę przesłać liczby dziesiętnej z arduino przez bluetooth na telefon. np. wysyłam liczbę 48 to oczywiście do telefonu trafia w kodzie ascii "0". Potrzebuje przysyłać różne liczby co 100 milisekund. BTSerial.write("48") działa ale liczba ma się zmieniać co chwile więc...
Witam! Walczę z tym i za nic nie mogę tego przeskoczyć. Piszę program, który przez rs232 (9600bps) otrzymywał będzie znaki ASCII (sporą ilość nawet do 200) jego zadaniem będzie łączenie znaków w pary i przetwarzanie ich. W zasadzie algorytm jest łatwy, ale niestety mikro się nie wyrabia mimo ze wlutowałem rezonator 10 MHz. Ja napisałem to tak: Do B...
Oki, jest wstępna wersja programu. Program: 1. Odczytuje plik z serwera 2. Pobiera linię zawierającą stan wyprowadzeń urządzenia (zer nieznaczących nie trzeba wpisywać) 3. Sprawdza poprawność danych 4. Wysyła dane do urządzenia w formacie: Wx , gdzie W -komenda zapisu do uC; x -znak ASCII reprezentujący liczbę od 0-255 (stan wyprowadzeń) 5. Wysyła R...
Problem jak w temacie. Pobieram rozmiar pliku do edx i w jaki sposób taką liczbę przekonwertować na ASCII?
Ten układ używa sterowników portu wirtualnego szeregowego COMx. Jeśli wyśle sie jakiś znak ASCII lub liczbę HEX do tego portu to wówczas zostanie wystawiony na wyjściu równoległym zakładając że sygnały są połączone jak pisałem wcześniej. Rysunek Twój jest dobrym rozwiązaniem :)
Rozumiem, że chodzi o to, aby liczby 0-9 zamienić na kod ASCII znaków 0-9 ? Jeśli tak to wystarczy do każdej z wartości dodać liczbę 48 (dziesiętnie), czyli 30 (hex). 30h to kod ASCII zera - patrz tabela znaków ASCII.
string liczbę liczbę portów wyswietlic liczbę
iveco daily ciśnienie oleju opornik koncowy lumia hasło
Wypadanie zapłonu w cylindrach 2 i 3 w BMW - przyczyny i diagnostyka Opel Vivaro: Kod błędu P0269 - Cylinder 3 Problemy