百度空间 | 百度首页 
 
查看文章
 
CC2430/CC2431源代码:CC2430的片内温度传感器
2008/06/18 16:51

//cd wxl

//说明:本实验在成都无线龙提供的CC2430模块中调试通过。http://www.c51rf.com
#include "ioCC2430.h"
#include "temp.h"
#include "stdio.h"
#define uint unsigned int

#define ConversionNum 20
//定义控制灯的端口cd wxl
#define led1 P1_0
#define led2 P1_1

void Delay(uint);
void initUARTtest(void);
void UartTX_Send_String(char *Data,int len);

char adcdata[]=" 0.0C ";

/****************************************************************
*函数功能 :延时       *
*入口参数 :定性延时       *
*返 回 值 :无        *
*说    明 :        *
****************************************************************/
void Delay(uint n)
{
uint i;
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
for(i=0;i<n;i++);
}

/****************************************************************
*函数功能 :初始化串口1       *
*入口参数 :无        *
*返 回 值 :无        *
*说    明 :57600-8-n-1       *cd wxl
****************************************************************/
void initUARTtest(void)
{
    CLKCON &= ~0x40;              //晶振
    while(!(SLEEP & 0x40));      //等待晶振稳定
    CLKCON &= ~0x47;             //TICHSPD128分频,CLKSPD不分频
    SLEEP |= 0x04;      //关闭不用的RC振荡器

    PERCFG = 0x00;     //位置1 P0口
    P0SEL = 0x3c;     //P0用作串口

    U0CSR |= 0x80;     //UART方式
    U0GCR |= 10;     //baud_e = 10;
    U0BAUD |= 216;     //波特率设为57600
    UTX0IF = 1;

    U0CSR |= 0X40;     //允许接收
    IEN0 |= 0x84;     //开总中断,接收中断
}

/****************************************************************
*函数功能 :串口发送字符串函数      cd wxl *
*入口参数 : data:数据       *
*     len :数据长度            *
*返 回 值 :无              *
*说    明 :        *
****************************************************************/
void UartTX_Send_String(char *Data,int len)
{
int j;
for(j=0;j<len;j++)
{
    U0DBUF = *Data++;
    while(UTX0IF == 0);
    UTX0IF = 0;
}
}

void UartTX_Send_word(char word)
{
    U0DBUF = word;
    while(UTX0IF == 0);
    UTX0IF = 0;
}

/****************************************************************
*函数功能 :主函数       cd wxl *
*入口参数 :无        *
*返 回 值 :无        *
*说    明 :无        *
****************************************************************/
void main(void)
{
char i;
        char temperature[10];
        INT16 avgTemp;
initUARTtest();                                 //初始化串口cd wxl
initTempSensor();                               //初始化ADC
        while(1)
        {
          avgTemp = 0;
          for(i = 0 ; i < 64 ; i++)
          {
            avgTemp += getTemperature();
            avgTemp >>= 1;
          }
            // avgTemp /= 64;cd wxl
             sprintf(temperature, (char *)"%dC", (INT8)avgTemp);
             UartTX_Send_String(temperature,4);
             UartTX_Send_word(0x0A);
             Delay(20000);
        }
}


类别:zigbee源代码 | 添加到搜藏 | 浏览() | 评论 (1)
 
最近读者:
 
网友评论:
1
2008/07/24 12:39 | 回复
版主你好,我使用 TI cc2430 做AD轉換並透過RS232 傳送到PC 超級終端機上顯示,使用P0_7 輸入 0V-2V 的電壓,希望在超級終端機上顯示0V-2V 的數值,雖然說有成功顯示數值出來,可是我變化電壓時,數值並未跟著改變,而且我顯示的數值只有 0.5V 0.1V 1.6V 這些電壓值,而這些電壓值是改 ADCCON2 得到的,不知道是我漏掉哪些步驟,目前我的ADCCON2=0xb7 ,參考電壓應為 AVDD_SOC PIN 請問這個應該不需要外接電壓吧,若需要外接電壓應怎麼接? 我只有 P0 P1 P2 VDD GND 這些外接端,另外請問需要設定 P0SEL P0DIR ADCCFG AD中斷 這些PORT嗎? 請版主指導一下,謝謝
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu