Strona 1 z 1

Zamiana INT na wartość binarna i tworzenie ramki danych

: 26 kwie 2009 11:44
autor: dawkaxxl
Witam!!
Chcę wysyłać trzy wartości napięć do mikrokontrolera ATMEGA32 poprzez RS232. ATMEGA32 jest tak zaprogramowana, że odbiera trzy bajty danych gdzie pierwszy bajt to jest wartość pierwszego napięcia i idzie na port A, drugi bajt to druga wartość i idzie na port B i trzeci bajt to wartość trzeciego napięcia i jest wysyłana na port C.
Moje pytania brzmią:

1. Jak zamienić wartość dziesiętna typu INT na wartość binarną?
2. Jak zapisać te dane w postaci ramki 1 bajt|1 bajt|1 bajt (gdzie każdy bajt to inna wartośc napięcia zapisana na 8 bitach) i następnie wysłać do mikrokontrolera?

Proszę o pomoc

Re: Zamiana INT na wartość binarna i tworzenie ramki danyc

: 26 kwie 2009 14:00
autor: jogurt_owocowy
Jak zamienić wartość dziesiętna typu INT na wartość binarną?
[img]http://labview.pl/uploads/veir/number%2 ... 0array.png[/img]
Jak zapisać te dane w postaci ramki 1 bajt|1 bajt|1 bajt (...) i następnie wysłać do mikrokontrolera?
[img]http://labview.pl/uploads/veir/string%2 ... 0bytes.png[/img]

Zamiana INT na wartość binarna i tworzenie ramki danych

: 26 kwie 2009 17:58
autor: dawkaxxl
Dziekuje za pomoc o to wlaśnie mi chodziło. Zrobiłem według przykładu ale pojawia sie problem gdyż potrzebuje wykorzystywać liczby ze znakiem typu int. Jak mogę rozwiązać ten problem?

Re: Zamiana INT na wartość binarna i tworzenie ramki danyc

: 27 kwie 2009 10:05
autor: jogurt_owocowy
Nie kombinuj z zamienianiem liczb na tablice booleanów, bo to nie jest konieczne. Za dodawaniem i dzieleniem zrzutuj tylko otrzymaną liczbę na typ I8 (funkcja To Byte Integer) i otrzymane liczby podaj na wejście Build Array i dalej Byte Array To String...
Możesz sobie gdzieś na boku przekonwertować liczby do tablic booleanów, ale tylko w celach kontrolnych (choćby po to, żeby się upewnić czy kolejność bitów jest taka jakiej oczekuje Atmega) - nie używaj ich podczas wysyłania.
Pozdrawiam

Problem z wysyłaniem ramki danych przez RS232

: 03 cze 2009 19:28
autor: dawkaxxl
Cześć!
Podczas wysyłania ramki danych podglądam sobie ją co w niej idzie i zaciekawiły mnie te kwadraty, wiec postanowiłem zobaczyć ramkę na oscyloskopie i się okazało, że dla każdej wartości dla ktorej pojawia się taki kwadracik ramka wygląda tak samo, tylko dla wartości -5, -3, -2, -1 wychodzą prawidłowe wartości. Dodam, że zakres jest od -5 do 5. Co może być tego przyczyną?

Pozdrawiam

Zamiana INT na wartość binarna i tworzenie ramki danych

: 12 cze 2009 05:53
autor: dawkaxxl
Naprawde nikt nie wie o co może chodzić? :help:

Zamiana INT na wartość binarna i tworzenie ramki danych

: 12 cze 2009 09:47
autor: Cuspy1
Witam,

Dawkaxxl te kwadraty to symbol zastępczy znaków ASCII, których LabView nie wyświetla. Jeśli chcesz mieć podgląd na wartości to zastosuj indykator zamiast sondy i zmień wyświetlanie na Codes lub Hex display.
Błędne nastawy być może spowodowane są konwersją I8 na U8.
Unsigned jak sama nazwa wskazuje nie ma znaku +/- więc LabView wartość powiedzmy I8 = -5 zamieni na U8 = 251.
Skoro możesz nastawiać wartości ujemne za pomocą pojedynczych bajtów to musisz mieć dla nich jakiś przelicznik (może coś w instrukcji).
Mam nadzieję, że to pomoże.

Pozdrawiam