Coś mi się wydaje że zmienne które wprowadzasz są w tym wypadku traktowane jako ascii.
{ 0x50 , 0x04 ,0x68 , 0x32, 0x11 , 0x1F } 0x50[hex]=80[dec]=P[ascii] 0x68[hex]=104[dec]=h[ascii] Wszystko się zgadza. http://pl.wikipedia.org/wiki/ASCII
Ależ w funkcji lcd_int() nie masz nic wspólnego z rzutowaniem zmiennych a szczególnie float. Jest tylko zamiana liczby binarnej na ASCII za pomocą wbudowanej funkcji ITOA (Integer To ASCII) zastanów się jakie zakresy liczb może pomieścić typ int (czytałeś o typach ? - spróbuj zajrzeć do tabelki bo masz taką w książce na 1000%) to po pierwsze wyjaśni...
Ale jaka sieczka? Dostajesz dane w HEX, a w terminalu wyświetlają się ASCII... Wszystko jest w porządku.
Dalej to samo. ATmega czasami odbiera kody ASCII > 127, gdzie moduł gps wysyła jedynie "standardowe" znaki ascii.
No tak, komputer odbiera je jako "suche" bajty, ale Labview, niejako z miejsca interpretuję je jako dane string. Na wyjściu bloczku "VISA Read" Mylisz stringi. To, czego spodziewa się klocek to string w postaci "3.1415". A string który dostajesz z atmegi to cztery bajty o jakiś tam wartościach które zostają zamienione na string w ten sposób, że każdy...
Z mojego doświadczenia z biednym SIM900 wynika, że powinno działać ;] Jaką masz rozbiegówkę? Z mojego działającego kodu: AT\r ATE0\r AT+CPIN?\r Dodano po 2 Swoją drogą, tam naprawde nic nie jest zakodowane... SMSa wyslales z numeru: +48664555585 ;] i faktycznie z treścią "Test"... Przyjrzyj się, po 2 oktety na znak, gdzie ten bardziej znaczący to 00,...
Odpowiedź jest niby prosta, wyslij po prostu "zmienna" nie używając sprintf. Pytanie jaki rozmiar ma owa "zmienna"?
No właśnie - jak wysłać zmienną typu float lub double przez port USART w mikrokontrolerze ATmega - program w AVR Studio - C ( nie zamieniając na ASCII ani inny typ zmiennej )
Witam ponownie mam pytanie do kolegów a mianowicie nie działa mi funkcja dekodująca liczbę na kod BCD Mam funkcje A nie do ASCII ? Marek
Witam, mam zaimplementowaną w projekcie obsługę protokołu modbus (biblioteka freemodbus v1.5). Ten sam program uruchamiam na płytce testowej Xplained z ATmega 328P i komunikacją po RS232 przez wbudowany port eDBG - tu wszystko działa jak należy, zarówno tryb RTU jak i ASCII. Zegar 16MHz. Po przeniesieniu projektu na ATmega 32 z zegarem 7,3728MHz Modbus...
Mam pytanie odnośnie wyświetlania wyniku na wyświetlaczach led temperatury z czujnika DS18b20 odebranej z RMF12. Ramkę ładuję do bufora i wyświetlam na lcd; [syntax=c]lcd_locate(0,0); lcd_char(test[0]); lcd_str("-"); lcd_char(test[1]); lcd_str("-"); lcd_char(test[2]); lcd_str("-"); lcd_char(test[3]);[/syntax] Następnie chcę wysłać te dane do wyświtalacza...
Wyłącz echo w telefonie. ale jak mam to zrobic ? ATE0 nie dziala :| Czyszczenie bufora nic Ci nie da.Aby "opróżnić" bufor , wystarczy wyrównać lub wyzerować indeksy _rs_head_ptr0 i _rs_tail_ptr0 . pytanie jak to zrobic pod Bascomem ? Obecnie jest tak jak by to co wysyla telefon ladowalo sie do bufora w roznych miejscach , raz na pcozatku, raz w srodku...
Zainstaluj sobie jakiś normalny program do komunikacji, w którym widać czy to co wysyłasz to hex, czy ASCII. Polecam Docklight Scripting
Wykonaj program dla mniejszych predkosci: 110,150,300,1200,2400,4800, 9600 itd Pamietaj zeby taka sama ustawic w terminalu i w programie. Wlacz w zakladce display: Hex+ Ascii Druga sprawa to przeanalizuj polaczenie max<->atmega: Pin14 (T1out) <--> Rxd w atmedze Pin13 (R1in) <--> Txd w atmedze
Nic więcej nie potrzebujesz, wszystko możesz robić programowo. Oczywiście protokół i sumy kontrolne tez musisz zrobić sam. Kodowanie mancherster/NRZ robiłem używając tylko kilku znaków z całej tabeli ascii.
I znów piszesz nieprawdę. Standard C nie mówi nic o interpretacji przez kompilator znaków spoza zestawu ASCII - w obu przypadkach zachowanie jest nieokreślone.
Sprawdź ustawienia stosów. Dla uproszczenia zmień znaki a = 61 ASCII b = 62 itd. Wysyłaj np. echo a > /dev/ttyS0 Edit A jakim napięciem zasilasz uC ? Widzę chyba problem natury poziomu TTL Gdzieś widziałem tu na forum ten sam problem - teraz sobie przypomniałem. To był banał, ale teraz niestety nie pamiętam dokładnie co to było.
A więc tak. Gdzieś wyczytałem że między G a S trzeba dać rezystor a więc dałem 4,7k Dodatkowo przy zasilaniu procka dołożyłem kondensator 10uF. Narazie testuje i nie ma zwiech. Czy tak PWM może być skonfigurowany?? Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Up , Prescale = 8 Kwarc mam 16MHz A odnośnie wyświetlania...
Na końcu artykułu o USART napisałem: Problem liczb i znaku zapytania w terminalu Jeżeli wysyłasz do terminala liczby w postaci kodów ASCII, możesz się natknąć na problem pojawiającego się w zamian jedynie znaku zapytania. Rozwiązanie problemu znajdziesz tutaj: Problem znaku zapytania podczas konwersji float do znaków ASCII
zależy jak tą ramkę sobie zorganizujesz ale jeden z prostszych sposobów, gdy przesyłamy znaki ASCII to koniec ramki łatwo np odróżnić po tym, że nadleciał znak ENTER (0x0d). Gdy wykryjesz go w przerwaniu to już możesz powiadomić pętlę główną czy jakieś zdarzenie w tej pętli, że już jakaś cała i gotowa ramka czeka na odczytanie. Jeśli pętla główna będzie...
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)...
Tak uzywam AVRstudio. Ma kolega flapo213 moze jakies dobre algorytmy do przesowania tekstu albo jakies przykladowe animacje na lcd? btw. udalo mi sie dostac do tej tabeli, znalazlem na google stronke a konwerterem bin->ASCII i zalatwilo sprawem :)
Pamiętaj również o tym, że transmisja odbywa się w kodzie ASCII. Możliwe, że to co otrzymujesz to prawidłowe wartości tylko Ty spodziewasz się otrzymać coś zupełnie innego.
Poprawcie mnie jeśli się mylę, ale przecież char to po prostu typ zmiennej 8-bitowej. Nie ma różnicy co prześlę w ramach tych 8 bitów. Lecą sobie zera i jedynki i chodzi tylko o to, żeby programista wiedział jak je później zinterpretować. Innymi słowy czy paczka 8-bitów (typu znakowego 'char') to część jakiejś liczby, którą później programista złoży...
W funkcji sprintf zamiast "d" wpisz "x".
Może wyślij bezpośrednio kod: 13 0x0D lub \r, ale nie jako STRING, a jako bajt (CHAR) . A Ty chyba interpretujesz, że '\r' ma być ciągiem znaków. Nie wiem, czy twoja implementacja "SendString" zamienia kod '"\r" na bajt 13? Kod ten jest znakiem "not printable", nie da się go zapisać pojedynczym znakiem i jako taki nie ma jednoznakowej repezentacji "wizualnej"...
Jeżeli przerwa między ramkami (która jest stanem wysokim na linii) wynosi minimum 3.5T to jak ja odróżnić od 4 (i więcej) jedynek?? 3.5T to czas gdzie T to czas przesłania jednego bajtu więc nie trzeba nic odróżniać :wink:. Dobrym rozwiązaniem jest sprawdzanie za każdym odebranym bajtem CRC wstecz tzn. czy odebrane dwa bajty są sumą kontrolną wcześniejszych....
Lutowanie BGA (a stosowne ARMy chyba tylko w takich są obudowach) Dementuję takie pogłoski. Przykładowa płytka STM32F429-DISCO. Ma prawdopodobnie wszystko co potrzebuje autor tego tematu, kosztuje śmieszne pieniądze. Na pokładzie 64Mbit SDRAM, więc wystarczy na wiele ekranów. Alpha blending + overlay (obraz statyczny + dynamiczny) robi sprzętowo. Sercem...
Fajna miniatura, jeszcze szczelna obudowa by się przydała :) Czasami można przełączyć wyjście danych GPS na binarne aby uniknąć parsowania sekwencji ASCII. Co ile następuje zapisywanie pozycji, może warto usypiać odbiornik GPS? Zapisywanie punktu super sprawa, można jeszcze wyświetlać numer zapisanego punktu.
Witam Próbuję połączyć dwa uC za pomocą komunikacji UART. Attiny ma za zadanie nadanie jednego znaku ASCII natomiast Atmega powinna go odebrać i wyświetlić na wyświetlaczu lcd. Niestety kontrolery nie mogą się dogadać, programy realizujące to zadanie są praktycznie wklejone z not katalogowych Atmela, ale zamieszczam je niżej bo może coś pokręciłem....
Witam, Udało mi się uruchomić wyświetlacz 240x320 ze sterownikiem ili9341 na uC Atmega 1280. Obecnie chcialbym uzyc czcionkę znalezioną w internecie ze strony: [url=http://www.rinkydinkelectronics.com... a dokladniej takiej, która ma wymiary 64x100 pixels (nazwa SevenSeg_XXXL_Num) Jak mogę taką czcionkę użyc u siebie? Problemem jest dla...
nie rozumiem zupełnie co zrobiłeś... --- rxd i txd to linie magistrali rs232, ft232rl to konwerter rs232<>usb, czyli poglądowo ma z jednej strony rxd i txd, a z drugiej usb --- ISP zaś to zupełnie inny standard, a raczej typ programowania (In System Programming - ISP) posiada on linie MOSI,MISO,SCK i RST, które nijak się mają do standardu RS232...
W Saleae masz analizatory tych przebiegów. Patrzysz na Analyzers i sobie dodajesz I2C no i ustawiasz na ktorych to masz kanałach. Potem Ci będzie pokazywał Start, Stop, Ack, Nack albo Frame Error :D no i oczywiście dane które mozesz sobie włączyć w Hex, Ascii itd.. https://obrazki.elektroda.pl/5602260200_...
witam ponownie to znowu ja widzę po minach ze sie juz boicie :) a ja mam prośbę jak ktoś widzi na pierwszy rzut oka jakieś błędy to niech da znać a jak ktoś ma ATmega32 i chciał by to przetestować będę wdzięczny ponieważ ja jeszcze nie posiadam #include <avr/io.h> #define F_CPU 1000000 /* 1MHz zegar procesora */ #define CYCLES_PER_US ((F_CPU+500000)/1000000)...
Może tam jest zwykła transmisja szeregowa jak w RS232? Przecież nie wymyślali by chyba jakiegoś nowego kodu, czy szyfrowali :), myślę, że do drukarki są przesyłane zwykłe znaki ascii, lecz czekam na wypowiedź kogoś, kto miał do czynienia z takim sprzętem.
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...
:) To już dużo.... ale biblioteka złącz też by się przydała, które piny są do czego... i to nie tylko jeśli chodzi o RS. Co do komend Hayes'a - to nie ma standardu i każda z komórek ma też swoje funkcje... za to brak dostępu do dokumentacji z komendami i trzeba szukać prawie do każdego telefonu osobno. Chociażby podawanie pinu: at+cpin="tu_nr_pin" -...
no i tym czytałem ze to zamiana chyba char na ascii... int i=0; char buffer [33]; itoa(i,buffer,2);' Mam coś takiego, ale nie wiem jak tego użyć...
Dziękuję za wszystkie dotychczasowe rady. Właśnie wróciłem ze sklepu i zaraz zrobię konwerter na 74HCT14 z postu mirka. Jeśli to nie zadziała zmniejszę napięcie. Tak jak pisałem docelowo to nie wchodzi w grę, ale żeby przetestować transmisję rada jak najbardziej pomocna. Kwarc mam 8 Mhz więc jest OK. Według karty katalogowej moja atmega jest na 4,5...
Nadajesz ciąg znaków (cyfr), a wyświetlasz kolejno kody ASCII tych cyfr w postaci dziesiętnej. Problem leży w wyświetlaniu, a nie w transmisji danych. Wypisuj po prostu odbierane znaki, nie konwertując ich na liczby funkcją itoa().
Oczywiście, że jest wysyłany. Procesory jeszcze nie wyewoluowały w kierunku pobierania danych przez osmozę czy telepatię ;) Jeszcze nie wyewoluwały? Dammit... Dałbym głowe,że mój jest inny ;) Dodano po 2 A jeśli chodzi o X-CTU to ma możliwość podzielenia okna na dwie części - w jednej pokazuje wartości w Hexie a w drugim odpowiadające im znaki w kodzie...
Wyświetla Ci się wszystko prawidłowo :). Zobacz zapisujesz do wyświetlacza wartość 0x3A(58 decymalnie) w obszarze tekstowym. Potem zerknij do funkcji GLCD_WriteChar. Ona przed zapisaniem danej odejmuje od wartości podanej jako parametr 32, czyli jako różnice otrzymujemy 0x1A i to leci do wyświetlacza. Zerkamy do dokumentu, który zamieściłeś i co widzimy?...
Tak, w jednym i drugim jest kwarc 4 MHz, Fussbity ustawione na zewnętrzny kwarc. Jakby oscylator nie pracował to nie byłoby komunikacji z prockiem. Prędkość transmisji w obu 9600. A współpracować nie chce. Zastanawia mnie fakt b. dobrej współpracy jednego i drugiego procka z programami testującymi i popranych realizacji zadań przy wysyłanych poleceniach...
Jest tak: działa na 300 bodów - terminal 300 i atmega 300 działa tylko wtedy gdy niema <CR> pojawiene sie <CR> powoduje zatrzymanie transmisji do czasu otrzymania 2 innych bajtów powyzej zanku 32 tablicy ASCII Wiec wyglada na to ze port sie nie wyrabia
1. No ale tu blokujesz działanie całego procesora na niepotrzebnie długi czas. Przy 9600 nadanie 1 bajtu to wieczność. Procesor może wtedy zatańczyć kankana. I to 2 razy ;) 2. Bo można to szybciej zapisać jako: "\r\n" w ciągu formatującym wyświetlanie liczby (printf) 3. Oj wygląd się liczy. I to bardzo. Jak napiszesz program liczący tysiące linijek...
Witam. Zabrałem się za projektowanie sterownika rolet opartego na atmedze z komunikacją rs485 modbus ascii . Jako ze od czegoś trzeba zacząć załatwiłem sobie zestaw uruchomieniowy atmega 32 ARE0034 . Do zestawu zostały dołączone przykładowe programy miedzy innymi program obsługujący rs232. Kod przedstawiam poniżej: /**************************************/...
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...
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ą...
Przesunięcie przesuwa i nic nie ustawia. Do przesuniętej liczby dorzucamy na koniec wartość binarną kolejnej cyfry, a tę uzyskujemy przez odjęcie kodu ASCII cyfry 0 lub stałej o wartości 'A' - 10 (w ten sposób A daje 10, B - 11 itd.)
Użyłeś funkcji itoa - czyli integer na ascii - natomiast ICR jest typu unsigned, w efekcie każda wartość większa niż 32767 będzie wyświetlana jako ujemna. Użyj funkcji konwersji liczb bez znaku.
Jeśli dobrze rozumiem, to odbierasz jedną cyfrę (w postaci kodu ASCII), a wysłać chcesz jeden bajt z wartością tej cyfry, tak? W takim przypadku atoi() jest zupełnie bezużyteczne, jako że służy do konwersji łańcuchów znaków do odpowiadających im liczb typu int. Moim zdaniem, w twoim przypadku w zupełności wystarczy coś takiego: [syntax=c] PORTA=UDR-'0';...
No jak 6 bajtów to tak jak pisałeś :) ldi r16, 'C' subi r16, 'a' ; masz numerek literki w macierzy teraz mul *nie pamiętam składni* r16, LICZBA_WIERSZY (mul sux:P) No i jesteś na początku tej literki w flashu teraz adres do Z i lpm;)
Sprawdź jeszcze jeden "myk" Wszędzie zamiast Chr( ) wpisz ten sam numer tylko w nawiasach klamrowych (bez Chr - tylko sam nawias i trzy cyfry) Przykład: Zamiast Chr(1) wpisz Lcd {001} Zamiast Chr(7) wpisz Lcd {007} Zamiast Chr(32) wpisz Lcd {032} Kod się znacząco zmniejszy co może się czasem przydać przy małych mikrokontrolerach. Chr( ) to funkcja zamieniająca...
OK... No więc sprawa jest dość prosta (przynajmniej jak jest już gotowa :) ) * Przede wszystkim potrzebne są tablice z konwersją ASCII 7 bit na ASCII 8 bit i z powrotem (chyba, że robimy monolog w jedną stronę). ODBIÓR * Odbieramy ciąg znaków -> pojawia się problem, bo Siemens C35i, tak jak większość modemów, wysyła i odbiera dane w trybie ASCII...
No ciekawe. A czy da się coś powiedzieć o moim ATtiny13A za niecałego dolara? https://obrazki.elektroda.pl/7095142100_... https://obrazki.elektroda.pl/7187523800_... Napis od góry: ATTINY13A 2309SKY Napis od dołu: C 87 Sygnatura zgadza się z notą katalogową (1E,90,07). Jeszcze taka sprawa: Dla komendy Read Signature...
Witam, No ale to właśnie robi instrukcja MID...... pozdrawiam
Chłopaki dajcie na luz. Odbiegamy od tematu. Właśnie wyszła nowa wersja Bascoma 2.0.2 w której dodano : mcs bootloader new reset option. you can send a string for reset. To send special ascii use {}. {027} will send ascii 27. To send { you have to use the ascii value as well since { is used to send special characters. - mcs bootloader can use DTR or...
Potrzebuję wysłać do urządzenia rozkaz w postaci np 0xFF,0xFE,0x02. Bascom wysyła ale w kodzie ASCII a Ja potrzebuję w czystym hex. Jest to możliwe w Bascom czy trzeba pisać wstawkę assemblerową? Marek
Witam, Chciałbym się komunikować z uK za pomocą portu COM (RS232). Komunikacja miałaby przebiegać w stronę PC->ATmega16. Do komunikacji ma służyć Terminal. ATmega na podstawie odebranego znaku ASCII, czyli kodu klawisza klawiatury, ma wykonać jakieś zadanie. Podłączyłem Atmega16 do PC według schematu: http://obrazki.elektroda.net/48_12149859...
JSON jest dość skomplikowany - lepiej zwykły ASCII. Ale to pod warunkiem, że można dodać coś swojego do serwera (i to by omijało logowanie się). Alternatywą (jeśli nie można dodać własnej wtyczki do serwera) jest napisanie klienta HTTP/HTTPS w języku, który ma odpowiednią bibliotekę - o ile dobrze pamiętam, taką mają np. Tcl, Python, PHP - klient by...
https://obrazki.elektroda.pl/2807245700_... Witam, Temat odgrzany, i nie mojego autorstwa, ale warty przypomnienia. Potrzebowałem aby pewne urządzenie wystawiało mi do PCta kilka klawiszy klawiatury. Słyszałem już kiedyś o projekcie SWUSB pisanym w jedynym języku który choć trochę znam - Bascom. Zaprojektowałem jednostronną niewielką...
Eurek !! Coś zaczęło się dziać. Zmieniłem najpierw wysyłanie z "1" na '1'. Tylko wkrada się kolejny błąd. Mianowicie. Jeżeli zasilam układ z USB są inne wyniki i jak zasilam przez stabilizator 3,3V też są inne wyniki, jednak bardzo zblizone ( przekłamanie jakieś wkrada się na najstarszy bit ) oto przykłady: Wysyłam '1', zasilanie 5V otrzymuje 49 czyli...
a zastanowiłeś się co stanie się ze znakami ENTER jeśli je w ogóle używasz ? a jeśli nie to źle To pierwszy słuszny zarzut, znak Enter (czyli znak przejścia do początku następnej linii) jest automatycznie wysyłany przez Basom, a dokładniej instrukcję Print. Dlatego wskazówka - przesyłaj je przede wszystkim jako znaki ASCII. A ty nie pokazałeś jak robisz...
http://obrazki.elektroda.net/24_12730512... Co można zrobić z plastikowej doniczki i diod LED? Autor projektu, który obejrzycie na załączonym video, wykorzystał te materiały do produkcji globusa. I to nie byle jakiego. Globus przedstawia, a w zasadzie to wyświetla, mapę świata za pomocą diod LED. Bardzo ciekawy projekt. W podstawce globusa, która...
Mam prosty program, których chcę wysłać znak char do atmegi na początek : http://obrazki.elektroda.pl/4357451800_1... Wyświetlanie znaków mam jako Ascii, jednak co nie wybiorę nie dostaję znaku 'n'.
Wywal to zupełnie. Z tego co pamiętam 51 miały odwrotny reset:) jak masz tak podpięte jak na ascii arcie... to Sobie Sam odpowiedziałeś. MYŚLEĆ! !Reset i na masę?:-)
Ok masz rację 46 hex to litera ascii f. Spodziewałem się ff . Wszystko jasne dzięki za pomoc.
Witam Od jakiegoś czasu próbuję uruchomić pierwszy projekt na mikrokontrolerze ATmega328P. Ma to być zegarek oparty o moduł RTC DS1307. W Internecie znalazłem dość dobrze opisany kod autorstwa Bruce E. Hall, na stronie internetowej W8BH (nie mogę wklejać linków, ale bardzo łatwo go znaleźć w Google), który postanowiłem wykorzystać. Przypisałem wszystkie...
No i wszystko niby działa (znaczy mogę dowolnie programować itd) ale apetyt rośnie w miare jedzenia. Dokleiłem sobie procedurkę bootloadera bo chciałbym mieć możliwość programowania Atmegi w układzie. No i tu się schody zaczynaja. Bo po pierwsze to nic przez uarta nie mogę się skomunikować, po drugie nie działa bootloader.(co pewnie wynika z problemu...
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...
Czekam 100ms po instrukcji print dla 115K nic to nie pomoglo zmniejszylem predkosc do 9600 nadal nic ;/ kod nadajnika $regfile = "m32def.dat" $crystal = 14745600 $baud = 9600 Config Serialin = Buffered , Size = 10 , Bytematch = 13 '##### Definicja wyswietlacza ##################### Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6...
hehe ;) <cr> to pojedynczy znak ascii "carriage return" o kodzie 0x0D; podobnie <lf> to znak "line feed" o kodzie 0x0A. BTM kończy chyba każdą odpowiedź znakami <cr><lf>, a ty musisz każdą komendę kończyć znakiem <cr>. Trzy +++ wysyła się tylko jak moduł jest w trybie danych.
Popraw ten kod: aplikacja jest prosta i wysyła coś przez rs232...w żaden sposób nie mogę jednak dojść co...próbowałem konwertować to i wyświetlać na wyświetlaczu LCD, jednak nie udało mi się rozszyfrować co kryje się pod "0" i "1", bo wartości AASCI to raczej nie są. Writeline wpisuje linię - czyli string (wartości ASCII) + znaki końca wiersza (na Windows...
Takiego terminala jak na screenie to nie znajdziesz bo pisałem go sam na podstawie przykładu w B4J. Chodziło o to że wszystkie mają przyciski po prawej stronie i jak przesuniesz terminal na prawy skraj ekranu laptopa to potem ani go skasować ani wyłączyć bez przesuwania :D Jest jednak wiele innych. Realterm - wymaga trochę obeznania z nim, PUTTY - taki...
...przerobiłem dając na początku obsługę LCD a dopiero potem ADC....poprawiłem "byki"...no i teraz program się kompiluje wgrywam do proca i ....pusty wyświetlacz.......podeślijcie proszę do analizy prosto napisany w C działający przykład to może wreszcie załapię o co tam biega... //--------------------------------------... // >>>>>>>>>>...
Może nie w temacie i się usunie, ale kolega Dasej pytał o GPS. Tam jest prosto. To nadaje w ASCII odbiornik po RS232 $GPGGA,183730,3907.356,N,12102.482,W,1,0... System NMEA 0183. 183730 oznacza godzinę 18:37:30. Wystarczy wiec uchwycić początek ramki. Pomagałem w budowie takiego zegarka i działa.
Mógłbyś trochę rozwinąć ? Niestety nie mogę tego ogarnąć - to już moje drugie podejście, po próbie połączenia UART z PWM, wtedy odpuściłem, bo blokowało mi wyjścia na czas połączenia. Przeglądając przykłady na tym forum wyszło coś takiego: '********************* Konfiguracja UART Config Serialin = Buffered , Size = 40 , Bytematch = All Enable Interrupts...
Zwróć uwagę na to, że "terminal" na PC wyświetla liczby wysyłane w ASCII. Tylko gdzieś w programie dodawana jest liczba 128 do "zmienna". Stąd ć i ó. To tak, jakby następowała zmiana znaku liczby, na minus. Chyba, że ja się też mylę.
To chyba 7bitowe. W rozszerzonej tablicy ASCII 8 bitowe Temat uważam za rozwiązany, bo celem było uruchomienie interfejsu.
Hyper Terminal przerabia to co dostanie na znaki zgodnie z tablicą ASCII Wywołanie wyslij(5+'0'); przerabia poprawnie cyfry od 0-9 na kody ASCII tak by poprawnie zostały wyświetlone na terminalu jako odpowiednie cyfry. Aby wyświetlić unsigned char na terminalu możesz skorzystać z takiej funkcji: void wyslij_Value_as_Digits( unsigned char value )...
Chyba nie zrozumiałem pytania... Jak "napisać tablicę"? Normalnie: bierzesz długopis, kartkę i...piszesz :] Nie rob obslugi tekstów w C na sztywno zdefiniowanych tablicach. Znacznie lepiej robi się to wskaznikiem... Nie wiem jak ci pomóc, bo skad mam wiedziec co to jest 0x26 lub 0xB? Co to są za liczby? Nie są na pewno w ASCII (obok masz w komentarzu...
To: 1. Rozbij sekwencję na kody ASCII i umieść je w tablicy 2. Wyślij tablicę za pomocą Printbin Tablica(1) ; ilość_elementów_tablicy
Witam. [syntax=c]int uart0Init(void){ UBRRH = (uint8_t)(UART_BAUD_SELECT>>8); /* sets lower byte of baud rate register */ UBRRL = (uint8_t)UART_BAUD_SELECT; /* sets upper byte of baud rate register */ UCSRB = _BV(TXEN); UCSRC = _BV(URSEL) | _BV(UCSZ0) | _BV(UCSZ1);/* 8 data bits */ return 0; } int uart0_putchar(unsigned char c, FILE *stream) { while(!(UCSRA...
Mam problem z przesyłanymi danymi z PC do atmegi. Nigdzie nie znalazłem podobnego, może ktoś już spotkał się z czymś takim. Do atmegi podłączony jest max232 przez który odbywa się transmisja. USART skonfigurowany na 8 bitów danych, 1 stop bit, bez kontroli, 9600. Wysyłam z PC po jednym bajcie następnie od razu odsyłam je do PC. Z bajtem który otrzymuje...
Parametry Com1, Synchrone, Parity, Stopbits, Databits, Clockpol Muszą mieć takie jakie ustawisz w PC (prędkość transmisji, liczba bitów stopu, parzystość/lub nie). 8,n,1, baudrate, to wiadomo. Com1 - jeśli to wybór portu sprzętowego kom, dostępnego w mikrokontrolerze to też jest zrozumiałe. Zastanawiałem się raczej nad sensem stosowania transmisji...
hmm panowie fajnie poczytać wasze opinie na takie tematy jednak chyba nie idą one w temat mojego problemu. Użyłem case i juz wiem ze to jest nie właściwa instrukcja warunkowa. Doprzygotowania swojego menu wykorzystałem if-y jednak przy kilku poziomowym menu troche sie w tym zamieszałem i gdybyście szanowni koledzy pomogli mi troszke zoptymalizować kod...
Coś dziwne rzeczy wypisujesz.... )0x0C00 to jak na mój gust trochę ponad 3000, czyli nawet zakładając, że podajesz słowa, a nie bajty nadal masz 1/4 pamięci wolną, a 0x0B00 to nieco ponad 2800 więc w czym problem? Po drugie nie piszesz nic o optymalizacji - próbowałeś coś z tym robić? Z jakim efektem? Po trzecie ze zmiennymi lokalnymi to jest tak, że...
A mnie się wydaje że tylko jeden najstarszy bit jest błędny. Tak! rzeczywiście, nie wziąłem pod uwagę, że Terminal wysyła kody ASCII czyli "0" tak naprawdę przesyłane jest jako "48" a więc reprezentacja binarna to "0011 0000" a nie "0000 0000". Mimo wszystko problemem była ta "1" na najstarszym bicie. Okazało się, że ustawiłem złą długość ramki. /*...
Tak wygląda cała moja biblioteka: [syntax=c] #include "stm32f10x.h" #include "clock.h" #include "t6963c.h" //--------------------------------------... // Graphic LCD with Toshiba T6963 controller // Copyright (c) Radoslaw Kwiecien, 2007r // http://en.radzio.dxp.pl/t6963/ // Compiler : avr-gcc //--------------------------------------...
Tu jest błąd: Dobra to poprawię. Na co to wpływa ? Dodano po 1 ~1<<enable; rozumiem że chodzi o wyzerowanie wszystkich bitów oprócz 7 i 6 (dla enable == 5)? Czy o ~(1 << enable)? Dodano po 8 while(*string_of_characters > 0) Znaków o kodach > 127 rozumiem że świadomie nie chcesz drukować. 1. zerowanie wszystkich :) 2. drukuje się napis...
Witam! Nie umiem sobie poradzić z uruchomieniem kodu. Myślę, że temat książkowy. Mam błędy w programie który próbuję uruchomić w celu dalszej edukacji w C. Nie znam jeszcze dokładnie w tym języku wszystkiego, więc zwracam się o pomoc, jeżeli to możliwe, aby uruchomić ten projekt. Dodaję kod i plik z builda. Poprawiłem tytuł, formatowanie postu i pisownię....
Przechodzą do sedna, jak zaprogramować transmisję żeby układ pierwszy nadawał wtedy gdy układ drugi czeka na sygnał Nie za bardzo rozumiem... Jaki masz tutaj problem? Najzwyczajniej w świecie jedna Atmega odpytuje drugą. Najprościej i najszybciej zrobić to z użyciem znaków ASCII: - wysyłasz np"1" - odbierasz odpowiedź - wysyłasz np"2" - odbierasz odpowiedź...
Witam Postanowiłem pobawić się trochę układem DS1305. Ogólnie układ wydaje się działać, jednak kiedy bliżej przyjrzeć się temu w jaki sposób zliczany jest czas pojawia się pewne dziwne zjawisko. Mianowicie co jakiś (co 10 sekund/minut) czas zamiast inkrementacji sekund/minut o 1 inkrementują się one o 7 np. z 25 na 32. Poza tym wszystko wydaje się być...
Dwa lata temu uruchomiłem prototyp ,a potem wyprasowałem dedykowaną płytkę pod mechanizm drukarki termicznej AXIOHM. Program napisałem w BASCOM. Czcionki sam wyrzeźbiłem 8x12, nie wszystkie, bo to sporo zabawy, ale od ascii 32 do 122. Wpakowałem je do flash. A steruje tym atmega 8 i zajęte ma ok 40% pamięci programu. Nie interesował mnie tryb graficzny....
1. Użyłeś kod, który Ci zmieniłem ale zrobiłeś to niedokładnie - przez co może nie działać poprawnie (z jakiegoś powodu dałem int a nie char - zastanów się dlaczego). Co prawda przy ASCII7 nie będzie to problem. 2. Szkoda te 20 linijek rozbijać na tyle plików - ciężej się czyta, a sensu za dużo to nie ma. 3. atoi - nie sprawdzasz czy masz poprawny string...
Driver czyli cała płytka sterująca drukarką (z megą i driverem silnika). Nie mylić z samym układem/driverem silnika krokowego. Dane do głowicy idą bezpośrednio z procka ATmega 32 będącym na płytce drivera. Wiem że trochę tym nazewnictwem namieszałem więc teraz płytkę będę nazywał sterownikiem drukarki :-) Co do sekwencji grzania to do tego są wejścia...
Chodzi o to, że standardoiwy print wysyłał liczbę jako ciąg kodów ASCII. Kumpel się nad tym sporo namęczył. Ale generalnie, jeśli deklarujesz $crystal jako 8 MHz to powinno działać. A tak kombinuj jak to deklarować, żeby było dobrze :/ A przecież BASCOM jest taki intuicyjny :P Wiem, że fabrycznie ATmega ma swoj wewn. oscylator. Jak dla mnie, BASCOM...
Witam Uaktualniam sterownik (na bazie ATMEGA AVR) tak aby można go było programować poprzez RS485 protokół MODBUS ASCII. Mam problem jak powinna wyglądać obsługa rozkazów które wymagają długiego czasu wykonania (max 8 sekund. Jeden z rozkazów powoduje przepisanie parametrów z RAMu do EEPROMU 1kB.) tak aby uniknąć timeout ze strony serwera (zdalne programowanie...
Dlaczego tablica ascii ma tylko 6 pozycji? Potrzebujesz 7. Jawnie wychodzisz poza tablicę (w kodzie wystepuje ascii[6]). I taka uwaga na przyszłość. W funkcji set_values wysyłasz dane serialem. Procedura USART_Transmit czeka aktywnie na wysłanie - trwa dość długo. Wywołanie jej w procedurze obsługi przerwania z odbiornika powoduje za długie wykonanie...
atmega ascii modbus ascii atmega rs232 ascii
radiowy sterować 868mhz jakość dźwięku bluetooth gazem grand cherokee
kosiarka world schemat bezpiecznik touran
Tryb serwisowy Thomson Chassis MT51 - jak wejść? Wywołanie portiera w systemach domofonowych Proel