logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega128][C][VB] Podział bufora danych

owenpe 02 Sty 2012 21:14 1168 4
REKLAMA
  • #1 10339820
    owenpe
    Poziom 17  
    Hej,
    Chciałem wysłać coś z atmegi i odebrać sobie to za pomocą aplikacji napisanej w VB. Znalazłem gdzieś taką funkcję do wysyłania danych:
    void wyslij(unsigned int i)
    {
    char buffer [5];
    if(i>=0x00 && i<0x0A)
    {
    uart_putc(0x30);
    uart_putc(0x30);
    uart_putc(0x30);
    }
    if(i>=0x0A && i<0x64)
    {
    uart_putc(0x30);
    uart_putc(0x30);
    }
    if(i>=0x64 && i<0x3E8)
    {
    uart_putc(0x30);
    }
    itoa (i,buffer,10);
    uart_puts(buffer);
    }

    Z tego co widzę to funkcja dopisuje wcześniej zera, tak aby zawsze wysyłać 4 cyfry. No i załóżmy, że ja chce ich wysłać 10. Tak od 1 do 10. Po odczytaniu bufora MSComm.Input w VB mam zatem coś takiego --> 0001000200030004..... itd. No i teraz się zastanawiam jak podzielić ten bufor na części, tak aby każdą z nich zapisać w innej komórce w Excelu? Ktoś ma jakieś pomysły i sugestie?
  • REKLAMA
  • #2 10341145
    Damian_Max
    Poziom 17  
    Możesz zapisać do pliku w formacie CSV następnie po prostu otworzyć EXCEL-em.

    Jeśli nie potrafisz w VB oddzielić osobnych danych, możesz kazać ATMedze wysyłać jakiś separator, np: ";" <=> "uart_putc(59);" <=> "uart_putc(0x3B);". Wystarczy umieścić to za ostatnim if-em przed linijką: "itoa(i,buffer,10);".
  • REKLAMA
  • #3 10341324
    owenpe
    Poziom 17  
    Wstawić separator w atmedze, to ja wiem jak;p nie wiem tylko jak to obrobić w vb.
  • REKLAMA
  • #4 10341542
    aaadamw
    Poziom 16  
    Damian_Max napisał:
    Możesz zapisać do pliku w formacie CSV następnie po prostu otworzyć EXCEL-em.

    ale po co się tak bawić? przecież Excell ma wbudowany visual basic i bardzo dobrze się sprawuje. Dane pobrane z MSComm.Input można umieścić bezpośrednio w komórkach. Tam powinno się juz w miarę łatwo podzielić dane.
  • #5 10345992
    owenpe
    Poziom 17  
    To całkiem ciekawe i przydatne co napisał aaadamw:) Ale poradziłem sobie już nieco inaczej i chyba też działa poprawnie;p Znalazłem gdzieś przykład wykorzystania funkcji Mid(), za jej pomocą dzielę sobie MSComm.Input na części, a z wrzuceniem do odpowiedniej komórki to już problemu nie ma.
REKLAMA