在 Microchip C18 的 Libraries 內有一個指令周期副程式 (#include ),祇要將指令周期副程式包括在程式內,程式便可以用不同數目的指令周期功能。
▲LED Delay 流程圖 |
指令周期副程式的 x 是代表可以乘以次數 ( unsigned char unit ),而次數由 0 至 255,0 等於 256。
Delays.h 內 Functions:
- Delay1TCY (); // Delay 1/12 us (等於一個 NOP指令)
- Delay10TCYx (60); // Delay 10 x 60 x 1/12 = 600/12 = 50 us
- Delay100TCYx (120); // Delay 100 x 120 x 1/12 = 1ms
- Delay1KTCYx (240); // Delay 1000 x 240 x 1/12 = 20 ms
- Delay10KTCYx (0); // Delay 10000 x 256 x 1/12 = 213.3 ms
LED Delay 程式:
//***** Includes ****** #include // P18F4550.h #include // Delay Subroutine //***** Define ***** #define LED0 PORTAbits.RA0 // Define LED=PORTA RA0 //***** Program Start Here ***** void main(void) { TRISA = 0b00000000; // Setup PORTA as Output while(1) { LED0=0; // LED OFF Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms LED0=1; // LED ON Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms Delay10KTCYx(240); // 10,000x240x1/12us = 200ms } } |
2011 年 02 月 18 日 天氣報告
氣溫:13.6 度 @ 23:00
相對濕度:百分之92%
天氣:有薄霧及幾陣雨
沒有留言:
張貼留言