Итак, я знаю, как генерировать случайное число, когда нажимается кнопка, но я не уверен, как сохранить одно число, не говоря уже о двух, и затем, чтобы оно не сходило с ума, когда оно не в цикле кнопок.
Вот мой код сейчас.
Извините за неопрятность этого, не знаю, как правильно отформатировать его для этого сайта.
#include <p16F690.inc>
__config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
cblock 0x20
Delay1
Delay2
Display
Num1
Boolean
Boolean2
Boolean3
Num2
Num3
LastStableState
Counter
endc
org 0
Start:
BANKSEL TRISA
movlw 0xFF
movwf TRISA
movwf TRISB
clrf TRISC
BANKSEL ANSEL
clrf ANSEL
BANKSEL PORTC
clrf Display
clrf Num1
clrf Num2
clrf Boolean
clrf PORTC
movlw 1
movwf Boolean
movwf Boolean2
movwf Boolean3
movwf LastStableState
clrf Counter
MainLoop:
btfsc LastStableState,0
goto LookingForUp
LookingForDown:
clrw
btfss PORTB,7
incf Counter,w
movwf Counter
goto EndDebounce
LookingForUp:
clrw
btfsc PORTB,7
incf Counter,w
movwf Counter
incf Display,f
EndDebounce:
movf Counter,w
;xorlw 4
btfss STATUS,Z
goto Delay1mS
comf LastStableState,f
clrf Counter
btfss LastStableState,0
goto Delay1mS
btfsc Boolean,0
goto Num1Set
btfsc Boolean2,0
goto Num2Set
goto Step3
Delay1mS:
movlw .02
Call Delay
goto MainLoop
Delay:
movwf Delay2
DelayLoop:
decfsz Delay1,f
goto DelayLoop
decfsz Delay2,f
goto DelayLoop
return
Num1Set:
movf Display,w
movwf Num1
movwf PORTC
clrf Boolean
goto Delay1mS
Num2Set:
movf Display,w
movwf Num2
movwf PORTC
clrf Boolean2
goto Delay1mS
Step3:
;movf Display,w
movlw Num2
movwf PORTC
goto Delay1mS
;andlw Num1
;movwf PORTC
;call Delay1mS
;goto Start
end