реклама на сайте
подробности

 
 
> ATMega 8535 стыковка с ПК через RS-232
dim_OK
сообщение Feb 24 2007, 10:14
Сообщение #1





Группа: Новичок
Сообщений: 11
Регистрация: 24-02-07
Из: Воронеж
Пользователь №: 25 622



Привет всем
А кто писал программу стыковки AVR с ПК, причём для AVR на асм-ре, а для ПК на Делфи?
В книжке читаю в примере "отправляем в порт строку 5А 21 00 00 00 00 7А
дальше коментируется 5А - стартовый байт"
не понимаю, вот этот стартовый байт всегда должен быть 5А или нет, может это конкретный пример (для конкретной проги)?
Вот часть кода для проги на Delphi:

begin
if not VaComm1.Active then VaComm1.Open;
sCMD:='5A'+Format(' %2.x',[cmRS]);
sum:=$5A+$21;
sCMD:=sCMD+' 00 00';
for J:=1 to 128 do begin
sum:= sum+I;
sCMD:= sCMD+Format(' %.2x',[J]);
end;
sCMD:= sCMD+A+Format(' %.2x',[12]);
sum:= sum+$12;
sCMD:=sCMD+Format(' %.2x',[Hi(sum)])+Format(' %.2x',[Lo(sum)]);
Edit1.Text :=sCMD;
VaComm1.WriteText(sCMD);
end;
end.


Строковая переменная sCMD и есть то что мы передаём на контророллер. Она формируется из стартового байта(5А) и байта команды(cmRS=$21). Непонятно зачем добавляются вот это '00 00'. То что цикл забивает 128 байт цифрами вроде понял, но итересует как вместо цифр забить конкретные данные. Да и вообще как изменить длину слова данных.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
UniBomb
сообщение Feb 25 2007, 22:40
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416



dim_OK

Ну тут уже надо фтыкать программную часть мк. Смотреть как он воспринимает эти семь байт. Следует помнить, что у МК приёмный (а равно как и отправной, что по сути одно и тоже) размером с один байт.
Go to the top of the page
 
+Quote Post
dim_OK
сообщение Feb 26 2007, 12:51
Сообщение #3





Группа: Новичок
Сообщений: 11
Регистрация: 24-02-07
Из: Воронеж
Пользователь №: 25 622



Вот кусочек для МК:

**********************
LOOP:
clr r18;

rcall RECIVE

cbi UCSRB,pb4 ;Disable Receiver and Transmitter

out porta,r18 ;это
sbi portb,pb0 ;семисеоментник
sbi portb,pb1 ;

rjmp LOOP

RECIVE:
ldi r16,0x12
out UBRRH, r16
ldi r16, (1<<URSEL)|(0<<USBS)|(2<<UCSZ0) ;Set frame format: 7data, 1stop bit
out UCSRC,r16
ldi r16, (1<<RXEN) ;Enable Receiver and Transmitter
out UCSRB,r16
rec: sbis UCSRA,RXC ;ждать загрузки данных в буфер приёмника
rjmp rec
in r18,UDR
ret
**************
Раз протокола нет, то вроде бы больше ничего не нужно, но наверное я чего-то не понимаю.
Помогите плиз!!!
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 07:29
Рейтинг@Mail.ru


Страница сгенерированна за 0.01338 секунд с 7
ELECTRONIX ©2004-2016