MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки Цены
 Новости   Конференция   Как нас найти? 

Представляем новую линейку продуктов, поставляемых ООО "Микро-Чип":
Источники питания

Блоки  питания


 

помгите с таймером

 Нoвaя темa  |  Наверх  |  Перейти к теме  |  Поиск  |  Правила  |  Вход 

ВНИМАНИЕ!
Вы просматриваете архив форума.

Этот форум работает только в режиме просмотра и поиска.

Действующий форум переведен на новый движок и
находится по адресу www.microchip.su

 помгите с таймером
Автор: pauelstv (---.stv.ru)
Дата:   04/08/2005 17:35

вот состряпал программку и не могу понять: в симуляторе
работает (вижу как ноги в симуляторе загораются каждые 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'



 
 Re: помгите с таймером
Автор: Greg (---.ntt.ru)
Дата:   04/08/2005 17:58

pauelstv писал(а):

> вот состряпал программку и не могу понять: в симуляторе
> работает (вижу как ноги в симуляторе загораются каждые 1000
>
> __CONFIG _CP_OFF & _WDT_ON & _PWRTE_ON & _RC_OSC
>


разберитесь, что означает "WDT_ON"


 
 Re: помгите с таймером
Автор: Dmitry (---.wildpark.net)
Дата:   04/08/2005 19:17

Greg писал(а):


> разберитесь, что означает "WDT_ON"
браво! краткость - сестра таланта!
а я бы для начала начал бы распространяться по поводу перспективности применения 84-го на ближай
шие сто лет...


 
 Re: помгите с таймером
Автор: dynaco (194.90.99.---)
Дата:   04/08/2005 20:06

меня вот что заинтересовало

строчка movlw PORTA должна по идее записывать в аккумулятор значение адреса порта, тоесть
цыфирь 4 или 5 (не помнююю)

хотя прав товарищь намекнувший на собаку...
там ведь 18мс всего

-----------------------------------------------------------

http://www.dynaco.h10.ru/cap_bug.html - очередной черновичок. Если будут мысли и соображения... буду рад конструктивной критике

Отправка отредактированного (04/08/2005 20:10)


 
 Re: помгите с таймером
Автор: Greg (---.ntt.ru)
Дата:   04/08/2005 20:13

dynaco писал(а):

> меня вот что заинтересовало
>
> строчка movlw PORTA должна по идее записывать в аккумулятор
> значение адреса порта, тоесть цыфирь 4 или 5 (не помнююю)

есс-но, если где-то до этого (в файле PIC84.INC) стоит "PORTA EQU H'005'" :))

только эти команды (и для порта В) в программе никаким боком - типа нопов


 
 Re: помгите с таймером
Автор: pauelstv (---.com)
Дата:   05/08/2005 09:47

спасибо. заработало. Я сегодня ночью проснулся и понял, что
включил два таймера :-)


 
 Прям как Менделеев... который Дмитрий Иванович. :))) (-)
Автор: NSS (---.ufanet.ru)
Дата:   05/08/2005 10:57

-

"Ignoramus et ignorabimus..."
(Не знаем и не будем знать...)






Горячие темы на нашем форуме:
Отдел продаж: тел. (495) 223-2339 sales@microchip.ru   Skype:microchip-moscow
Rambler's Top100