⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 guangming.c

📁 一些基于IRA环境开发的zigbee实例程序
💻 C
字号:
/*********************************************************************
//光敏电阻     接P0_0
*********************************************************************/


#include <hal.h>
#include "menu.h"
extern INT8U ScanKey(void);

void adcPhotoInit(void)
{
  BYTE volatile nousetemp;
  //IO_ADC_PORT0_PIN(0, 1);   //
  ADC_ENABLE_CHANNEL(0);    //p00 为光敏输入
  ADC_SINGLE_CONVERSION(ADC_REF_1_25_V|ADC_14_BIT|ADC_AIN0); //参考电压为avdd,14位精度,P00
  nousetemp = ADCH;                                     //清寄存器

}

/*********************************************************************
//用指针作形参,得到一个字符串,直接打印到屏幕即可
*********************************************************************/
void readPhoto(INT8U *tempbuf)
{
  INT16 temp,adcvalue = 0;
  INT8U *abc = tempbuf;
//  INT8U ii = 0;
  INT8U jj=50;
  float value;

  while(jj--)
  {
    adcPhotoInit();
    while (!ADC_SAMPLE_READY());                      //等待转换完成

    temp = halGetAdcValue();

    if(temp & 0x8000)
    {
                temp = ~temp + 1;
    }

    temp >>= 2;
        asm("nop");
        asm("nop");
    adcvalue += temp;
    if(jj != 50)adcvalue >>= 1;
  }

  value = adcvalue*1.25/8192;


 //   value = 1.23;
  /*
    tempbuf[ii++] = (INT8U)value+48;
    tempbuf[ii++] = '.';
    tempbuf[ii++] = (INT8U)(value*10)%10+48;
    tempbuf[ii++] = (INT8U)(value*100)%10+48;
    tempbuf[ii++] = (INT8U)(value*1000)%10+48;
    tempbuf[ii] = '\0';
  */

    *(abc++) = (INT8U)value+48;
    *(abc++) = '.';
    *(abc++) = (INT8U)(value*10)%10+48;
    *(abc++) = (INT8U)(value*100)%10+48;
    *(abc++) = (INT8U)(value*1000)%10+48;
    *(abc++) = '\0';

}

void Photosenser_main(void)
{
  INT8U tempbuf[6];
  TopDisp = 11;
  ClearScreen();
  Page0Display();
  Print(6,20,"ESC to Exit",1);
  while(TRUE)
  {
    readPhoto(tempbuf);
    Print(3,44,tempbuf,1);
    if(ScanKey() == K_CANCEL)
    {
      TopDisp = 12;
      return;
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -