📄 main._c
字号:
/********************************************************************
* 函数库说明:主函数 *
* 版本说明: 1.0 Bate *
* 作者: andylee *
* 日期: 2006年10月 *
* 平台: mega16 16M *
* 说明: CAN数据采集卡的系统监控函数 *
********************************************************************/
#include <iom16v.h>
#include <macros.h>
#include "libdef.h"
#include "delay.c"
#include "rprint.c"
#include "can.c"
#include "uart.c"
#include "isr.c"
//#define DEBUG_MAIN
/**********
* 常量定义*
**********/
unsigned int temp=0;
unsigned int value;
void main (void)
{
unsigned char main_temp_all; //数据暂变量
unsigned char main_temp_uart;
CLI();
//CAN相关初始化
sja_port_init();
sja_init();
//can_cmd_init();
isr_init(); //外部中断0初始化
uartInit(); //串口初始化
rprintfInit(uartSendByte); //发送函数初始化
watchdog_init();
SEI();
buffer_init(); //can发送的缓冲区初始化
#ifdef DEBUG_MAIN
uartSendByte(0xaa);
uartSendByte(0xaa);
#endif
DDRA|=(1<<DDA0)|(1<<DDA1);
PORTA&=~(1<<PA0);
PORTA&=~(1<<PA1);
WDR();
delay_nms(1000);
WDR();
PORTA|=(1<<PA0);
PORTA|=(1<<PA1);
while(1)
{
#ifdef DEBUG_MAIN
uartSendByte(0XAA);
uartSendByte(0XBB);
#endif
/*
delay_nms(500); //为什么加个延时在这才正常运行?
TransmitMessage[6]=0xb0;
uart_b0_flag=0;
sja_tx(TransmitMessage); //CAN节点数据发送
PORTA&=~(1<<PA0);
*/
WDR();
delay_nms(1000)
WDR();
delay_nms(1000);
WDR();
if(uart_b0_flag==1) //降压模拟
{
TransmitMessage[6]=0xb0;
uart_b0_flag=0;
sja_tx(TransmitMessage); //CAN节点数据发送
PORTA&=~(1<<PA0);
}
if(uart_b8_flag==1) //停止充电模拟
{
TransmitMessage[6]=0xb8;
uart_b8_flag=0;
sja_tx(TransmitMessage); //CAN节点数据发送
PORTA&=~(1<<PA1);
}
if(uart_normal_flag==1) //正常工作状态
{
TransmitMessage[6]=0x00;
uart_normal_flag=0;
sja_tx(TransmitMessage); //CAN节点数据发送
}
if(uart_alarm_flag==1) //报警状态
{
TransmitMessage[6]=0xa0;
uart_alarm_flag=0;
sja_tx(TransmitMessage); //CAN节点数据发送
}
WDR();
delay_nms(100);
WDR();
if(can_receive_flag==1) //有一次有效中断
{
can_receive_flag=0; //清标志
//给串口发数据,把收到的数据送向计算机,计算机去处理
for(main_temp_all=0;main_temp_all<=12;main_temp_all++)
{
main_temp_uart=RxBuffer[main_temp_all];
uartSendByte(main_temp_uart);
}
delay_nms(1000);
}
WDR();
delay_nms(1000); //方便看数据
WDR();
PORTA|=(1<<PA0);
PORTA|=(1<<PA1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -