在運(yùn)行時(shí)期間,接收器以下列方式工作:
- 系統(tǒng)將啟動(dòng) EPwm 和 CPU 計(jì)時(shí)器來觸發(fā)中斷,以開始連續(xù)接收傳入的數(shù)據(jù)。
- 示例程序函數(shù):Start_Receiving();
- ISR 將一直運(yùn)行,直到接收到完整的數(shù)據(jù)包或達(dá)到規(guī)定的超時(shí)時(shí)間。
- ISR 在運(yùn)行時(shí)將使用接收到的位來填充 rxMessage[] 緩沖區(qū)
- 在接收到數(shù)據(jù)包或達(dá)到規(guī)定的超時(shí)時(shí)間后,系統(tǒng)將停止接收數(shù)據(jù),以降低靜默周期期間 CPU 的使用率。
- 示例程序函數(shù):Stop_Receiving();
- 該函數(shù)使 EPwm 停止并使 CPU 計(jì)時(shí)器停止并重置
- 然后將接收到的數(shù)據(jù)打包成所需的格式。
- 示例程序函數(shù):Packetize(int message[], int packet[]);
- 該函數(shù)獲取包含 33 個(gè)接收位的 rxMessage[] 緩沖區(qū),并將每個(gè)字的接收位相加,以用三個(gè) 11 位字填充 packet[] 緩沖區(qū)。然后 rxMessage[] 緩沖區(qū)中的內(nèi)容被設(shè)置為零。
- 根據(jù)表 4-1 中的規(guī)格,+1 等于 W1
- 根據(jù)表 4-1 中的規(guī)格,-1 等于 W0
- 該函數(shù)對 packet[] 的值求和,并將總和保存到 packet_sum 變量中
- 根據(jù)表 4-1 中的規(guī)格,+3 等于 packet_1
- 根據(jù)表 4-1 中的規(guī)格,-3 等于 packet_0
- 在接收過程重新啟動(dòng)之前使用打包的數(shù)據(jù)。
- 示例程序函數(shù):Visual_Indication();
- 該函數(shù)使 BOOSTXL-AFE031 上相應(yīng)的 LED 閃爍
- 如果接收到 packet_1,則藍(lán)色 LED 會(huì)閃爍
- 如果接收到 packet_0,則紅色 LED 會(huì)閃爍
- 如果既沒有接收到 packet_1,也沒有接收到 packet_0,或者發(fā)生超時(shí),則紅色和藍(lán)色 LED 會(huì)閃爍