вот состряпал программку и не могу понять: в симуляторе
работает (вижу как ноги в симуляторе загораются каждые 1000
миллисекунд), а на макетке не работает. Ма макете работает
так: rb0 горит постянно, rb1 мигает в соответствии с той
частотой, которую я выставляю в делителе (00000001)1 сек
(00000100)4 сек и т.д. Другие выдводы rb2-rb7 молчат как рыба об
лед. Их работоспособность я проверял (писал проги типо
зажечь все потушить все).
В кратце программа - двоичный счетчик по ногам: 0000 0000, 0000
0001, 0000 0010, 0000 0011, 0000 0100, 0000 000101 и т.д. :-)
Помогите пожалуйста с ошибками:
list p=16F84A ; list directive to define processor
include "p16F84A.inc" ; processor specific variable definitions
__CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
w_temp EQU 0x0C ; variable used for context saving
status_temp EQU 0x0D ; variable used for context saving
ORG 0x000 ; processor reset vector
goto main ; go to beginning of program
ORG 0x004 ; interrupt vector location
movwf w_temp ; save off current W register contents
movf STATUS,w ; move status register into W register
movwf status_temp ; save off contents of STATUS register
movf status_temp,w ; retrieve copy of STATUS register
movwf STATUS ; restore pre-isr STATUS register contents
swapf w_temp,f
swapf w_temp,w ; restore pre-isr W register contents
retfie ; return from interrupt
main
; remaining code goes here
INITA EQU B'00000000'
INITB EQU B'00000000'
banksel TRISA
MOVLW INITA
MOVWF TRISA
MOVLW INITB
MOVWF TRISB
movlw B'00000001' ; pull-ups active
; prescalar assigned to TMR0 and set 1:32
option ; rolls over each second
banksel 0
clrf PORTB ; start with zero
loop
INCF PORTB, 1
MOVLW PORTB
CLRF PORTA
INCF PORTA, 1
MOVLW PORTA
btfss INTCON, T0IF ; wait on T0IF to be set
goto $ -1
bcf INTCON, T0IF
goto loop
END ; directive 'end of program'
> вот состряпал программку и не могу понять: в симуляторе
> работает (вижу как ноги в симуляторе загораются каждые 1000
>
> __CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
>
> разберитесь, что означает "WDT_ON"
браво! краткость - сестра таланта!
а я бы для начала начал бы распространяться по поводу перспективности применения 84-го на ближай
шие сто лет...
> меня вот что заинтересовало
>
> строчка movlw PORTA должна по идее записывать в аккумулятор
> значение адреса порта, тоесть цыфирь 4 или 5 (не помнююю)
есс-но, если где-то до этого (в файле PIC84.INC) стоит "PORTA EQU H'005'" :))
только эти команды (и для порта В) в программе никаким боком - типа нопов