Составители:
98
#include <iogp32.h>
#include <hc08def.h>
#include <float.h> //== для sprintf
#include <stdio.h> //== для sprintf
#define LCD_CTRL PTC //== PORTC
#define LCD_DATA PTC
#define LCD_RS 6 //== RS(~C/D) 6-й бит порта С
#define LCD_E 4 //== строб E (4-й бит порта С)
#define LED 5 //== 5-й бит порта D (светодиод)
#define SS 0 //== 0-й бит порта D (вывод #SS SlaveSelect используем как
ChipSelect)
#define SPCRF 7 //== 7-й бит байта SPSCR (флаг завершения приема SPI)
#define TOF 7 //== 7-й бит байта T1SC (флаг переполнения таймера1)
#define CH1F 7 //== 7-й бит байта T1SC1 (флаг совпадения кодов
таймера1)
#define Tc 400 //== модуль счета таймера1 (38400/Tc - д.б. целое число)
#define ACKK 2 //== бит подтверждения прерывания от клавиатуры
#define IMASKK 1 //== если бит IMASKK=0, прерывания от клавиатуры
разрешены
//== определяем обработчики прерываний
#pragma interrupt_handler TIM1_ovf
unsigned int d;//== вспомогательная глобальная переменная
char sec=0,min=0,m=0;
void TIM1_ovf(void){//== обработчик прерывания по переполнению таймера1
T1SC&=~(1<<TOF); //== программно обнуляем флаг переполнения TOF
таймера1
d=T1CH1;//== читаем текущую длительность импульса Tp ШИМ
d++;//== увеличиваем ее
if (d==201)d=1;//= восстанавливаем начальное значение длительности
импульса Tp
T1CH1=d;//== увеличим длительность имп-са ШИМ на выходе T1CH1 в
следующем периоде
if(++m==(38400/Tc)){m=0;//== заодно отмеряем секунды (прошла секунда)
if(++sec==60){sec=0;if(++min==60)min=0;}//== и минуты
}
}
#pragma interrupt_handler TIM1_cmp
void TIM1_cmp(void){//== обработчик прерывания по совпадению кодов
таймера1
T1SC1&=~(1<<CH1F);//== программно обнуляем флаг совпадения CH1F
таймера1
}
#pragma interrupt_handler ADC_int
char ad;//== глобальная переменная - для 8-ми битного кода АЦП
void ADC_int(void){//== обработчик прерывания по завершению АЦ
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »