Ik probeer wat te experimenteren met ASM en probeer nu een ingang intelezen. Als daar een 1 op staat moet er een ledje gaan branden. Maar het Ledje brand meteen al. Als ik nog niks doe. Ook al ligt hij aan de 0. Wat doe ik verkeerd?
;**********************************************************************
;
; Filename: xxx.asm
; Date:
; File Version:
;
; Author:
; Company:
;
;
;**********************************************************************;**********************************************************************
;
; Notes:
;
;
;
;
;**********************************************************************list p=16f870 ; list directive to define processor
#include <p16f870.inc> ; processor specific variable definitions__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF & _CPD_OFF
; '__CONFIG' directive is used to embed configuration data within .asm file.
; The lables following the directive are located in the respective .inc file.
; See respective data sheet for additional information on configuration word.;***** VARIABLE DEFINITIONS
w_temp EQU 0x7E ; variable used for context saving
status_temp EQU 0x7F ; variable used for context saving;**********************************************************************
ORG 0x000 ; processor reset vectorclrf PCLATH ; ensure page bits are cleared
goto main ; go to beginning of programmain
BCF STATUS,RP1
BSF STATUS,RP0
MOVLW b'10000000'
MOVWF TRISB
BCF STATUS,RP0
Lezen:
CLRF PORTB
BTFSC PORTB,7
GOTO Lezen
GOTO Puls
Puls:
BSF PORTB,1
GOTO PulsEND ; directive 'end of program'
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Het programma gaat rechtstreeks naar de eindlus als pin B7 0 is (en niet 1: want skip als clear). Wat je daarna ook doet is niet meer van invloed, het lezen van B7 duurt slechts tot hij 0 is.
Maak eens een lus met herhaaldelijk testen van B7 en afhankelijk daarvan setten of clearen van B1.