#include "hal_defs.h"
#include "hal_cc8051.h"
#include "hal_int.h"
#include "hal_mcu.h"
#include "hal_board.h"
#include "hal_led.h"
#include "hal_rf.h"
#include "basic_rf.h"
#include "hal_uart.h"
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
uint16 count = 0; //設定定時器溢出次數
uint8 four_value[12];
uint8 buf[8];
uint8 IN1H,IN1L,IN2H,IN2L,IN3H,IN3L,IN4H,IN4L;
#define MAX_SEND_BUF_LEN 128
#define MAX_RECV_BUF_LEN 128
static uint8 pTxData[MAX_SEND_BUF_LEN]; //定義無線發送緩沖區的大小
static uint8 pRxData[MAX_RECV_BUF_LEN]; //定義無線接收緩沖區的大小
#define MAX_UART_SEND_BUF_LEN 128
#define MAX_UART_RECV_BUF_LEN 128
uint8 uTxData[MAX_UART_SEND_BUF_LEN]; //定義序列槽發送緩沖區的大小
uint8 uRxData[MAX_UART_RECV_BUF_LEN]; //定義序列槽接收緩沖區的大小
uint16 uTxlen = 0;
uint16 uRxlen = 0;
#define RF_CHANNEL 20 // 頻道 11~26
#define PAN_ID 0x1A5B //網絡id
#define MY_ADDR 0x2017 // 本機子產品位址
#define SEND_ADDR 0x2016 //發送位址
static basicRfCfg_t basicRfConfig;
// 無線RF初始化
void ConfigRf_Init(void)
{
basicRfConfig.panId = PAN_ID; //zigbee的ID号設定
basicRfConfig.channel = RF_CHANNEL; //zigbee的頻道設定
basicRfConfig.myAddr = MY_ADDR; //設定本機位址
basicRfConfig.ackRequest = TRUE; //應答信号
while(basicRfInit(&basicRfConfig) == FAILED); //檢測zigbee的參數是否配置成功
basicRfReceiveOn(); // 打開RF
}
void init_T1()
{
CLKCONCMD &=~0X40;
while(CLKCONSTA &=0X40);
CLKCONCMD &=0X47;
T1CTL|=0X05;
IEN1 |=0X02;
EA=1;
}
#pragma vector=T1_VECTOR
__interrupt void T1_ISR()
{
count++;
if(count==60)
{
get_4channel_ad(buf);
IN1L=buf[0];
IN1H=buf[1];
IN2L=buf[2];
IN2H=buf[3];
IN3L=buf[4];
IN3H=buf[5];
IN4L=buf[6];
IN4H=buf[7];
four_value[0]=0xfb;
four_value[1]=0xfa;
four_value[2]=0x0c;
four_value[3]=0x01;
four_value[4]=IN1L;
four_value[5]=IN1H;
four_value[6]=IN2L;
four_value[7]=IN2H;
four_value[8]=IN3L;
four_value[9]=IN3H;
four_value[10]=IN4L;
four_value[11]=IN4H;
halUartWrite(four_value,12);
basicRfSendPacket(SEND_ADDR,four_value, 12);
count=0;
}
T1IF=0;
}
void main(void)
{
halBoardInit(); //子產品相關資源的初始化
ConfigRf_Init(); //無線收發參數的配置初始化
init_T1();
while(1)
{
}
}