}
else
{
break;
}
}
DBG_Printf ( "通道 %c 采集到的实时电压是: \n\n" , ADC_Channel );
unmask_irq ( INT_GPT );
while ( 1 )
{
Serial_Input = serial_getc (DEBUG_Port);
if (Serial_Input == ASCII_ESC)
{
mask_irq (INT_GPT);
DBG_Printf ( "\n" );
break ;
中断处理流程:
图3.2 中断处理流程
中断处理程序:
void INT_GPT_Handle ( )
{
U16 temp = ADC_msk_Active | ADC_msk_Start |ADC_msk_VREFB \
& ~ADC_msk_ASE ;
float voltage;
U8 string[10];
GPT1_Mask;
switch (ADC_Channel)
{
case '1':
temp |= ADC_msk_AD0;
break;
case '2':
temp |= ADC_msk_AD1;
break;
case '3':
temp |= ADC_msk_AD2;
break;
case '4':
temp |= ADC_msk_AD3;
break;
default:
break;
}
WriteUCB(ADC_reg_Control, temp); //触发采样
voltage = ((float)ADCRead * ADC_Vref ) / ADC_MAX; //读取采样值并转换为电压值
sprintf (string,"%6.3fV\t",voltage);
serial_puts (DEBUG_Port, (U8*)string);
GPT1_ClearInt(temp);
GPT1_Unmask;
}
3.3 串口软件设计
3.3.1 串口设置程序
发送器Tx 从MCU 接收并行数据, 存入Tx FIFO, 然后在字符中加入起始位、奇偶校验位、停止位后按照设置的波特率串行(LSB first)发送出去。
将串口波特率设置为9600,转换为十751进制后分别将高低八位写入波特率寄存器。设置数据位比特数为8位,无奇偶校验位,停止位1,写入行控制寄存器LCR。当发送FIFO为空时(查看行状态寄存器LSR的相关状态位LSR[5]),把要发送的数据写入发送FIFO,传送到主机上。串口设置程序详见附录B 。
- 上一篇:基于白光LED的室内可见光通信系统发射端电路设计仿真
- 下一篇:电路板故障检测仪软件设计仿真+流程图
-
-
-
-
-
-
-
大众媒体对公共政策制定的影响
河岸冲刷和泥沙淤积的监测国内外研究现状
java+mysql车辆管理系统的设计+源代码
乳业同业并购式全产业链...
中考体育项目与体育教学合理结合的研究
酸性水汽提装置总汽提塔设计+CAD图纸
十二层带中心支撑钢结构...
当代大学生慈善意识研究+文献综述
杂拟谷盗体内共生菌沃尔...
电站锅炉暖风器设计任务书