aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t_mic51/defint.inc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/t_mic51/defint.inc')
-rw-r--r--tests/t_mic51/defint.inc234
1 files changed, 234 insertions, 0 deletions
diff --git a/tests/t_mic51/defint.inc b/tests/t_mic51/defint.inc
new file mode 100644
index 0000000..2ea07c5
--- /dev/null
+++ b/tests/t_mic51/defint.inc
@@ -0,0 +1,234 @@
+;****************************************************************************
+; Definition der Interrupts und des Timers 2
+;
+
+Falling_Edge EQU True
+Low_Level EQU False
+Negative_Trans EQU False
+Positive_Trans EQU True
+
+Param_On EQU True
+Param_Off EQU False
+
+Nope EQU False
+
+Tm2_Off EQU 0 ;
+Tm2_Timer EQU 1 ; Input selection
+Tm2_Counter EQU 2 ;
+Tm2_Gated EQU 3 ;
+
+Tm2_Reload_Off EQU 0 ;
+Tm2_Reload_Ov EQU 2 ; Reload mode
+Tm2_Reload_Ext EQU 3 ;
+
+Tm2_Comp_Mode0 EQU False ; Compare mode
+Tm2_Comp_Mode1 EQU True ;
+
+Tm2_Slow EQU True ; Prescaler selection
+Tm2_Normal EQU False ;
+
+Tm2_CC_Off EQU 0
+Tm2_CC_Capt_Ext EQU 1
+Tm2_CC_Comp_On EQU 2
+Tm2_CC_Capt_CRCL EQU 3
+
+;-----------------------------------------------------------------------------
+
+Init_Interrupt MACRO PInterrupt, PTrig, PState
+ IFNDEF PInterrupt
+ FATAL "unbekannter Interrupt"
+ ELSEIF
+
+ SWITCH PInterrupt
+ CASE INT0_VEKTOR ; INT0
+ IF PTrig
+ SETB IT0
+ ELSEIF
+ CLR IT0
+ ENDIF
+
+ CASE INT1_VEKTOR ; INT1
+ IF PTrig
+ SETB IT1
+ ELSEIF
+ CLR IT1
+ ENDIF
+
+ CASE INT2_VEKTOR ; INT2
+ IF PTrig
+ SETB I2FR
+ ELSEIF
+ CLR I2FR
+ ENDIF
+
+ CASE INT3_VEKTOR ; INT3
+ IF PTrig
+ SETB I3FR
+ ELSEIF
+ CLR I3FR
+ ENDIF
+
+ ELSECASE
+ ENDCASE
+
+ IF PState
+ Int_On PInterrupt
+ ELSEIF
+ Int_Off PInterrupt
+ ENDIF
+
+ ENDIF
+ ENDM
+
+
+;-----------------------------------------------------------------------------
+
+Int_On MACRO PInterrupt
+ IFNDEF PInterrupt
+ FATAL "unbekannter Interrupt"
+ ELSEIF
+ SWITCH PInterrupt
+ CASE INT0_VEKTOR
+ CLR IE0
+ SETB EX0
+ CASE ICT0_VEKTOR
+ CLR TF0
+ SETB ET0
+ CASE INT1_VEKTOR
+ CLR IE1
+ SETB EX1
+ CASE ICT1_VEKTOR
+ CLR TF1
+ SETB ET1
+ CASE ICT2_VEKTOR
+ CLR TF2
+ CLR EXF2
+ SETB ET2
+ CASE AD_I_VEKTOR
+ CLR IADC
+ SETB EADC
+ CASE INT2_VEKTOR
+ CLR IEX2
+ SETB EX2
+ CASE INT3_VEKTOR
+ CLR IEX3
+ SETB EX3
+ CASE INT4_VEKTOR
+ CLR IEX4
+ SETB EX4
+ CASE INT5_VEKTOR
+ CLR IEX5
+ SETB EX5
+ CASE INT6_VEKTOR
+ CLR IEX6
+ SETB EX6
+ ENDCASE
+ ENDIF
+ ENDM
+
+;-----------------------------------------------------------------------------
+
+Int_Off MACRO PInterrupt
+ IFNDEF PInterrupt
+ FATAL "unbekannter Interrupt"
+ ELSEIF
+ SWITCH PInterrupt
+ CASE INT0_VEKTOR
+ CLR EX0
+ CLR IE0
+ CASE ICT0_VEKTOR
+ CLR ET0
+ CLR TF0
+ CASE INT1_VEKTOR
+ CLR EX1
+ CLR IE1
+ CASE ICT1_VEKTOR
+ CLR ET1
+ CLR TF1
+ CASE ICT2_VEKTOR
+ CLR ET2
+ CLR TF2
+ CLR EXF2
+ CASE AD_I_VEKTOR
+ CLR EADC
+ CLR IADC
+ CASE INT2_VEKTOR
+ CLR EX2
+ CLR IEX2
+ CASE INT3_VEKTOR
+ CLR EX3
+ CLR IEX3
+ CASE INT4_VEKTOR
+ CLR EX4
+ CLR IEX4
+ CASE INT5_VEKTOR
+ CLR EX5
+ CLR IEX5
+ CASE INT6_VEKTOR
+ CLR EX6
+ CLR IEX6
+ ENDCASE
+ ENDIF
+ ENDM
+
+;-----------------------------------------------------------------------------
+
+Init_Timer2 MACRO PInput, PReloadMode, PCompareMode, PPrescaler, PReloadValue
+
+ SWITCH PInput
+ CASE Tm2_Off
+ CLR T2I1
+ CLR T2I0
+ CASE Tm2_Timer
+ CLR T2I1
+ SETB T2I0
+ CASE Tm2_Counter
+ SETB T2I1
+ CLR T2I0
+ CASE Tm2_Gated
+ SETB T2I1
+ SETB T2I0
+ ENDCASE
+
+ SWITCH PReloadMode
+ CASE Tm2_Reload_Off
+ CLR T2R1
+ CLR T2R0
+ CASE Tm2_Reload_Ov
+ SETB T2R1
+ CLR T2R0
+ CASE Tm2_Reload_Ext
+ SETB T2R1
+ SETB T2R0
+ ENDCASE
+
+ IF PCompareMode
+ SETB T2CM
+ ELSEIF
+ CLR T2CM
+ ENDIF
+
+ IF PPrescaler
+ SETB T2PS
+ ELSEIF
+ CLR T2PS
+ ENDIF
+
+ MOV CRCL, #(PReloadValue # 256)
+ MOV CRCH, #(PReloadValue / 256)
+
+ ENDM
+
+
+
+Init_Comp_Timer2 MACRO PMode1, PMode2, PMode3, PValue1, PValue2, PValue3
+
+ MOV CCEN, #(PMode1*4+PMode2*16+PMode3*64)
+ MOV CCL1, #(PValue1 # 256)
+ MOV CCH1, #(PValue1 / 256)
+ MOV CCL2, #(PValue1 # 256)
+ MOV CCH2, #(PValue1 / 256)
+ MOV CCL3, #(PValue1 # 256)
+ MOV CCH3, #(PValue1 / 256)
+
+ ENDM