Мой код показан ниже, я пытаюсь использовать кнопку включения и выключения светодиода. Поэтому нажатие на него однажды включит его, и оно останется включенным, пока кнопка не будет нажата снова.PIC Assembly - Проверка состояния кнопки
Однако во время компиляции я получаю одну ошибку - «метка адреса дублируется или различна во втором проходе» Ошибка указывает на второе появление строки, начинающейся с «check BTFSS».
Что я здесь делаю неправильно?
Заранее спасибо. :)
;Program name: T code
;CPU Configuration
processor 16F84A
include <p16f84a.inc>
__config _XT_OSC & _WDT_OFF & _PWRTE_ON
;Register Label Equates
PORTA equ 05
PORTB equ 06
Count equ 0C
;Register Bit Label Equates
Input equ 4 ;PUSH BUTTON INPUT RA4
LED1 equ 0 ;LED OUTPUT RB0
;*****Program Start*****
org 0
;Initialize (Default = Input)
movlw B'00000000' ;Define Port B output
tris PORTB ; and set bit direction
goto check
;Main Loop
check BTFSS PORTA,Input ;If button is OFF, goto check, and keep waiting for button HIGH condition.
goto check ;
bsf PORTB,LED1 ;Turn the LED ON
check BTFSS PORTA,Input ;Assuming the LED is currently ON, keep checking for a button press...
goto check
bcf PORTB,LED1 ;Turn the LED OFF
goto check ;repeat always
END
Не программист ПИК, но мне кажется, что вы отметили две строки 'check', что путает ассемблер. Возможно, вы должны пометить их 'check1' и' check2'. –