TMR0 [電子]
お盆の家族サービスから始まり、先週までの仕事がやっと完了して一息つけるようになってきました。
久しぶりの休日。ひたすら眠いです。
放置されていたプログラムに手をつけます。
PICマイコン PIC18F24J10-I/SO
ライタ Pickit2
開発環境はMikro C 8.2です。
タイマー0をつかった1秒インターバルタイマです。割り込みを使ったタイマーでこのような使い方をすることはまずありませんが練習だと思ってやっています。割り込みの設定はどうしても忘れてしまうのでコメント文を多めに書いています。Configuration Settingは適当です。あてにしないでください。
/*
* Project name:
TMR0 (LED_Blinking)
* Test configuration:
MCU: P18F24J10
Oscillator: HS, 20.0000 MHz
Configuration Setting
OSC = HS ; FCMEN = OFF ; PWRT = OFF ; BOREN = OFF ; WDT = OFF
MCLRE = OFF ; PBADEN = OFF ; CCPMX = PORTC ; SEVREN = OFF
XINST = OFF ; DEBUG = OFF ; CodeProtectin = ALL OFF
* NOTES:
None.
*/
void main() {
CMCON = 0x07; //No Comparator
ADCON1 = 0x0F; // set all PORTB pins as digital
TRISA = 0; //No use
TRISB = 0; //All Output
LATB = 0;
TRISC = 0; //No use
T0CON = 0x87; // Set TMR0 in 16bit mode, assign prescaler to TMR0
TMR0H = 0xB3; // Timer0 initial value
TMR0L = 0xB5; // Timer0 initial value
INTCON = 0xA0; // Enable ALL interrupt
while(1){}; // endless loop
}
void interrupt() {
if(INTCON.TMR0IF) {
INTCON.TMR0IF = 0; //TMR0 Interrupt Enable Clear
TMR0H = 0xB3; // Timer0 initial value
TMR0L = 0xB5; // Timer0 initial value
LATB = ~LATB; // Toggle PORTB LEDs
}
}
久しぶりの休日。ひたすら眠いです。
放置されていたプログラムに手をつけます。
PICマイコン PIC18F24J10-I/SO
ライタ Pickit2
開発環境はMikro C 8.2です。
タイマー0をつかった1秒インターバルタイマです。割り込みを使ったタイマーでこのような使い方をすることはまずありませんが練習だと思ってやっています。割り込みの設定はどうしても忘れてしまうのでコメント文を多めに書いています。Configuration Settingは適当です。あてにしないでください。
ダウンロードは🎥こちら
/*
* Project name:
TMR0 (LED_Blinking)
* Test configuration:
MCU: P18F24J10
Oscillator: HS, 20.0000 MHz
Configuration Setting
OSC = HS ; FCMEN = OFF ; PWRT = OFF ; BOREN = OFF ; WDT = OFF
MCLRE = OFF ; PBADEN = OFF ; CCPMX = PORTC ; SEVREN = OFF
XINST = OFF ; DEBUG = OFF ; CodeProtectin = ALL OFF
* NOTES:
None.
*/
void main() {
CMCON = 0x07; //No Comparator
ADCON1 = 0x0F; // set all PORTB pins as digital
TRISA = 0; //No use
TRISB = 0; //All Output
LATB = 0;
TRISC = 0; //No use
T0CON = 0x87; // Set TMR0 in 16bit mode, assign prescaler to TMR0
TMR0H = 0xB3; // Timer0 initial value
TMR0L = 0xB5; // Timer0 initial value
INTCON = 0xA0; // Enable ALL interrupt
while(1){}; // endless loop
}
void interrupt() {
if(INTCON.TMR0IF) {
INTCON.TMR0IF = 0; //TMR0 Interrupt Enable Clear
TMR0H = 0xB3; // Timer0 initial value
TMR0L = 0xB5; // Timer0 initial value
LATB = ~LATB; // Toggle PORTB LEDs
}
}
2013-09-09 17:55
nice!(0)
コメント(0)
トラックバック(0)
コメント 0