CCS getc

G

GrandAlf

Guest
Ja chcąc wysłać numery 0-255 z * k * e il C51 do PIC16F628 zaprogramowany z CC * S C. Wydaje się, że mogę wysłać je printf% U, ale nie jestem pewny co do sposobu ich otrzymania.Gdybym skorzystał z żadnego z wbudowaną komend, takich jak getc, wydaje się, aby interpretować je jako znaki zamiast cyfr.Zakładając wysłać 13, to może być interpretowane jako CR przez getc zamiast 13., który jest o co mi potrzebne.Ja po prostu muszą otrzymać numer, ale nie to echo.Wszelkie porady appreciated.

 
Check out the CCS na forum:

http://www.ccsinfo.com/forum

Pojawi się wiele pomysłów tylko ich przeglądania forum ...

Faceci są prawie tak ładne jak członkowie tutaj

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Uśmiechać się" border="0" />z pozdrowieniami

 
Dzięki C-Man

Masz tam kilka przydatnych rzeczy.Inną kwestią, jeśli może, każdy wie, jak korzystać z portu szeregowego na Atmela 89S8252 z K * Eil C51.Wiem, mówi się o TXD w nagłówku pliku.Nie wydają się być w stanie znaleźć informacji o ustawienie prędkości transmisji itp. Xtal jest 12mhz i muszę seda z szybkością do 300.Ponadto sądzę, że przy użyciu printf% u, trzeba określić, jak to TXD?.Sill learnig C, any help appreciated.

PS, tylko muszą przekazać bez handshaking.

 
Just another thought.Jak tylko chcesz wyjście jednego 8-bitowe liczby w dowolnym czasie,
czy mogę po prostu korzystać oświadczenie SBUF = oxxx;.Chyba muszę ustawić czasu na szybkość, nie wiesz jak to działa.Jestem również za pomocą tiny RTOS, będzie to powodować seryjny probs?.Przepraszam!wiele pytań.

 
Jest to krótki fragment z jednego z moich C51 programy zainicjować komunikacji:

/ * RS232 na Init 19200 Baud (używając Timer1) * /
TH1 = 0xFD; / * 19200 baud@11.0592MHz * /
TL1 = 0xFD;
Scon = 0x50; / * 01011010b: UART Mode1, włączyć odbiornik * /
PCON = SMOD_; / * podwójne baudrate '/
TR1 = 1; / * uruchomić minutnik 1 * /
ES = 1; / * Serial Interrupt na * /

Jeśli używasz przerwać napędzany RS232 nie powinno być problemów z RTOS ale nie używane RTOS więc nie mogę powiedzieć na pewno ...

Hope this helps

 
To jest wielkie C-Man Jak wyliczają szybkość wartości?, Trzeba użyć 300 z 12mhz xtal (zegar systemowy 1Mhz).Przechodzenie do próby pobrania Atmel arkusz danych, aby sprawdzić, czy mogę znaleźć informacji, nie można oczekiwać, wykonamy całą pracę!.BTW, możesz użyć SBUF jak wyżej, wydaje się skompilować, ale nie możemy jeszcze w teście.

 
Może
Pan Keil może pomóc

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Uśmiechać się" border="0" />hxxp: / / www.keil.com/c51/baudrate.asp

I tak po prostu użyć, aby uzyskać SBUF / wprowadzone do / z 8051 USART ale musisz sprawdzić USART flagi jeśli są dozwolone, aby otrzymać / postawić nowy bajt do / z USART.

Obawiam się, tytuł tego tematu jest trochę off teraz ...

z pozdrowieniami

 
Staje się raczej off topic Myślę, że
i tak udało się znaleźć rozwiązanie.

void serial_init (void) (
Scon = 0x50; / / Tryb 1: 8-bitowy UART,
włącz odbiornik
TMOD | = 0x20; / / Minutnik 1 Tryb 2: 8-Bit reload
TH1 = 0x98; / / reload wartości 300 bodów
TR1 = 1; / / 1 uruchomić minutnik
ES = 1; / /
enable port szeregowy przerwania
)

Dziękujemy za radę

 

Welcome to EDABoard.com

Sponsor

Back
Top