roboforum.ru

Технический форум по робототехнике.

RC5 BASCOM-AVR без таймеров - кто напишет ?

RC5 BASCOM-AVR без таймеров - кто напишет ?

EdGull » 25 янв 2008, 23:57

Есть желающие? Или одни теоретики остались?

Добавлено спустя 3 часа 39 минут 4 секунды:
Передатчик генерирует 14-битное слово данных, формат которого следующий:
- 2 стартовых бита.
- 1 управляющий бит.
- 5 бит адреса системы.
- 6 бит команды.
Изображение
Изображение

я так пониаю должно быть что-то типа этого...
Код: Выделить всёРазвернуть
'Формат RC5
'11xs4a3a2a1a0c5c4c3c2c1c0
'a0-a4 адрес
'c0-c5 команда
' допустим temp_rc5=11100000000000

' логическая единица
'   Led_ir1 = 0 : Waitus 889
'   Led_ir1 = 1 : Waitus 889
' логический ноль
'   Led_ir1 = 1 : Waitus 889
'   Led_ir1 = 0 : Waitus 889
'

Отправка_rc5:
   For A = 1 To 14
      Mid(temp_rc5 , A) = D
      If D = 1 Then
         Led_ir1 = 0 : Waitus 889
         Led_ir1 = 1 : Waitus 889
      Elseif D = 0 Then
         Led_ir1 = 1 : Waitus 889
         Led_ir1 = 0 : Waitus 889
      End If
   Next
   Led_ir1 = 0
Return

Re: Кто напишет код RC5 под васик без таймеров?

Myp » 26 янв 2008, 12:54

да
это бы сработало бы
если бы не одно но

это ты просто передаёшь 1 и нолики
а нам нуно ещё промодулировать это 36кГц
тсоп он же просто 1 и 0 не принимает
ему обязательно промодулировать единичку 36кГцами

тоесть низкий уровень отправляем как надо
тоесть ничо не делаем
а высокий с хитринкой, в течении 889us моргаем ножкой с частотой 36 кГц
а вот скока импульсов частотой 36 кГц проходит за 889us это надо калькулятором посчитать

ШИМов у нас и так мало, иначе мы бы просто включили шим 36 кГц и шимом бы отправляли
по этому делаем както так....

Код: Выделить всёРазвернуть
' логическая единица
   Led_ir1 = 0 : Waitus 889
   For i = 1 to 32 (количество 36кГц импульсов которые должны быть за 889us)
      Led_ir1 = 1 : Waitus 14
      Led_ir1 = 0 : Waitus 14
   Next
' логический ноль
   For i = 1 to 32 (количество 36кГц импульсов которые должны быть за 889us)
      Led_ir1 = 1 : Waitus 14
      Led_ir1 = 0 : Waitus 14
   Next
   Led_ir1 = 0 : Waitus 889

Re: Кто напишет код RC5 под васик без таймеров?

EdGull » 27 янв 2008, 22:27

ну раз никому это не надо...
вот сам взялся по тихоньку писать...
пока только в режиме отладки
этот код в таком виде проверен. работает.
Код: Выделить всёРазвернуть
$prog &HFF , &HC4 , &HD9 , &H00                             '$PROG &HFF,&HD4,&HD9,&H00' generated. Take care that the chip supports all fuse bytes. generated. Take care that the chip supports all fuse bytes.
$regfile = "m32def.dat"                                     ' specify the used micro
$crystal = 8000000                                          ' used crystal frequency
$baud = 2400

Wait 3
Dim S As String * 14 , Z As String * 14
S = "11100000000000"
Dim A As Byte

Do
   For A = 1 To 14
      Z = Mid(s , A , 1 )
      If Z = "1" Then
         Print "one"
      Elseif Z = "0" Then
         Print "zero"
      End If
      Wait 1
   Next
Loop


Re: Кто напишет код RC5 под васик без таймеров?

Myp » 27 янв 2008, 22:47

угу
в симуляторе кажет то что надо...

Re: Кто напишет код RC5 под васик без таймеров?

EdGull » 28 янв 2008, 05:23

в симуляторе...
у меня этот код в железе уже кажет то что надо... :D

Re: Кто напишет код RC5 под васик без таймеров?

Myp » 13 фев 2008, 17:35

Выложи последний код который у тя работал в железе
я приду поэксперементирую


Rambler\'s Top100 Mail.ru counter