Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 16 99

Вопрос №3: для чего в этом фрагменте повторно в W грузтися константа b'00001111', ежели она там и так присутствует.

		movlw	B'00001111'		; Задать начальное состояние выходов PORTB
movwf PORTB ; (все светодиоды погашены)

movlw B'00001111' ; W := 00001111


Не является ли эта строка лишней?

 

Является. Случайно так получилось

 

Splav56, приведенные две команды ( 20 : 04 ) - это CLRF....

 

picmaniac, спасибо за респект! Привык разбираться в вопросах досконально и тут не откажусь воспользоваться случаем получить информацию из первых рук. Жду ответов на ответы 2 и3.

To SAK, не обижайтесь что не добрались до обсуждения Вашего исходника, просто еще не время. давайте пока обсудим исходник picmaniaca, как один из вариантов решения задачи.

 

Да, тяжело вести диалог on-line. Вопрос №2 остался без ответа.

 

Crot2: Splav56, приведенные две команды ( 20 : 04 ) - это CLRF....

Я о том, что так можно не всегда, а только в конкретных случаях, когда TMR0 и WDT не используют предделитель. Поэтому лучше использовать бит-ориентированную команду для подключения подтягивающих резисторов.

 

picmaniac: Является. Случайно так получилось

Значит удаляем из исходника.

 

Splav56: To SAK, не обижайтесь что не добрались до обсуждения Вашего исходника
А я и не собирался обижаться, принципиальных отличий между этими вариантами нет, разница только в инициализации и немного в способе записи.

 

Опять повтор команды:

		movlw	B'00001111'		; Задать начальное состояние выходов PORTB
movwf PORTB ; (все светодиоды погашены)

movlw B'00001111' ; W := 00001111

; -- инициализация завершена --

; -- теперь основной цикл (сравните с алгоритмом) --

; Начало цикла
Cycle_label movwf PORTB ; PORTB := W


В порт В уже загружена эта константа.???

А вот про задержку идущую далее я не сообразил в своем исходнике.

 

Splav56: Вопрос №2 остался без ответа.
Я что-то не нашел этот вопрос.

Splav56: В порт В уже загружена эта константа.???
Так мы кажется удалили первые две строки из указанных. При первом входе в это место в порт загружается значение заданное перед циклом, при последующих входах в W, будет находиться значение установленное в теле цикла.