mokrowski napisał(a):
No to albo decydujesz się na rozwiązanie w C++ albo w C! Mieszanie powoduje jedynie schizofrenię. Po co tam <stdio.h>, <stdlib.h> ?! Ja wiem że <windows.h> potrzebne bo otwierasz COM'a ale printf?!
Masz rację. No i niestety w związku z tym pojawia się większy problem
Używałem printf i myślałem, że przechowuję zmienną w tablicy o różnych indeksach, a tu jednak cały czas dana zapisywała mi się do tablicy pod indeksem '0'. Zauważyłem to dopiero gdy, użyłem: cout << ...<< endl; W jednym wierszu miałem 0, w drugim . , w trzecim 7 itp.
Zacznijmy od początku, czyli jak zapisać pojedynczą daną do tablicy, dzięki waszej pomocy już wiem jak zamienić ją z char na float, więc sobie z tym poradzę.
z mikrokontrolera wysyłam:
daną, czyli np. 0.734 +
usart_bufor[z] = 13; //znak powrotu karetki CR (Carrige Return)
usart_bufor[z+1] = 10; //znak nowej linii LF (Line Feed)
usart_bufor[z+2] = 0; //znak końca ciągu tekstu w tablicy
dzięki temu każdą daną mam w kolejnej linijce.
Kod po stronie komputera jest dobry ale w RS_buf przechowywana jest jedna zmienna
Kod który wyświetli mi dobry wynik, ale nic mi nie daje:
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Powyższy kod jest w pętli while(1){..., a więc czyta np 0.734 + Carrige Return + Line Feed+ znak końca ciągu tekstu w tablic
Ja chce dane zapisywać w tablicy i tu się pojawiają problemy:
1. Skąd wiem, że zaczynam odbierać kolejną liczbę, od początku(0.734), a nie od środka (734.0)?
2. Nie wiem co robi break.
3. Skąd wiem, że jest już koniec przechwytywanej danej?