Device = 16F628 'обозвать пик
'значение частоты МК
Xtal = 4
'начальные данные МК через плагин JGB - tools - fuse configurator
Config BOREN_ON, CP_OFF, DATA_CP_OFF, PWRTE_OFF, WDT_OFF, LVP_OFF, MCLRE_ON, INTRC_OSC_NOCLKOUT, CPD_OFF, WDTE_OFF
'основная программа---------------------------------------------------------------------------------------
CMCON = 7 'отключаю компараторы (пока х/з зачем, но без этого не работает)
INTCON.5 =1 'разрешить прерывания по таймеру
OPTION_REG = %00000111 ' Установить в регистре OPTION_REG коэффициент деления равный 1:256
Symbol LED = PORTA.0 ' Присвоить RA0 псевдоним LED
On Interrupt GoTo Preryvanie_po_timeru ' Инициализация (активация) программных прерываний
Dim i As Byte ' переменная для пауз
Dim Pausa As Word ' переменная для пауз
Dim Kol_vo As Byte 'переменная для определения кол-ва
Dim NomProg As Byte 'временная переменная
'Vybor_programmy:'------------------------------------------------------------------------------------------------
EData 5,6,7,8 ' Загрузить в память EEPROM данныe
NomProg = ERead 0 'чтение первой записи и помещение в переменную
If NomProg = 5 Then Pausa = 1000 : Kol_vo=30 ' вопрос на форуме
http://www.picbasic.ru/forum/5-1636-1#16410 GoTo migalka
Programma: ' Метка Fin==========================================================================================
GoTo Programma ' Выполнить переход к метке Fin==================================================================
Preryvanie_po_timeru: ' Метка начала выполнения подпрограммы вызванной программным прерыванием------------------
'Disable ' Запретить программные прерывания (на всякий случай, что бы другие прерывания не сорвали план)
'Toggle LED ' Переключить светодиод в противоположное состояние
'If INTCON.5 = 1 Then DelayMS Pausa 'проверка какое прерываение (по таймеру ли)
'INTCON.2 = 0 ' Сбросить флаг прерываний от таймера (что бы не было переполнения)
'Resume ' Вновь разрешить обработку возникающих прерываний
Return 'возврат в основную программу
migalka:
For i = 1 To Kol_vo
Toggle LED ' Переключить светодиод в противоположное состояние
DelayMS Pausa
'If NomProg > 1 Then DelayMS Pausa 'проверка какое прерываение (по таймеру ли)
Next
Return 'возврат в основную программу