📄 comparator1_interrupt.asm
字号:
chip sn8p26l38
.data
acc_buf ds 1
pflag_buf ds 1
.code
org 00h
jmp main
org 08h
jmp isr
org 10h
main:
mov a,#00h
b0mov acc_buf,a
b0mov pflag_buf,a
b0bclr fcm1oen // CM1O pin is GPIO
b0bset fcm1ref // CM1P pin is GPIO
b0bclr fcms0
b0bclr fcms1
//===============================================================
// Comparator internal reference voltage
//===============================================================
// CMS1 CMS0
// 0 0 --> 0.9V
// 0 1 --> 1.0V
// 1 0 --> 1.1V
// 1 1 --> 1.2V
//===============================================================
b0bset fcm1en // Enable Comparator1
b0bset fcm1ien // Enable Comparator1 interrupt service
b0bclr fcm1irq // Clear Comparator1 interrupt request flag
b0bset fgie // Enable GIE
//===============================================================
//
// User code
//
//===============================================================
jmp main
//===============================================================
// interrupt code
//===============================================================
isr:
mov acc_buf,a // Push ACC to buffer
mov a,pflag
b0mov pflag_buf,a // Push PFLAG to buffer
isr_adc:
b0bts1 fcm1ien // Check adcien
jmp isr90
b0bts1 fcm1irq // Check adcirp
jmp isr90
b0bclr fcm0irq
//===============================================================
// // Comparator interrupt request occurs when CM0P voltage
// // or comparator 0 reference voltage is larger than CM0N voltag
// User code
//
//===============================================================
isr90:
mov a,pflag_buf
b0mov pflag,a // Pop pflag_buf to pflag
mov a,acc_buf // Pop acc_buf to acc
reti
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -