首页 > 其他分享 >适用于小空间mcu的移位查表(ntc查表输出温度)

适用于小空间mcu的移位查表(ntc查表输出温度)

时间:2023-08-25 17:00:32浏览次数:27  
标签:count 查表 temp value 0x40 100 mcu ntc ad

需要数组从小到大排列,电路是ntc上拉所以数组和ad值都用4095相减。

点击查看代码
void Temp()
{
    u8 temp,count;
    u16 temp_ad_v;

    temp_ad_v = 4095 - Board_GetAD_12bit(ADC_CH4);

   	temp = 0x00;
   	count = 0x40;   //0x20,MAX:63; 0x40,MAX:127; 0x80,MAX:191(移位超过位数异常)

   	/*
   	0x40|0x20=0x60=96
   	0x40|0x20|0x10=0x70=112
   	0x40|0x20|0x10|0x08|0x04|0x02|0x01=0x7F=127
   	*/
   	while(count)
   	{
   	   	if((count|temp) > 100)
   	   	{
   	   	   	count >>= 1;
   	   	   	continue;
   	   	}
   	   	if(temp_ad_v >= ad_temp_12bit[count|temp])  temp |= count;
   	   	if(temp > 100)  temp = 100;
   	   	count >>= 1;
   	}
   	TempResult = temp;
}

验证代码:
image

点击查看代码
#include <stdio.h>

unsigned int temp,count;
unsigned int Tab[200];

int main()
{
	unsigned int i,value;
	for(i=0;i<200;i++)
	{
		Tab[i] = i;
		printf("%d\r\n",Tab[i]);
	}
	

	value = 0;
	for(i=0;i<200;i++)
	{
		temp = 0x00;
		count = 0x40;
		while(count)
		{
			//printf("count|temp=%d\r\n",count|temp);
//			if((count|temp) > 100)
//			{
//				count >>= 1;
//				continue;
//			}
			if(value >= Tab[(count|temp)])	temp |= count;
//			if(temp > 100) temp = 100;
			count >>= 1;
		}
		printf("value=%d,temp=%d\r\n",value,temp);
		value++;
	}
	return 1;
}

标签:count,查表,temp,value,0x40,100,mcu,ntc,ad
From: https://www.cnblogs.com/aciomx/p/17657376.html

相关文章

  • AOP源码解析:AspectJExpressionPointcutAdvisor类
    先看看AspectJExpressionPointcutAdvisor的类图再了解一下切点(Pointcut)表达式,它指定触发advice的方法,可以精确到返回参数,参数类型,方法名1packageconcert;23publicinterfacePerformance{4voidperform();5}AspectJExpressionPointcutAdvisor源码,官......
  • 算法复杂度速查表
    https://zhuanlan.zhihu.com/p/158694568目录目录1.背景2.Big-OComplexityChart3.CommonDataStructureOperations4.ArraySortingAlgorithms1.背景最近看到一篇总结算法复杂度的博客,原作者Eric是为了面试方便而总结出了一份算法复杂度速查表,在此转载一下......
  • Mcuzone CM4_WiFi6 WLAN Pi扩展板,支持8265 AX200 AX210 MT7921 MT7961 RTL8822
    关键词:树莓派CM4  WLANPi  WLANPi英特尔8265AX200AX210MT7921MT7961RTL8822ScannerWiFi6Mcuzone野芯科技概述:WLANPi是一款用途很广泛的WiFi工具,可以测试网速,可以对WiFi信号进行频谱分析。WLANPi可以在很多硬件平台上运行,其中最典型的就是树莓派平台。......
  • 关于CH32V系列MCU FLASH地址的分配
    在MRS开发环境下,针对CH32V系列MCUFLASH分配,具体方法如下:比如开辟一段空间,存放数组等数据,首先在ld文件中修改FLASH分配,如下图: .consumer_flash1:{.=ALIGN(4);}AT>FLASH1.consumer_flash2:{.=ALIGN(4);}AT>FLASH2 ......
  • 关于CH32系列MCU SDI虚拟串口功能的使用
    该功能需要配合EVT对应例程以及对应WCH-LinkUtility工具使用,WCH-LinkUtility下载链接如下:https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html该功能目前仅支持以下型号MCU,如下图,且需要配合WCH-LinkE使用,具体可见WCH-Link使用说明5.2.11小节,WCH-Link使用说明下载链接如下:ht......
  • 神经网络速查表
    转自网络。......
  • AVR汇编(七):位操作和MCU控制指令
    AVR汇编(七):位操作和MCU控制指令位操作指令SBI/CBISBI指令用于设置I/O寄存器中的第b位,CBI指令用于清除I/O寄存器中的第b位。例如:SBIDDRB,5;PB5设为输出模式CBIPORTB,5;PB5输出低电平移位LSL指令用于逻辑左移,低位补0。LSR指令用于逻辑右移,高位......
  • 关于CH32系列MCU SDI虚拟串口功能的使用
    该功能需要配合EVT对应例程以及对应WCH-LinkUtility工具使用,WCH-LinkUtility下载链接如下:https://www.wch.cn/downloads/WCH-LinkUtility_ZIP.html该功能目前仅支持以下型号MCU,如下图,且需要配合WCH-LinkE使用,具体可见WCH-Link使用说明5.2.11小节,WCH-Link使用说明下载链接如下:ht......
  • 国产MCU-CW32F030开发学习- 移植rtthread-nano
    国产MCU-CW32F030开发学习--移植rtthread-nano硬件平台CW32_48F大学计划板CW32_IOT_EVA物联网开发评估套件RT-ThreadNanoRT-ThreadNano是一个极简版的硬实时内核,它是由C语言开发,采用面向对象的编程思维,具有良好的代码风格,是一款可裁剪的、抢占式实时多任务的RTOS。其内存资源......
  • 痞子衡嵌入式:AppCodeHub - 一站网罗恩智浦MCU应用程序
    近日,恩智浦官方隆重上线了应用程序代码中心(ApplicationCodeHub,简称ACH),这是恩智浦MCUXpresso软件生态的一个重要组成部分。痞子衡之所以要如此激动地告诉大家这个好消息,是因为ACH并不是又一个恩智浦官方githubprojectsite那么简单而已,且听痞子衡细细道来:ACHgithub......