📄 main.c
字号:
#include "main.h"
unsigned char Mark[] PROGMEM= { " First Sun SRE-300TL-34 Ver:1.0 (20080303) Edit:Houdeping " };
unsigned char Mark2[] PROGMEM= { " ATMEG32/Int 8Mhz./BrownOut 4.0V/WatchDog " };
void System_init(void);
int main()
{
System_init(); //系统初始化
wdt_enable(WDTO_2S); // 2s
sei();
test();
while(1)
{
if(bit_is_set( TIFR, OCF0)) // 1ms
{
SetBit( TIFR, OCF0);
ExtTelCheck(); //分机摘机检测
OutsideTelRingCheck(); //外线振铃检测
TelOperateLoop();
fnOSCRingFK(); //振铃声,5秒断续,即1秒送、4秒断
fnMusic(); //产生音乐
if(++timeover_200ms>=200) //0.2秒 计时
{
timeover_200ms=0;
PORTC^=Create10HZ; //产生10HZ频繁
}
wdt_reset();
}
}
return (0);
}
void System_init(void) //系统初始化
{
_delay_ms(1000);
DDRA=0b00000000; //PA7:D7 PA6:D6 PA5:D5 PA4:D4 PA3:D3 PA2:D2 PA1:D1 PA0:D0
PORTA=0b11111111;
DDRB=0b00010010; //PB4:HoldDoor PB3:TestFlag PB2:CheckDoorRing PB1:CallCenter PB0:CheckCenterHold
PORTB=0b11111111;
DDRC=0b01100111; //PC7: PC6:Line2_LedCtr PC5:Line1_LedCtr PC4:DTMF2_DV
PORTC=0b00011000; //PC3:DTMF1_DV PC2: EnDTMFCreate PC1:P17 PC0:Create10HZ
DDRD=0b11111111; //PD7:Osc450HZ PD6:Storbe8816 PD5:Music PD4: Reset8816
PORTD=0b10111000; //PD3:CheckHold_Ring PD2:OSCRingFK PD1:Playvoice PD0:Recordvoice
// Time 0 Setting
TCCR0 = _BV(CS01)|_BV(CS00)|_BV(WGM01); //clkT2S/64 ( 来自预分频器)
OCR0 = 125; // 64 * N = 1ms
TCNT0 =0;
// Time 1 PWM产生音乐
TCCR1A = _BV(COM1A0); //比较匹配时OC1A电平取反,10 bit PWM, using COM0A,PWM相位修正
TCCR1B = _BV(CS10)|_BV(WGM12); //clkT2S/1 ( 来自预分频器)
//OCR1A = 4000000/450; // 64 * N = 80000000 1ms
TCNT1 =0;
// Time 2 ,PWM产生450HZ频率
TCCR2 = _BV(COM20)|_BV(CS22)|_BV(CS20)|_BV(WGM21); //clkT2S/8 ( 来自预分频器)
OCR2 =75; // 8 * N = 100us
TCNT2 =0;
//8816 初始状态
SetBit(PORTD,Reset8816); //所有数据都复原为逻辑“0”,使所有交叉点开关断开
_delay_ms(1000);
ClrBit(PORTD,Reset8816);
Writesoundway(Connect_Busy,Busy_Voicd,ON);
Writesoundway(SigCallID,0,ON); //
Writesoundway(SigCallID,1,ON); //
Writesoundway(SigCallID,2,ON); //
Writesoundway(SigCallID,3,ON); //
Writesoundway(SigCallID,4,ON); //
Writesoundway(SigCallID,5,ON); //
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -