?? main._c
字號:
/*
*2008,浙江工業(yè)大學(xué)信息與控制研究所
*All rights reserved
*
*文件名稱:ECG_NRF905.C
*摘 要:主函數(shù),實現(xiàn)心電數(shù)據(jù)的采集,發(fā)送
*
*當(dāng)前版本:1.0
*作 者:董齊芬
*完成日期:2008.5.17
*
*取代版本:
*原 作 者:
*完成日期:
*/
//#include "time.h"
//#include "mcp42010.h"
//#include "adc.h"
#include "nrf.h"
#include "common.h"
#include "spi.h"
#include "int.h"
unsigned char receive_addr[4]={0x56,0x31,0x56,0x31}; //4字節(jié)的接收地址a513d36a
unsigned char send_addr[4]={0x13,0x65,0x13,0x65}; //4字節(jié)的發(fā)送地址
unsigned char ECG_data[ECG_LENGTH]; //存放心電數(shù)據(jù)1024個
unsigned char *w_ptr=ECG_data; //將采集到的數(shù)據(jù)存放到存儲區(qū)的地址指針
unsigned char *r_ptr=ECG_data; //無線發(fā)送時數(shù)據(jù)存儲區(qū)的地址指針
unsigned char nrf_data[PACKAGE_LENGTH]; //正要發(fā)送的無線數(shù)據(jù)包 0x5f+心電數(shù)據(jù)+序列號
unsigned char receive_data[PACKAGE_LENGTH]; //接收到的無線數(shù)據(jù)包 0x5f+心電數(shù)據(jù)+序列號
unsigned char second=0x80; //秒的次序,8秒一次循環(huán)
unsigned char led_flag=0;
void mcu_init(void); //聲明處理器初始化函數(shù)
#pragma interrupt_handler Int_DR: 7
void Int_DR(void) //外部中斷INT5,中斷向量號為7,接收數(shù)無線據(jù)
{
LED_YELLOW;
RxPacket(receive_data);
//////////////////////還應(yīng)改變一下緩沖區(qū)的指針(接收多個包時)
}
/*
*函數(shù)功能:主函數(shù)
*輸入?yún)?shù):無
*輸出參數(shù):無
*返 回 值:無
*/
void main(void)
{
unsigned char i,j,s;
s=0;
CLI(); //disable all interrupts
mcu_init(); //處理器各模塊初始化
for (i=0;i<PACKAGE_LENGTH-1;i++)
{
nrf_data[i]=i; //測試數(shù)據(jù),每個數(shù)據(jù)包的前PACKAGE_LENGTH-1個數(shù)據(jù)都一致,最后一個字節(jié)為數(shù)據(jù)包的序列號
}
while (1)
{
nrf_data[PACKAGE_LENGTH-1]=s; //代表數(shù)據(jù)包的序列號
set_Tmode(); //把905設(shè)置成發(fā)送模式
EIMSK&=~BIT(5); //發(fā)送時將屏蔽外部中斷5
LED_RED;
set_Taddr(send_addr);
TxPacket(nrf_data);
if (led_flag)
{
LED_RED;
led_flag=0;
}
else
{
LED_YELLOW;
led_flag=1;
}
EIFR|=0XFF; //清除外部中斷的標(biāo)志位
set_Rmode(); //nRF設(shè)置成接收模式 必須有下一句的開啟外部中斷5和上一句的清除外部中斷的標(biāo)志位
EIMSK|=BIT(5); //開啟外部中斷5,以監(jiān)測是無線模塊是否收到數(shù)據(jù)
Delays(); //延時一段時間繼續(xù)發(fā)送
}
}
/*
*函數(shù)功能:處理器初始化函數(shù),將要用到的各個模塊的初始化函數(shù)放在一起
*輸入?yún)?shù):無
*輸出參數(shù):無
*返 回 值:無
*/
void mcu_init(void)
{
initled(); //led燈初始化
initbuzzer(); //蜂鳴器初始化
init_spi();
init_905(); //nrf905上電初始化
set_confword(receive_addr);//設(shè)置905配置寄存器
send_conf(); //配置寄存器內(nèi)容
init_INT(); //DR引腳中斷初始化
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -