mazur (03.08.2013 09:35, просмотров: 79) ответил mazur на Например, у меня таймерная служба. На асме я в файле таймерной службы создал макрос автоматического добавления порядкового номера таймера и автоматического добавления блока в ОЗУ. При компиляции создаются порядковые номера и очередь таймеров.
Если интересно, вот весь файл. Пример использования:
Set_Timer Par_Tim_Proc_Game_Init // Установка таймера. PROC_GAME_TIME.
Set_State _PROC_GAME_INIT_2 // Установка состояния.
Proc_Game_Init_1_End:
ret
Proc_Game_Init_2:
Proc_Timer Par_Tim_Proc_Game_Init // Обработчик таймера. Флаг SREG T=1 - время вышло.
brtc Proc_Game_Init_2_End
ldx LINE_BUF_1 // Позиция текста в буфере, на дисплее.
ldz Txt_Init_4*2 // Указатель на адрес текста в памяти программ.
rcall Out_Text // Вывод текста в буфер.
ldx LINE_BUF_2 // Позиция текста в буфере, на дисплее.
ldz Txt_Init_5*2 // Указатель на адрес текста в памяти программ.
rcall Out_Text // Вывод текста в буфер.
ldx LINE_BUF_3 // Позиция текста в буфере, на дисплее.
ldz Txt_Init_6*2 // Указатель на адрес текста в памяти программ.
rcall Out_Text // Вывод текста в буфер.
ldi r16, 2
std Y„_POINT_CAR, r16
Set_Timer Par_Tim_Proc_Game_1 // Установка таймера. PROC_GAME_TIME.
Set_Timer Par_Tim_Proc_Game_2
Set_State _PROC_GAME_RUN_1 // Установка состояния.
Proc_Game_Init_2_End:
ret
Par_Tim_Proc_Game_Init:
par_timer ST_PROC_GAME_1, 1<<ST_UNLOCK_FLG, 750
Par_Tim_Proc_Game_1:
par_timer ST_PROC_GAME_1, 1<<ST_UNLOCK_FLG, PROC_GAME_TIME
Par_Tim_Proc_Game_2:
par_timer ST_PROC_GAME_2, 1<<ST_UNLOCK_FLG, 1250
Par_Tim_Proc_Game_3:
par_timer ST_PROC_GAME_1, 1<<ST_UNLOCK_FLG, 25
//========================================================================