Activity
Вы хотите посеовноваться со мной в решении диф.уров? это как раз у меня намного лучше получаетя чем програмирование;-)
Что такое калибровочная констатнта если честно не знаю…но в дебугере если убрать эти 2 строчки, то программа начинает работать совершенно неадекватно
Эти строчки видимо нужны,так как если их убрать из кода, то hex даже не получается…=( так что думаю проблема не в этом…
Еще раз залил эту же прошивку в контроллер. снова вылезла ошибка:
Ошибка по адресу 00001FF: записано 0800 вместо 0А00
затем друг за другом выскочили:
ошибка верификации(5.5в)
ошибка верификации(3.0в)
Чтобы это все значило…програматор PicProg
ТО есть можно откомпилировать этот код и залить его в контроллер?.. 😕 тогда в чем проблема? я его залил в контроллер, контроллер вставил в схему, а она категорически отказывается работать…при этом контроллер до прошивки был чистым(проверял), а при записи выдал ошибку какую-то(чето там про адрес памяти 0040h…что-то такое…)…но как понял она должна была вылезти…так что в чем проблема не знаю=(
Доброго всем дня!
Помогите пожалуйста решить проблему:
Есть код под pic12c508:
;
;-----------PROGRAMM of TRAFFIC LIGHT------------
;
list p=12c508
__config H'000A'
errorlevel 1
;
incl*ude "d:\p12c508.inc";проверьте путь к файлу!
;
;----------- Constants -----------------
;
CLKOUT = .4000000/4
;
LSB equ 0
MSB equ 7
;
org 07h
;
OutPort res 1
Count res 1
TimeCount res 1
;
;------------------------------------
TRIS_GPIO = b'11001000'
;
;
;---------- GPIO Pin Name -------------
;
GreenRight equ 0;output
GreenLeft equ 1;output
Yellow equ 2;output
Mode equ 3; input
RedRight equ 4;output
RedLeft equ 5;output
LIGHT MACRO RL, RR, Y, GL, GR, TIME
;
IF RL == 1
bcf OutPort, RedLeft
ELSE
bsf OutPort, RedLeft
ENDIF
;аналогично для "красного справа"
IF RR == 1
bcf OutPort, RedRight
ELSE
bsf OutPort, RedRight
ENDIF
;аналогично для "желтого"
IF Y == 1
bcf OutPort, Yellow
ELSE
bsf OutPort, Yellow
ENDIF
;аналогично для "зеленого слева"
IF GL == 1
bcf OutPort, GreenLeft
ELSE
bsf OutPort, GreenLeft
ENDIF
;аналогично для "зеленого справа"
IF GR == 1
bcf OutPort, GreenRight
ELSE
bsf OutPort, GreenRight
ENDIF
;
movf OutPort, W
movwf GPIO
IF TIME != 0
movlw TIME
ELSE
movlw 1
ENDIF
movwf TimeCount
call TimeEnd
ENDM
;
;-------------------- Start address ------------------------------
;
org 01FF ;вектор сброса
b begin
org 0 ;начало
begin
movlw b'10000111';OPTION BYTE
option
;
movlw TRIS_GPIO
tris GPIO
;
movlw 0FF
movwf OutPort
movwf GPIO ;погасить все светодиоды
;
main
btfss GPIO, Mode;проверить режим (обычный <-> мигающий)
b PulseYellow
; ;обычный режим
LIGHT 1,0,0,0,1, .20
LIGHT 1,0,0,0,0, .1
LIGHT 1,0,0,0,1, .1
LIGHT 1,0,0,0,0, .1
LIGHT 1,0,0,0,1, .1
LIGHT 1,0,0,0,0, .1
LIGHT 1,0,0,0,1, .1
LIGHT 1,0,1,0,0, .4
LIGHT 0,1,0,1,0, .20
LIGHT 0,1,0,0,0, .1
LIGHT 0,1,0,1,0, .1
LIGHT 0,1,0,0,0, .1
LIGHT 0,1,0,1,0, .1
LIGHT 0,1,0,0,0, .1
LIGHT 0,1,0,1,0, .1
LIGHT 0,1,1,0,0, .4
b main
PulseYellow
LIGHT 0,0,1,0,0, .1
LIGHT 0,0,0,0,0, .1
b main
; -------
TimeEnd
movlw .500000/.256/.256
movwf Count
TimePlus
movlw 1
movwf TMR0
TimeLoop
nop
movf TMR0, W
bnz TimeLoop
decfsz Count, F
b TimePlus
decfsz TimeCount, F
b TimeEnd
return
;=================================================================
;
END
Ну так вот…как я понимаю для того чтобы записать этот код на pic 12c508a необходимо исправить строчу incl*ude? или я не правильно понимаю? просто я так делал…и запорол уже несколько контроллеров=(. Можно ли ли вместо pic12c508 использовать аналоги на флеш памяти(12f629,12f675)…и много ли при этом надо будет переделывать код?
Да и еще вопросик может ли picprog(мне его одолжили, так как больше ничего нет) прошивать 12f629 и 12f675? Ато как я понял после прочтения форума поддержка picprog прекратилась и он не поддерживает новые типы контроллеров…
Заранее примного благодарен.