AVR单片机系统开发经典实例部分源程序
源代码在线查看: main._c
/***************************************
*2008,浙江工业大学信息与控制研究所
*All rights reserved
*
*文件名称:main.c
*摘 要:无线接收发送测试程序(发送端)
*
*当前版本:1.0
*作 者:董齐芬
*完成日期:2008.8.20
****************************************/
#include "cc2420.h"
#include "spi.h"
unsigned char Data_TXFIFO[TX_length]; //要写入TXFIFO中的数据,包括帧长度,MAC头,MAC有效负载等部分
unsigned char serial_num=0; //数据序号
void main(void)
{
unsigned char i;
unsigned int j;
initled();
init_spi();
LED_YELLOW;
PORTB |=(1 PORTB |=1 PORTE |=1
Data_TXFIFO[0]=TX_length+1; //第一字节为帧长度,不包括长度域本身的字节,但包含帧校验序列2字节
//帧控制域,无安全,确认要求,数据帧,包含16位的目标地址,源地址,目标PAN标识符,源PAN标识符
Data_TXFIFO[1]=0x88; //高字节
Data_TXFIFO[2]=0x01; //低字节
//目的PAN标识符
Data_TXFIFO[4]=0x23;
Data_TXFIFO[5]=0x45;
//目的地址
Data_TXFIFO[6]=0x15;
Data_TXFIFO[7]=0x73;
//源PAN标识符
Data_TXFIFO[8]=0x86;
Data_TXFIFO[9]=0x49;
//源地址
Data_TXFIFO[10]=0x59;
Data_TXFIFO[11]=0x04;
//有效负载
for (i=12;i {
Data_TXFIFO[i]=i-12;
}
Set_Configure(); //初始化设置配置字
PwDown_Idle(); //从掉电模式转换到空闲模式
j=0;
while(1)
{
j++;
if (j==2048)
{
break;
}
AllStates_Idle();
//序列号
Data_TXFIFO[3]=serial_num;
serial_num++;
if(serial_num==250)
{
serial_num=0;
}
Write_TXFIFO(TX_length,Data_TXFIFO); //将数据写入到TXFIFO中
Idle_Tx(); //启动发送
Delay10ms();
Delay10ms();
}
LED_RED;
while(1){;}
}