2007年7月17日 星期二

FPPA 副程式區城變數的問題(解法)

這個方法~看起來好像很不錯~嘿
簡單好用,稍加修改還可以用 share 作雙迴圈
但是萬萬沒想到有個嚴重的缺點~是什麼?


.ramadr 0x00
word share;
int share_token;

WaitToken macro
inc share_token;
dzsn share_token;
goto $-2;
inc share_token;
endm

FreeToken macro
dec share_token;
endm

Delay:
WaitToken;
mov a, 50;
mov lb@share, a;
DelayLoop:
pushw share;
FreeToken;

delay 200; // do some thing here

WaitToken;
popw share;
dzsn lb@share;
goto DelayLoop;

FreeToken;

ret;

沒有留言:

更高效處理 micro second 的方式

更高效處理 micro second 的方式…  以 STM32 為例… __IO unsigned long sys_tick = 0; void SysTick_Handler(void) {     HAL_IncTick();     sys_tick += (SysTi...