Witam.
Od dość długiego czasu zmagam się z projektem ramienia i aplikacji nim sterującej. Cały projekt jest już prawie ukończony, poza komunikacją usart, która przysparza mi olbrzymich problemów. Aplikację napisałem w visualu. W skrócie, po kliknięciu przycisku "wyślij" program wysyła po serial porcie 18 bajtów (6x[bajt kontrolny+wybór serwa+wartość wychylenia w zakresie 0-255]), każdy w odstępach co 100ms w przerwaniach od timera.
Np:
17 X 128
17 Y 255
17 D 10
....... itp.
Aplikacja została sprawdzona poprzez program, który emuluje mi na komputerze dwa porty Com i terminal do jednego z nich. Odebrane dane zgadzają się z wysyłanymi.
Posiadam dwa konwertery usb-RS232.
Pierwszy z nich ma z jednej strony wtyczkę usb, z drugiej DE-9.
Dane są wysyłane, mruga dioda podłączona do TX.
Drugi kupiony na znanym portalu aukcyjnym to "USB TO TLL, D-SUN".
Na wyjściu na TX ma ciągle 3,5V.
Po podłączeniu jednego konwertera z drugim i wysłaniu danych w terminalu pojawiają się bajty o innych wartościach niż te wysłane.
Sterownik ramienia jest na ATMEGA8A. Jest on taktowany zewnętrznym oscylatorem 16MHz. Do sprawdzania odebranych danych korzystam z wyświetlacza LCD 2x16(wyświetla prawidłowo tekst z pamięci uC).
Na całej długości wyświetlacza pojawiają się różne krzaczki i znaki ASCII.
Układ zbudowany na płytce stykowej. Reset podciągnięty do Vcc przez 4,7k. Kondensatory przy GND i Vcc mikrokontrolera. Fusebity ustawione prawidłowo.
Kawałek kodu wysyłania bajtów z visuala:
Bardzo prosiłbym o pomoc w rozwiązaniu tego problemu i wyrozumiałóść.
Dziękuję i pozdrawiam,
MacFis.
Od dość długiego czasu zmagam się z projektem ramienia i aplikacji nim sterującej. Cały projekt jest już prawie ukończony, poza komunikacją usart, która przysparza mi olbrzymich problemów. Aplikację napisałem w visualu. W skrócie, po kliknięciu przycisku "wyślij" program wysyła po serial porcie 18 bajtów (6x[bajt kontrolny+wybór serwa+wartość wychylenia w zakresie 0-255]), każdy w odstępach co 100ms w przerwaniach od timera.
Np:
17 X 128
17 Y 255
17 D 10
....... itp.
Aplikacja została sprawdzona poprzez program, który emuluje mi na komputerze dwa porty Com i terminal do jednego z nich. Odebrane dane zgadzają się z wysyłanymi.
Posiadam dwa konwertery usb-RS232.
Pierwszy z nich ma z jednej strony wtyczkę usb, z drugiej DE-9.
Dane są wysyłane, mruga dioda podłączona do TX.
Drugi kupiony na znanym portalu aukcyjnym to "USB TO TLL, D-SUN".
Na wyjściu na TX ma ciągle 3,5V.
Po podłączeniu jednego konwertera z drugim i wysłaniu danych w terminalu pojawiają się bajty o innych wartościach niż te wysłane.
Sterownik ramienia jest na ATMEGA8A. Jest on taktowany zewnętrznym oscylatorem 16MHz. Do sprawdzania odebranych danych korzystam z wyświetlacza LCD 2x16(wyświetla prawidłowo tekst z pamięci uC).
Kod: C / C++
Na całej długości wyświetlacza pojawiają się różne krzaczki i znaki ASCII.
Układ zbudowany na płytce stykowej. Reset podciągnięty do Vcc przez 4,7k. Kondensatory przy GND i Vcc mikrokontrolera. Fusebity ustawione prawidłowo.
Kawałek kodu wysyłania bajtów z visuala:
Kod: Objective-C
Bardzo prosiłbym o pomoc w rozwiązaniu tego problemu i wyrozumiałóść.
Dziękuję i pozdrawiam,
MacFis.