| Протокол Sony IRC | 
| 
				
			 | 
| 
| sany2 | Дата: Воскресенье, 04.08.2013, 08:14 | Сообщение # 1 |  | Группа: Проверенные Сообщений: 107 
 Статус: Offline | Добрый день.Потребовался тут пульт от Sony,нашёл на http://www.mcselec.com/?option=com_content&task=view&id=69&Itemid=57. Ну про сам протокол в нете много написано.А вод с кодом не пойму.Некоторые неизвестные операторы.FOR
 $regfile = "2313def.dat"
 $crystal = 8000000
 
 Dim Key As Byte
 Dim Ir_frame As Byte
 Dim Ir_bit As Byte
 Dim Ir_data As Word
 
 '40 kHz carrier reload value
 'Const T_oc1 = 49 'value for 4MHzcrystal
 Const T_oc1 = 99 'value for 8MHz crystal
 'Const T_oc1 = 124 'value for 10MHzcrystal
 
 Const Carrier_on = &B01000000 'IR 40kHzcarrier on
 Const Carrier_off = &B11000000 'IR 40kHz carrieroff
 
 Const Ir_repeat = 3 'number code frames (at least 2)
 
 Config Kbd = Portb 'keyboard connected at Port b
 Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Clear Timer = 1
 Timer1 = 0
 Compare1a = T_oc1 'OC1 = IR carrier = 40 kHz
 
 Tccr1a = Carrier_off
 
 '---[ main program loop]-------------------------------------------------------
 
 Do
 Key = Getkbd()
 Waitms 1 'small delay
 If Key <> 16 Then 'test if key is pressed else key=16
 Ir_data = Lookup(key , Ir_code) 'lookup pressed key IR Remote Code
 Ddrb.3 = 1 'set OC1 (Pb.3) = IR carrier output
 
 '---[ convert and transmit Sony 12bit IR code]---------------------------------
 
 For Ir_frame = 1 To Ir_repeat 'number of codeframes
 Tccr1a = Carrier_on
 Waitus 2400 'start = 2.4mS
 For Ir_bit = 11 Downto 0 '12 bit code, msbfirst
 Tccr1a = Carrier_off
 Waitus 600 '0.6mS delay
 Tccr1a = Carrier_on
 Waitus 600  '0.6mS delay
 If Ir_data.ir_bit = 1 Then Waitus 600 'if bit=1 then 1.2mS delay
 Next
 Tccr1a = Carrier_off
 Waitms 25 'frame gap 25mS delay
 Next
 End If
 Loop
 
 '-------------------------------------------------------------------------------
 End
 '-------------------------------------------------------------------------------
 
 Ir_code:
 Data &H1D1% , &H9D1% , &H4D1% , &H0% 'column 4 not used (3x4 keypad)
 Data &HCD1% , &H2D1% , &HB91% , &H0%
 Data &H0D1% , &H8D1% , &HAD1% , &H0%
 Data &HBD1% , &H7D1% , &HA91% , &H0%
 
 Объясните пожалуйста значение NEXT,FOR,Lookup,
 Downto(подозреваю, что опечатка-bascom ругается на эту строку)
 
 
 |  
 |  |  |  | 
| 
| exersizze | Дата: Воскресенье, 04.08.2013, 10:51 | Сообщение # 2 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | sany2, FOR это тот же цикл. Посмотри в справке баскома, там хорошие  примеры. К примеру вот
 
 Код Dim A As Byte , B1 As Byte , C As Integer 
 
 For A = 1 To 10 Step 2
 Print "This is A " ; A
 Next A
 For A = 1 To 10 означает что цикл FOR будет повторяться пока переменная А не достигнет значения 10. Step 2 означает что переменная А при каждой интерации будет увеличиватся на 2. Тоесть команда принт будет печатать в терминал сначала единицу, потом 3 (1+2), 5, 7, 9 и затем снова единицу (переменная достигла максимального значения и снова сбросилась в 1).
 
 Ну а дальше сопоставляй пример с рабочим кодом.
 
 LOOKUP тоже хорошо описан в хэлпе, эта команда вытаскивает нужные данные из массива данных.
 
 
 |  
 |  |  |  | 
| 
| sany2 | Дата: Воскресенье, 04.08.2013, 12:28 | Сообщение # 3 |  | Группа: Проверенные Сообщений: 107 
 Статус: Offline | exersizze ,Спасибо.Когда на пальцах объяснят-намного понятней   
 
 |  
 |  |  |  | 
| 
| sany2 | Дата: Воскресенье, 04.08.2013, 16:00 | Сообщение # 4 |  | Группа: Проверенные Сообщений: 107 
 Статус: Offline | Насчёт Downto не соображу-вроде есть в словаре ,но мой почему-то его не понимает.Попробую другую версию скачать 
 1.11.9.8 тоже не понимает-или надо где в настройках ковырять?
 
 
 
 
 Сообщение отредактировал sany2 - Воскресенье, 04.08.2013, 16:40 |  
 |  |  |  | 
| 
| exersizze | Дата: Понедельник, 05.08.2013, 12:45 | Сообщение # 5 |  |   Группа: Администраторы Сообщений: 720 
 Статус: Offline | а попробуй заменить строку 
 Код For Ir_bit = 11 Downto 0на
 
 Код For Ir_bit = 11 To 0 Step -1думаю что это одно и тоже
 
 
 |  
 |  |  |  | 
| 
| sany2 | Дата: Понедельник, 05.08.2013, 16:07 | Сообщение # 6 |  | Группа: Проверенные Сообщений: 107 
 Статус: Offline | Обязательно попробую-отпишусь.Сегодня маленько некогда. 
 
 |  
 |  |  |  | 
| 
| sany2 | Дата: Вторник, 06.08.2013, 17:55 | Сообщение # 7 |  | Группа: Проверенные Сообщений: 107 
 Статус: Offline | exersizze,Вроде всё работает.Спасибо за помощь. 
 
 |  
 |  |  |  |