?? main._c
字號:
#include <iom8v.h>
#include <macros.h>
#include <eeprom.h>
#include "uart.h"
#include "define.h"
#include "led.h"
#include "uartnews.h"
#include "timetask.h"
/* 工程名稱: 呼死你
* 日期: 06-04-26
* 最后修改日期: 06-04-26
* 芯片類型: ATmega 8L
* 晶體: 7.3728MHZ
* 熔絲位: 8F9F
* 鎖定位: 00E8
* 看門狗: 安全極別2-常開 2.1秒溢出
* 版本: H-S-02
* 測試說明: 06-04-26測試
/**************************************************
*原型:void open(void)
*功能:判斷是初次上電,觸發開機
*參數:無
*返回:無
*日期:04-12-7
**************************************************/
//定義開機腳
#define OPENBIT 7
#define RESTKEY 3
void open(void)
{
SET_BIT(PORTD,OPENBIT);
delay_ms(2000);
CLR_BIT(PORTD,OPENBIT); //開平觸低
}
/**************************************************
*原型:void port_init(void)
*功能:端口初始化
*參數:無
*返回:無
**************************************************/
void port_init(void)
{
PORTC = 0X0F; //PC0-PC38870輸入,與按鍵共用,
DDRC = 0X20;
PORTB = 0X00;
DDRB = 0X3F; //PB0-PB2,PB5輸出控制,PB3話筒開關,PB4提示聲,PB5警聲
DDRD = 0XF6; //PD0,PD2-AUDIO,PD3輸入
PORTD = NULL;
RED_LED;//紅燈亮
}
/**************************************************
*原型:void watchdog_init(void)
*功能:dog初始化
*參數:無
*返回:無
**************************************************/
void watchdog_init(void)
{
WDR(); //清dog
WDTCR = ( (1<<WDCE) | (1<<WDE) );
WDTCR = 0x0F; //2.1秒復位
}
/**************************************************
*原型:void watchdog_task(void)
*功能:判斷是否dog復位,如不是觸發手機開機
*參數:無
*返回:無
**************************************************/
void watchdog_task(void)
{
if(!GET_BIT(MCUCSR , WDRF))//是否dog復位
open();
}
/**************************************************
*原型:void init_devices(void)
*功能:初始化
*參數:無
*返回:無
**************************************************/
void init_devices(void)
{
watchdog_init(); //設置WDT
port_init(); //I/O口定義
timer1_init();
InitUART( 23 ); //19.2 to 7.3728M
Time.Sec = timesec;//定時器賦初值
TIMSK = 0X04;//開T1定時
_SEI();
}
/*******************************************/
void main( void )
{
delay_ms(100);
init_devices(); //系統初始化
watchdog_task(); //判 斷是否WDT溢出
WorkCount = LINE;
while ( 1 )
{
WDR();
if(Time.Bz)
Time1Task();
if(DealTxUartBz) //處理發送緩沖區
DealTx();
if(DealRxUartBz) //處理串口接收緩沖區
DealRxBuf(UART_RXHEAD);
}
}
/* #endif */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -