我是拿Ti 的範例SensorTag 來修改,我在SensorTag_taskFxn()中自己另外加了一個新的event並在這裡傳送data,
我把pin16成設如下:
IOID16 | PIN_GPIO_OUTPUT_EN | PIN_PUSHPULL | PIN_DRVSTR_MAX,
並在event 裡面做 PIN_setOutputValue的動作,大約傳送60幾筆 (120bit的data,每個bit大約10 micro second),
但其中總是會有一兩筆多好20幾個1或0,請問這會是什麼問題呢?
(我在想是不是因為cpu突然切去做別的事情,像是藍芽的scan等等之類的嗎?)
best regards,
Butterfly:
你可以在Debug界面,让代码暂停在你IO口反转的地方然后跑一段时间,然后暂停,去Execution Analysis下面去看Task。有优先级更高的需要处理的话,肯定是先处理优先级更高的。RTOS是多任务,根据优先级顺序来处理
da qin zheng sheng:
你的数据传输一次需要1200毫秒时间,对蓝牙的实时要求比较高。
Anna Lin:
回复 da qin zheng sheng:
嗨~可是我是用pin透過杜邦線傳送出去的,這樣還會有藍芽的問題嗎?
Anna Lin:
回复 Butterfly:
哈囉~不過我試著把Task 的優先權調到最高,一樣會發生這樣的問題,而且我想請問一個event還沒執行完,他會context switch 嗎 ?