Z procka, z tego co wiem, to nie. Mozesz kupic sobie EEPROM z identyfikatorem unikalnym np. [url=http://ww1.microchip.com/downloads/... Mozesz sobie tez podlaczyc scalak o podobnej funkcjonalnosci na 1wire (sa takie). Dla pocieszenia powiem, że większość nowych ARMów ma unikalne serial numbery w krzemie ;]
Nie dziwne że twoja funkja nie działa, skoro odbierasz w niej JEDEN (słownie: 1) znak... stringi kończą się zwykle znakiem \n, czaem nawet kombinacją \r\n 4\/3!!
Pomyliło Ci się z itoa(). Ta którą podałem działa właśnie tak jak potrzebujesz, czyli string->int. Podałem nawet link na wikipedii, wystarczyło kliknąć. ;)
Symulator w Atmel Studio 6.0. Twoje funkcje u mnie działają poprawnie, tzn dane z jednej są kopiowane do drugiej. To kopiowanie jest "bezmyślne" w sensie że, kopiuje obszar pamieci bajt po bajcie, bez znaczenia jest typ zmiennej. Może problem tkwi w dobieraniu się do pól struktury?
rzeczywiście nie rozumiesz. Chodzi o to żebys wiedział, czy masz coś w buforze. np - malutka modyfikacja [syntax=c]int uart_getc(void) { // sprawdzamy czy indeksy są równe if ( UART_RxHead == UART_RxTail ) return -1; // 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;...
Dlaczego niezależnie od tego czy string wejściowy zaczyna się od "-" bądź nie, efekt jest ten sam: Jest to zgodne z opisem działania tej funkcji: " To determine the beginning and the end of a token, the function first scans from the starting location for the first character not contained in delimiters (which becomes the beginning of the token). " Ciekawe...
Zamień na stringa to co otrzymujesz z ADC, albo przerób inaczej procedure wysyłania. W tej chwili w funkcję która wysyła stringa wrzucasz int'a
Jak zadziała polecenie Len() ? obliczy długość dołączonych zmiennych T1 i T2 ? Tak, choć samodzielne sprawdzenie tego choćby w symulatorze zajęło by Ci 60 sekund ;-) Oczywiście mowa tutaj o zmiennej Command, która, zakładam, jest stringiem.
To jeszcze dodaj zabezpieczenie przed przekroczeniem długości stringa. Bo teraz jeśli PC wyśle długi string to możesz zapisać aż 256 bajtów, po czy string będzie nadpisywany.
Bo Const to stała a Ty potrzebujesz czegoś jak DB albo PROGMEM. Czyli danych umieszczonych w pamięci. A stała niekoniecznie będzie tam umieszczona. Stała może być np. wbudowana w rozkaz assemblera (akurat nie tutaj ale inaczej to może być). Zrób raczej tak: Dim Atmega As String Dim Attiny As String Atmega = "Atmega" Attiny = "Attiny"...
1. Włącz BOD i WD 2. Utwórz zmienną na początku pamięci EEPROM i jej nie używaj: [syntax=vbnet]Dim Reserved As Eram String * 8 Dim Dane As Eram Byte ... [/syntax]
To co robisz jest absolutnie błędne. Nie wolno zwracać wskaźnika do zmiennych lokalnych - po wyjściu z twojej funkcji wskaźnik ten nie wskazuje na żaden poprawnie zaalokowany obszar pamięci. To co wcześniej zajmował twoj string będzie od razu nadpisane przez kolejne funkcje - wszystko przecież znajduje się na stosie. Jeśli chcesz zwracać wskaźnik na...
Nie dokładnie opisałem. U mnie A01 jest uzyskiwane ze zmiennej Sring - i tu jest problem jak to wyświetlić. Może tak - w wyniku operacji na zmiennej string otrzymuję wynik A01(też string). I teraz potrzebuję wyświetlić to co jest zapisane pod zienną A01 (czyli w przykładzie tekst1. c jest string = 5 , d jest string = 0, A50 ="Test1" B = C + D E = Val(b)...
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...
W przykładach operujemy ciągle na stałych - daj fragment kodu, który Ci coś nadpisuje. Jeśli chcesz wygodnie korzystać z c-stringów to dołącz string.h i korzystaj z właściwych do tego celu metod... no i właśnie dlatego "nie schodzę poniżej" C++, bo uważam, że programista ma na głowie ważniejsze rzeczy (jak np. funkcjonalność i niezawodność końcowej...
Musisz o jeden większe robić jeśli przechowują stringi (tylko wtedy) i to na dodatek o jeden większe od długości stringu jaki chcesz w nich przechować. Chodzi o to, że dla stringów mamy zawsze ostatni znak końca stringu, którego w zasadzie nie widać ale musi on tam być.
http://allegro.pl/listing/listing.php?or...
Zamiast klocka do konwersji na double daj 'string indicator' i pokaż jaki dokładnie string odbiera labview. Poza tym, powinieneś mieć coś jak "COMileśtam" w okienku do wyboru źródła VISA.
Hmm bardzo możliwe.Szczerze mówiąc nie zwróciłem na to uwagi. Wieczorkiem uproszczę tą procedurę. A pytanie: czy czasem te instrukcje : Instr(rs1_odebrane , "SYGNAL:") nie spowalniają wykonywania procedury? Można jakoś inaczej wyciągać interesujące nas dane z "odebranych stringów"?
Pierwsza rzecz która rzuca sie w oczy to to że podajesz długość sms jako argument funkcji dekodującej a potem zmieniasz ten argument wyciagając tą długość z zakodowanego stringu. I jeśli w stringu jest ta wartość to potem nie zwiększasz wskaźnika i te same dane wykorzystujesz do dekodowania smsa. Albo zapomniałeś zakomentować pdulen=hexstr2bin(ppdu);...
nie, funkcja nie ma możliwości wykryć jakiego typu dostała argumenty, i dlatego na przykład w funkcji printf typy są podane w pierwszym argumencie (który z góry wiadomo że jest stringiem) i dopiero kolejne argumenty są typów dowolnych.
http://allegro.pl/listing/listing.php?ca... 59 - 69zł za dwa piloty i odbiornik. Te piloty z metalowym, szczotkowanym frontem są naprawdę pancerne.
W takim razie potrzebujesz konwersję string na int. http://4programmers.net/C/Konwersje_int_...
A dlaczego nie możesz użyć pgm_read_byte/word? Przy pomocy tych makr odczytujesz string aż do napotkania znaku NUL, który go kończy. Alternatywnie wymień strcpy na strcpy_P, tylko, ze wtedy funkcja będzie działać wyłącznie na stringach z FLASH.
Może, ktoś z kolegów podpowie, bo nie mam pojęcia dlaczego nie mogę skomunikować Atmegi 8 z Atmegą 16. Atmega16 wysyła przez RS jednoznakowy string i druga Atmega go odbiera i realizuje sekwencję programu związaną z tym poleceniem. po wykonaniu ma odpowiedzieć tym samym znakiem, że polecenie zostało zrealizowane i tu jest problem. Pierwsza Atmega informacji...
Obydwa sposoby działają, dzięki wielkie :) Na jakiej zasadzie działa pierwszy sposób jest jasne, ale skąd się bierze "\x1a"? Jak myślisz jaki znak by wyszedł gdybyś wpisał coś takiego? "\x41" podpowiem - duża literka A jak widzisz jest to hexadecymalna reprezentacja znaku. Dzięki takiemu zapisowi można przesyłać w stringu znaki niedrukowalne - jak...
Dla 3 i więcej elementów lepszy jest regex, coś jak poniżej ("coś", bo kod pisany z pamięci, nie testowany) [syntax=vbscript]If msg.StartsWith("T") Then 'T,123,4567" Dim dane() As String dane = Regex.Split(",", str) EditText2.Text = dane(2) EditText4.Text = dane(3) End If[/syntax]
Za długie pętle lub za krótkie tablice zmiennych.
Po stronie kompa i VBA tak: Do DoEvents Loop Until MSComm5.Input <> CR TextBox1.Value = MSComm5.Input I do pola tekstowego wpisuje mi tylko pierwszą cyfrę 9 zamiast 999 :/ Gdybyś wysłał ciąg 123 to otrzymał byś w polu tekstowym nie pierwszą, a ostatnią liczbę, gdyż tylko ona jest tam wpisywana. Dlaczego? Bo nie dopisujesz do TextBoxa odebranych...
(at)rewolt90 Ten procesor ma tylko 1KB pamięci RAM. Tworzenie tak wielkich zmiennych automatycznych nie jest dobrym pomysłem.
Czyli obecnie masz zepsutą i błędną funkcję pobierającą rzekomo łańcuch, a w rzeczywistości jeden znak na ATmega oraz program na PC niedopasowany do poprzedniej, nieco kulawej ale jakoś działającej funkcji odbioru łańcucha. Program na PC nie może wysyłać nowych znaków dopóki nie odbierze całego łańcucha z ATmega, bo inaczej nadawane znaki nie będą odbierane...
Spróbuj tak: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include "HD44780.h" #include <stdlib.h> #include <string.h> #include <avr/pgmspace.h> int main(void) { char *LINE = PSTR("Jakiś tam sobie tekst"); char i=0; LCD_Initalize(); LCD_Clear(); LCD_GoTo(0,0); for(i=0;i<10;i++) { LCD_WriteData(pgm_read_byte(LINE+i));...
Dodaj log debugowy w setupie aby sprawdzic czy nie resetuje Ci się mikrokontroler. Używałbym char[] zamiast String i porównanie stringów strcmp(). Zamiast tej ściany if-else wrzuciłbym komendy do jakiejś tablicy structów. Gdzie struct zawierałby dwa pola on i off które wskazują na komendy. Indeks tablicy wskazywałby który elektromagnes właczasz/wyłączasz....
Sorki nie zauwazylem ze to progmem. Pointery w progmem nie istnieja w sposób tak rozumiany jak w normalnej pamieci - tak ze tak łatwo nie bedzie. [syntax=c]#define BUFFLEN 18 char __buff[BUFFLEN]; strncpy_P(__buff, (const char *)pgm_read_word(&(ptr_to_text[0])), BUFFLEN - 1); __buff[BUFFLEN -1 ] = 0;[/syntax] i dopiero mozesz wolac swoja funkcje cos...
Aby float działał w printf/sprintf , należy dodać w opcjach linkera dodatkową bibliotekę. Jak to zrobić, opisane jest pod koniec pierwszego posta w temacie http://www.elektroda.pl/rtvforum/topic10...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
dim Wart_adc as word dim V as single dim Wart_nap as string * 4 Wart_adc = Getadc(0) V = Wart_adc * 0.0048 '( 5/1024 * wart_adc) Wart_nap = Fusing(v , "#.&&") 4 bajty mniej :) P.S. Można nawet zrezygnować ze zmiennej Wart_nap :)
A transmitery fm są legalne czy nielegalne? Nadawanie w paśnmie, które jest licencjonowane jako takie jest niedozwolone (są niewielkie wykluczenia, ale jednak nie zaleca się). Niemniej jednak przekraczać prędkości czy przechodzić na czerwonym świetle też nie można -a się zradza ;-) Wszystko jest kwestią czasu, jeżeli Twoje urządzenie nadawcze* nie...
Wybieg przesuwający przecinek. Wynikiem będzie, na przykład, dla temperatury 22,4 st C 224 i przecinek należy sobie w stringu dorysować :D
String to znaki ASCII, więc ustawiasz sobie 2 znaki (2 wartości bajtu) spoza używanego obszaru ASCII i traktujesz je jako stop i start. Algorytm wygląda tak: 1. Czekam na bajt start (lub wykrywam jego nadejście w odpowiednim przerwaniu) 2. Otrzymałem bajt start - zaczynam odbiór 3. powtarzam w pętli (dopóki nie otrzymam bajta) stop: a) odbierz znak...
podany microboard pobiera zasilanie z programatora, więc przydałoby się coś ze stabilizatorem. Generalnie, zlutowanie układu na płytce prototypowej to jakaś godzina zabawy (max), więc jeśli chcesz w późniejszym czasie projektować układy z peryferiami to dobrze byłoby przejść ten etap chociaż raz. Schemat masz tu: http://kursc.forbot.pl/str001.html "atmega...
Hmm, czy to nie jest problem z adresacją? Taki prosty przykład znalazłem i makro pgm_read_byte używane gdy pobieramy string z "program space" [syntax=c]uint8_t string[12] PROGMEM = {"hello world!"}; int main(void) { UDR0 = pgm_read_byte(&string[10]); }[/syntax]
Spróbuj zadeklarować tablicę 7x3, czyli 7 elementów trzy znakowych (do stringów potrzebny jest jeszcze znak null). [syntax=c]const char text_w_rom11[7][3] PROGMEM = {{"Pn"},{"Wt"},{"Sr"},{"Cz"},{"Pt"},{"So...
Można to tak zrobić: [syntax=basic4gl]Dim Command As String * 4 , Bajty_command(5) As Byte At Command Overlay Printbin Bajty_command(1) ; Bajty_command(2) ; Bajty_command(3) ; Bajty_command(4) ; Bajty_command(5)[/syntax]
Jeszcze nie zrozumiałes ze s[5] = "start" nie jest prawidłowe? A dlaczego? Kolega powyzej napisał. if((buffer[i] = receiveByte()) == '\n') powoduje ze buffer nigdy nie bedzie zawierac "start" tylko start\n" czyli warunek w strcmp niegdy nie bedzie spełniony. Nie bedzie on spełniony tez z innego powodu - bo nie ma zera na koncu. Proponuje Ci nie uzywać...
Kawałek kodu masz mocno namieszany, nie masz funkcji odczytującej daną z uartu - pokaż większy fragment kodu. ogólnie: [syntax=c] #define BUF_SIZE 100 char c; chat buffer[BUF_SIZE];//koniecznie deklaracja rozmiaru ... while(1){ if((c=uart_getc())){ buffer[i++]=c; if(i==BUF_SIZE-1){//zabezpieczenie przed przepełnieniem bufora buffer[i]='\0'; i--; //sygnalizacja...
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);...
zumek jesli masz na mysli mnie to uzywam atmega32 i mam jeszcze 12kb wolnego miejsca wiec jest ok ale jak braknie to przejde na atmega 128 . dziekuje wszystkim za pomoc
Coś takiego znalazłem. Co prawda na Atiny ale można przerobić. [syntax=c]// // Talking to ultrasonic sensor HC-SR04 with an ATtiny84, and // sending distance data using serial communications. // // electronut.in // #include <avr/io.h> #include <string.h> #include <util/delay.h> #include <avr/interrupt.h> #define F_CPU 8000000...
Poszukuję funkcję zamieniającą liczbę 32bitową lub większą na string w asemblerze ATMEGI.
Witam, mam taki kod programu: [syntax=c] #include <avr/io.h> #include <avr/eeprom.h> #include <avr/pgmspace.h> #include <avr/interrupt.h> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <util/delay.h> volatile uint8_t t1=5; volatile uint8_t t2=5; volatile uint8_t t3=5; volatile uint8_t...
(at)dasej Jest jakiś techniczny argument za tym aby uprawiać tego typu archeologię?
jeżeli już uzyjesz procka a dwoma uart'ami to budujesz procedure która odbiera od twojego urządzenia string'i jeżeli wykryjesz odbior pierwszego string'u (czyli nagłówka) np if odebrany="wzór nagłówka jeden" then ustaw flagę że nastepny string to będą pierwsze dane wtedy : if flaga1=1 then pierwsze_dane=odebrana:reset flaga1 z drugim nagłówkiem i drugimi...
Nie to sprawdzałem. Wygląda to jakby procedury odczytu DS-a działały bo ta temperatura wyświetlana -0.1 o tym świadczy. DS jest zasilany z 3,3V i wyczytałem że przy takim zasilaniu rezystor podciągający linie DQ ma mieć około 2k i taki mam. Ale z rezystorem 4,7k też nie działało. Gdzie to wyczytałeś? Datasheet nic na ten temat nie mówi, poza "Can be...
Witam, Na dwóch ATmegach chciałem zrobić komunikację za pomocą UARTu. Miałoby to działać na zasadzie: jeśli ATmega odbierze string (hasło) np.: "1234" to wykona jakieś zadanie Kod nadajnika działa prawidłowo, potrafię wysłać string (kod w załączniku) Mam problem z kodem odbiornika, kod działa tak że reaguje tylko na znak, nie potrafi odebrać stringa....
Klawiature musisz potraktować jak jeden zwykły przycisk. Tyle że zwykły przycisk ma stan wysoki jeśli nienaciśnięty a ten przycisk zwraca 16 jeśli nienaciśnięty. Napisałem na szybko dwa przykłady. Jeden działa bezposrednio na wartosciach a drugi na stringu [syntax=vbnet] Dim Key As Byte Key_val As Byte , Lock As Byte , Licznik As Byte Dim Val_str As...
Znaki \r, \n, \" itd. są określone w specyfikacji języka c i jeśli taki znak występuje w stringu ujęty w cudzysłów to kompilator automatycznie zamienia go na daną wartość w kodzie szesnastkowym. Pokaż funkcję usartSendString razem z przerwaniem od Tx (jeśli wysyłasz używając przerwań). Może tam masz błąd. Może nie wysyłasz ostatniego znaku ze stringu...
najprościej : atmega1 atmega2 Rx----- ----Tx >< Tx----- ----Rx najprosciej program ? chyba bascom :P atmega1 : print "1" atmega 2 Dim Bufor As String * 24 Input Bufor Noecho If Ischarwaiting() = 1 Then '1 - odebrano znak,0 - pusty bufor ' tu odbierasz dane i robisz z nimi co chcesz End If
witam, napisałem dwa kody na obsługę i2c master(atmega644p): /* * main.c * * Created on: 16 lut 2018 * Author: Mirosław Kardaś * web: www.atnel.pl */ #include <avr/io.h> #include <avr/interrupt.h> #include <string.h> #include <util/delay.h> #include <avr/wdt.h> #include <avr/pgmspace.h> #include <avr/eeprom.h>...
"z tym serwem są problemy" - może uszkodzone, ja mam sześć sztuk TowerPro (może nie ten model) i wszystkie działają, tylko trzeba im sygnał podać. Co do sterowania: http://mil.ufl.edu/~achamber/servoPWMfaq... Jeszcze sugestia żeby serwo i układ zasilać osobno ze wspólną masą. Kod, zaznaczam że pisany dawno i NIE PAMIĘTAM CZY DZIAŁA!! (chyba lepsze...
Przerobiłem tak, żeby wysyłał testowo tylko jedną wartość ( losową ) co 8 sekund Dodano po 18 Dołożyłem Clear Serialin0 Com1_str = "" czyli [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0...
Witam, poniżej zamieszczam kod z Bascoma mojego sterownika BMS, w tej chwili kontroluje temperaturę, czas, Rs232, LCD 2x16. Obsługa z klawiatury lub pilota RC5, w obecnej chwili rozwiajm go o dostęp przez internet. zajmuje ok 8kb pamięci więc w A162 będziesz miał jeszcze drugie tyle pamięci. Ja kożystam z A32 Pozdrawiam. PS. daj znać jak zakończysz...
Najprosciej zmien typ a i b na typ string a obliczenia zrob tak: [syntax=c]c = stoi(a)+stoi(b)[/syntax]
Może ja się nie znam... ale podajesz stringa a udr jest 8bit... jak to ma nadać tego stringa w/g Ciebie?
Funkcja czekająca na odpowiedz powinna być odporna na brak jakiekolwiek odpowiedzi. W przypadku braku odpowiedzi z modemu Twój kod się "zapetli". Jak wygląda kod usr0_getc()? Nie widzę związku między ISR a tą funkcją. Zakładam również, ze flagi (flagGotLine i pozostałe) zadeklarowales jako volatile. Postaraj się zaimplementować pkt. 4 z mojej poprzedniej...
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...
A może elektrody z grafitowych pręcików z ołówka? Powinny wytrzymać długotrwały kontakt z glebą lepiej, niż stal kwasoodporna. Nawet są w sprzedaży same pręciki, do ołówków automatycznych - [url=https://allegro.pl/listing?string=g... Allegro 12 sztuk 2mm 12cm za 4zł, 24 0.5mm 6cm za 1zł (+wysyłka);...
Próbujesz przepchać ramki CAN 125Kbps poprzez Serial 115.2k, jako stringi generowane z sprintf'a. E: Rzeczywisty transfer jest znacznie mniejszy, ale wciąż każdy bajt jest przesyłany jako 5 + wcześniejsze stringi. Nie wiem czy biblioteka do MCP będzie się wyrabiać, ale podbijanie prędkości uarta w Arduino kończy się gdzieś przy 300-500kbps. Z sprintf'em...
Witam, No ale to właśnie robi instrukcja MID...... pozdrawiam
string powinien kończyć się znakiem NULL czyli o wartości zero. Nie używałem uarta, czy gdzieś w Twoim kodzie jest funkcja / lub ją dodałeś że po odebraniu tylko 5 znaków zostanie dopisany znak NULL? jeśli nie ma tam takiego czegoś to nic dziwnego. Funkcja UART_putstr będzie wypisywać wszystko co napotka aż znajdzie znak NULL (zero). najprostsze co...
A pytanie brzmi ? Pytasz w dziale uK, wiec pewnie z myślą o C C++ w zakresie "C z klasami" (tzn bez intensywnej alokacji np std::string) daje kod nie gorszy, a nawet oszczędność Na Atmega 8 zyskałem zmieniając charakter projektu 2B danych statycznych (czyli 5-10%) i ok 20B kodu z automatu - sądzę, że gdy w C++ można bardziej agresywnie określić prywatność...
Jest tak jak chcesz wyświetlić znak to albo podajesz kod ascii czyli np 0x65 to literka 'A' lub podajesz spod którego adresu wyświetlić mozaikę. Teraz tak jakbyś chciał wyświetlić powiedzmy 32stC to powienieneś zrobić tak wywoływać pokolei z autoinkrementacją 3 poźniej 2 później np twój stworzony znak stopnia np spod adresu 0x00 i na końcu C. Gdybyś...
K_o_n_r_a_d A wg Ciebie jak bym mógł zmienić swój kod? co dopisać?:) Byłbym straszliwie wdzięczny:) Mój kod: $regfile = "m128def.dat" $crystal = 16000000 $baud = 9600 $hwstack = 32 $swstack = 32 $framesize = 32 Dim A As Byte Dim Message As String * 16 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = Porta.6 ,...
Inna sprawa tych warrningów a inna to co ten kod tam oznacza bo jest poplątany. Po pierwsze musisz wiedzieć (można o tym poczytać w Helpie pod hasłem "Declare Sub"), że deklarując sub określasz też czy subowi będziesz przekazywał tylko kopie wartości danych zmiennych czy też przekażesz mu bezpośrednio te zmienne poprzez ich adresy. Dlatego są określenia...
Witam. Przedstawię dzisiaj kompletne rozwiązane jak szybko uruchomić za parę złotych własny terminal rs-owy w oparciu o konwerter USB RS232 na układzie scalonym PL-2303HX który można kupić bez problemu na Allegro. http://obrazki.elektroda.pl/9582806900_1... Przykład oparłem na programie putty z domyślnymi ustawieniami dla RS-a. Biblioteka...
(at)osctest1 spokojnie, człowiek się dopiero uczy. Na dodatek częściowo nie masz racji. W działających przykładach Chana f_mount jest nagminnie wywoływane z pustym stringiem. WTF? Zaglądamy do źródeł :-> Funkcja get_ldnumber otrzymuje wskaźnik na argument path f_mount, który już jest wskaźnikiem. A więc przytoczony kawałek get_ldnumber nie sprawdza...
Czy ktoś posiada może bibliotekę do sterowania wyświetlacza graficznego http://www.elektroda.pl/rtvforum/topic43... świetny wyświetlacz, autor zamieścił swój kod, są tam jak dobrze pamiętam także funkcje do wyświetlania stringów na wyświetlaczu
Dim napiecie As String * 5 Nie marnuj pamięci wystarczy 4 :)
Witam. Coś tam sobie tworzę. I chcę by działało na Atmega328 i Atmega644. Doczytałem się w książkach że mam zrobić coś takiego by była możliwa kompilacja warunkowa. [syntax=csharp]#define TOSTRING( a ) STRINGX ( a ) #define STRINGX( a ) #a // AVR Studio // konfiuracja opcji // - Custom Option // dodać linię // -DMCU=$(MCU)[/syntax] I jak robię coś takiego...
Może spróbuj wydłużyć stringa U_wy. Chyba że nie oczekujesz wartości powyżej 9.9.
sprawa banalnie prosta a o to przepis : Atmega8+LCD+MAX485 ,protokół sam możesz zrobić w bascom ,tą cześć raczej trudno nazwać protokołem ,raczej atmega zajmowała by sie odbiorem stringów które by latały po RS leprzy protokół wyglądał by tak : PC->AVR string+CRC PC<-AVR OK opisy znajdziesz na elce
Czytaj w helpie na temat: left, mid, right
[syntax=c]//temp = 243 == 24.3*C utoa(temp/10,buff,10); lcd_str(buff); //wyświetla '24' lcd_str("."); //wyświetla '.' utoa(temp%10,buff,10); lcd_str(buff); //wyświetla '3' lcd_str("*C"); //wyświetla '*C'[/syntax]
Przy odebraniu pierwszej z linii zaraz po otwarciu COM zdarza się ( nie zawsze ) że ATMEGA wyślę kilka "krzaków"...,np. *&$% i wtedy debugger wurzuca błąd konwersji... Przy tych ustawieniach ATMega-i (1MHz i 1200bps) masz jakie 0.2% błędów w wysyłanych informacjach. Może to nie jest dużo, ale z upływem czasu liczba błędów będzie rosła. Zmień ustawienia...
Nie do końca. To co zaproponowałeś to wyrzucenie PROGMEM, co spowoduje, że wskaźnik nie będzie we FLASH, ma być: const PROGMEM char *text; Nie bardzo rozumiem. Czy jeśli użyję PROGMEM przy deklarowaniu stałej (tak jak to zrobiłem): menuitem1 włącznie ze wskaźnikiem na text1 nie znajdzie się w pamięci programu? A sam wskaźnik jest chyba prawidłowo:...
Musisz najpierw przekonwertować zmienną na string/char. Wyświetla nie głupoty, tylko dane które jej przekazałeś (czyli jakąś liczbę w postaci "surowej", a nie znak tekstowy). Robi się to jakoś tak: #include <string.h> (...) char buffer[4]; // bufor na tekst, akurat mój ma długość 4 zn. unsigned long wartosc_typu_long = 1234; unsigned...
Jest tylko jedno ale ten program powyżej 512B programu jest płatny, a ja myślałem o czymś za free, poza tym ten bootloader można upchnąć w 238B (odczyt + zapis Flash), albo w 366B (odczyt i zapis FLASH, EEPROM + zapis LockBit'ów) lub wiele innych kombinacji (wybierane #define ... 0 (wyłączone) lub #define ... 0x.. (włączone). Chcący dopasować się do...
heh... a wystarczyło żebyś napisał: "co sie męczysz chłopi, zamień funkcją time() zmienne typu byte na string z godziną i porównaj" .... tablicę prawdy rozrysowałem juz wcześniej :P
Zmienna Var musi być zdefiniowana jako łańcuch. [syntax=basic4gl]Dim Str_ver As String * 100 Str_ver = Version(3) Print Str_ver [/syntax]
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...
dziękuję za odpowiedź - rozwiązałem to tak: On Urxc rs232 ... rs232: Input "komenda" ' sama komenda to String * 4 Return PC po wyslaniu komendy wysyla także CR na które czeka Atmega po funkcji Input. Tak samo dzieje sie po wyslaniu przez modul 1 danych, nastepnie PC wysyla zapytanie do modulu 2 i ten wysyla dane - Teraz wszystko śmiga bez problemu!...
A może Atmel Studio 7 jest zepsute i źle konwertuje c stringi ?? Zapomniałem dodać, że jak wgrywałem ( i kompilowałem) program do Atmega8 to korzystałem z Eclipse A jak wgrywałem (i kompilowałem) program do Atmega2560 to korzystałem z Atmel Studio 7 [youtube]https://www.youtube.com/watch?v...
kamyczek fajnie ale to nie było to... :) po kilkunastu chyba juz dniach doszedłem co to było wreszcie działa. Otóż brakowało w tym kodzie jak widzisz magicznej komendy Enable Interrupts z racji uzycia Config Serialin nastpną rzeczą jest to iż z racji użycia funkcji Input nasza Atmega czeka na sygnał CR a ja pisząc w Pythonie... import serial ser = serial.Serial(8,...
Pod poniższym linkiem jest biblioteka do obsługi SI4463 w wersji Arduino, jak i "czystej" AVR w C. https://github.com/zkemble/Si446x I jak jej użyć? Nie ma żadnej sensownej instrukcji do niej, a w przykładach jest tona kodu i nie wiadomo co robi. Inne biblioteki dla Arduino pozwalają wysyłać dane pisząc kilka linijek kodu. A co za problem dołączasz...
A dlaczego nie skorzystasz z ftoa? Nawet jeśli chcesz ją zmienić to warto zajrzeć do źródeł i je zmodyfikować do swoich potrzeb. A ogólnie to naprawdę potrzebujesz float? Jestem skłonny się założyć, że nie :)
bez gwiazdek char *napis[10] = {"HELLO"}; -> to jakies ufo - wskaznik na tablice ewentualnie tablica wskaznikow [; powinno byc: char napis[]="HELLO"; LCD_WyslijLitery(*napis); -> kolejne ufo (podstawy c), do funkcji powinienes przekazac adres pierwszego elementu, a tak sie sklada, ze nazwa tablicy jest wskaznikiem na pierwszy element, czyli: LCD_WyslijLitery(napis);...
próbuje ściągnąć locka z c118 za pomocą UBL-a posiadam kabelek do c115 pod hwk . W ultimie wyrałem by łączył sie przez ufsa po kliknieciu unlock wyskakuje Phone should be powered OFF Open serial interface UFS UFS description: UFS3 SarasSoft UFS EE SN: 88891 Atmega SN: 23891 Activation string response: 3E Please press and HOLD power ON button Error:...
skoro umiesz wysłać tekst do drugiej atmegi to jak możesz nie umieć wysłać sobie jakichś zmiennych - oj chyba przegrzało przy ubieraniu choinki więc podpowiem ;) .... można to zrobić na milion sposóbów oczywiście i wszystko zależy od tego jakie to są zmienne, ale np załóżmy że masz zmienną typu Byte. 1. dokonujesz konwersji tej zmiennej na postać String...
zumek, dzięki za odpowiedź ale nie rozumiem co masz dokładnie na myśli, .dseg .org 0x0060 txt: .db "string", 0xFF ja myślałem że to jest miejsce w którym zapisuje dane do segmentu .dseg Zajrzałem jeszcze raz do książki poświęconej megom (J.Baranowski AVR ATmega w praktyce) i nie widzę tam żeby jakoś inaczej było to deklarowane teraz to...
Jedna rzecz jeszcze nt strncpy - to dość "niebezpieczna" funkcja. Jezeli dlugośc stringu który kopiujesz bedzie wiekszy lub równy ilosci znakow do kopiowania to nie będzie zera na koncu !!! Przykład: http://obrazki.elektroda.pl/6631623100_1... Po wykonaniu strncpy (jak widac nie ma wartosci zero na koncu: http://obrazki.elektroda.pl/9385412600_1...
atmega string atmega bascom string atmega wysyłanie string
elektryczne domykanie drzwi seicento klema sprawność klimatyzatora
zamrazarka przekaznik przekaznik agregatu
Regulacja zderzaka w giętarce DRUMA HAP37700 Jak obniżyć napięcie AC z 17V do 6V?