各位专家:
你好。 当我的客户端想要 修改无线电唤醒示例时、尝试在这里寻求帮助、以便它包含引脚中断示例(ADC 和数字引脚)和 ADC 单次转换示例、下面是代码。
我已经建议他 看一下"pinInterrupt"示例及其工作原理、并开始使用一个简单的函数来确认其运行情况、然后再执行其预期的应用;但拒绝了。
您能就此提供更多建议吗?
非常感谢。
此致、
阿尔基·A.
PIN_Config buttonPinTable[]={Board_DIO22 | PIN_INPUT_EN | PIN_PULLUP | PIN_IRQ_BOTHEDGES、Board_ADC0 | PIN_INPUT_EN | PIN_PULLUP | PIN_BOTHEDGES、Board_DIO21 | PIN_INPULLUP | PIN_ADC_PULLUP | PIN_INT_ADC32引脚;PIN_INT_INT_INTOPRAMS (INT_INT_INT_INT_ADC32);PIN_INT_INT_INT_INT_INTPRAMS (INT_INT_INT_INT_INT_INT_INTOPRAMS);PIN_INT_INT_INT_INT_INT_INTPAL AD ADC = ADC_open (Board_ADC0、¶ms);if (ADC = NULL){while (1);}int i=0;for (i=0;i<100;i++){//阻塞模式转换*/ int_fast16_t res;uint16_t adcValue0;res = ADC_convert = 100;adval (ADC = 100)= u_val (ADC = u_val);adu_val = 100;adu_val = u_val = u_val (adu_val = u_val = 100;adu_val = u_val = u_val = adu_val (adu_val = 100;adu_val = u_val = adu_val = adu_val) 返回(val);}/***** 函数定义***** //*引脚中断在引脚表中配置的回调功能板按钮。 // void buttonCallbackFunction (PIN_Handle handle、PIN_ID pinId){CPUdelay (8000*50);if (!PIN_getInputValue (pinId)){//基于按下的按钮切换 LED *切换(pinId){case Board_DIO21:flag=1;break;case Board_DIO22:* Semaphore&task = 1 (pineId=1);task_delt&t&t&t&t= 1 否则、如果(!PIN_getInputValue (pinId)&&(flag=2)){PIN_setOutputValue (ledPinHandle、Board_DIO12、1);int i;for (i = 0;i<Steps_per_rev; i++){PIN_setOutputValue (ledPinHandle、Board_DIO15、1);CPUstatic
void txTaskFunction (UArg0、UArg0 arg1){//初始化显示并尝试打开 UART 和 LCD 显示类型。 // Display_Params 参数;Display_Params_init (¶ms);params.lineClearMode = display_clear_both;Display_Handle uartDisplayHandle = Display_open (Display_Type_UART、¶ms);Display_Handle lcdDisplayHandle = Display_open (Display_Type_LCD、¶ms);Display_open (Display_wake_printf);Display_wake_printf 和 Display_uartle*上的 Display_printf (Display_wake_display_uartle_0*、Display_printf) 0、0、"Pkts sent:%u"、seqNumber);Display_printf (lcdDisplayHandle、 0、0、"无线电唤醒 TX");Display_printf (lcdDisplayHandle、1、 0、"Pkts sent:%u"、seqNumber);//设置按钮引脚的回调*/ PIN_Status = PIN_registerIntCb (buttonPinHandle、&buttonCallbackFunction);assert_isTrue (status = PIN_SUCCESS)、&NULL);//初始化无线电* RF_Parparalloclength (* tex_parrams_trfrf);trf trf trfrf trf trfrf * rf trfrf trf *和 trams_rfrf trfrf trf 命令 trfrftrf (* rf trf_rf) /*+1表示长度字节*/ rf_cmdPropTxadv.pptt = packet;rf_cmdPropTxAdv.preTriggerType = trig_REL_start;rf_cmdPropTxAdv.Pretime = WOR_PRETER_TIME_RAT_ticks (&WnL_wakeups_per_second);rf* RF_Rf_RF_Rf 和 Rf* RF_Rf RF_Rf * RF_Rf 和 Rf RF_Rf RF_Rf 设置*、Rf_Rf_Rf_Rf * Rf_Rf_Rf *和 Rf_Rf_Rf_Rf_Rf_Rf * Rf_Rf_Rf_Rf_Rf_Rf_Rf *、Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf *和 Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf_Rf *( /*输入主 TX 循环*/ while (1){adcVal = ConvertAdct0MicroVolt ();//等待按钮按压*/ semaphore_pend (txSemaphoreHandle、BIOS_WAIT_Forever);//创建具有递增序列号和随机有效载荷的数据包*/ packet[0]= sense_length;packet[1]= int8 (int8) u+(int8);int8 (uq+)=uint8 (uint8)(int8)(int8)(intu+)(int8) i < PAYLOAD_LENGTH +1;i++){packet[i]= rand();}//发送数据包*/ rf_runCmd (rfHandle、(rf_Op*)&rf_cmdPropTxAdv、rf_PriorityNormal、NULL、0); /*更新显示*/ Display_printf (uartDisplayHandle、0、0、"Pkts sent:%u"、seqNumber); display_printf (lcdDisplayHandle、1、0、"pkts sent:%u"、seqNumber); /*切换 LED */ PIN_setOutputValue (ledPinHandle、Board_PIN_LED1、!PIN_getOutput(Board_PIN_LED1));}延迟(80 * 8000);PIN_setOutputValue (ledPinHandle、Board_DIO15,0);CPUdelay (80 * 8000);{}缺省值};// break};}: