📄 main.c
字号:
// This program shows how to work with ADC convertor
// Press Button 1 -> Send UART0 -> current temperature
// Press Button 2 -> Send UART0 -> current voltage on potentialometer
#include "AT91SAM7S64.h"
#include "stdio.h"
#include "usart.h"
#include "adc.h"
#include "system.h"
#include "string.h"
AT91PS_PIO m_pPio = AT91C_BASE_PIOA;
AT91PS_ADC m_pADC = AT91C_BASE_ADC;
AT91PS_RSTC m_pRSTC = AT91C_BASE_RSTC;
void Delay (unsigned long a) { while (--a!=0); } // 延时函数
unsigned char* CalcTemp(unsigned int temp);
unsigned char* CalcVolt(unsigned int volt);
unsigned char res[12];
int main() {
InitFrec(); // 系统初始化
InitADC();
InitUSART0(); // 串行口UART初始化
InitPeriphery(); // 外围初始化
while(1) { // 主循环
if(!((m_pPio->PIO_PDSR) & BIT19)) { // 若按键1压下,从UART0输出AD5的转换结果(外接热敏电阻)
ClearTerminal();
CalcTemp(GetValue_chanel5());
write_str_USART0(res);
Delay(900000);
}
if(!((m_pPio->PIO_PDSR) & BIT20)) {// 若按键2压下,从UART0输出AD4的转换结果(外接电位器)
ClearTerminal();
CalcVolt(GetValue_chanel4());
write_str_USART0(res);
Delay(900000);
}
}
}
unsigned char* CalcTemp(unsigned int temp) { // 热敏电阻温度转换
float T;
T = (float)temp/2.2 - 228;
sprintf((char *)res,"Temp %0.1f C",T);
return 0;
}
unsigned char* CalcVolt(unsigned int volt) { // 3.3V电位器分压
float V;
V = (float)volt * 3.3/1024;
sprintf((char *)res,"Volt %0.2f V",V);
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -