Например TDA7294

Форум РадиоКот :: Просмотр темы - Работа с АЦП (assembler) Микроконтроллер PIC
Форум РадиоКот
https://radiokot.ru/forum/

Работа с АЦП (assembler) Микроконтроллер PIC
https://radiokot.ru/forum/viewtopic.php?f=58&t=141218
Страница 1 из 1

Автор:  moonk1n [ Пт янв 27, 2017 16:20:36 ]
Заголовок сообщения:  Работа с АЦП (assembler) Микроконтроллер PIC

Код:
movlw   b'11111111'
   movwf   TRISA         
   movlw   b'00000001'
   movwf   TRISB         
   clrf    TRISD         
   bcf    STATUS, RP0

Если добавить код
Код:
movf TRISA
movwf TRISD

между
clrf TRISD и bcf STATUS, RP0 , то что изменится и почему?
Микроконтроллер PIC

Автор:  Родэрик [ Пт янв 27, 2017 16:45:58 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

во-первых, movf trisa, куда копируешь, в W или F ?
Если в W, то в clrf trisd не будет смысла, поскольку тут же после очистки, в trisd ты пересылаешь FF (судя по самой первой строчке), настраивая все его ноги на вход.
если надо и trisa, и trisd настроить на вход, то пиши:
movlw FFh
movwf trisa
movwf trisd

Автор:  moonk1n [ Пт янв 27, 2017 16:49:11 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

Родэрик писал(а):
во-первых, movf trisa, куда копируешь, в W или F ?
Если в W, то в clrf trisd не будет смысла, поскольку тут же после очистки, в trisd ты пересылаешь FF (судя по самой первой строчке), настраивая все его ноги на вход.
если надо и trisa, и trisd настроить на вход, то пиши:
movlw FFh
movwf trisa
movwf trisd

Я это понимаю, вопрос все же остался тот же, можете объяснить,что изменится и почему? Мы ведь вставляем movf TRISA и movwf TRISD после clrf trisd.

Автор:  Родэрик [ Пт янв 27, 2017 17:04:16 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

Мой вопрос тоже остался: Куда копируешь trisa?
Если в W, то после вставки trisd настроится на вход.
Если в F, то после вставки trisd будет равен trisb.

Всё это конечно справедливо, если всё это время ты работаешь в первом банке.

Автор:  sbhidden [ Вс янв 29, 2017 23:23:53 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

Начнем с того :
moonk1n писал(а):
[code]
Микроконтроллер PIC

КАКОЙ!

потом будем дальше обсуждать!
по умолчанию (если не указано) - то копируется в регистр
хотя, возможно, не у всех PIC-ов.
у большинства PICов TRIS - регистры находятся в одном банке, который тоже еще надо "выбрать", как Родэрик и написал.
У некоторых пиков есть еще коварные регистры ANSEL ANCON ADCON, про которые новички часто забывают, но...
начнем с используемого PIC-а.

Автор:  moonk1n [ Пн янв 30, 2017 07:30:04 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

sbhidden писал(а):
Начнем с того :
moonk1n писал(а):
[code]
Микроконтроллер PIC

КАКОЙ!

потом будем дальше обсуждать!
по умолчанию (если не указано) - то копируется в регистр
хотя, возможно, не у всех PIC-ов.
у большинства PICов TRIS - регистры находятся в одном банке, который тоже еще надо "выбрать", как Родэрик и написал.
У некоторых пиков есть еще коварные регистры ANSEL ANCON ADCON, про которые новички часто забывают, но...
начнем с используемого PIC-а.

PIC16F877A

Автор:  Zhuk72 [ Пн янв 30, 2017 17:31:15 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

Вам бы для начала с командами разобраться.
У вас явно ощущается непонимание.

Автор:  al.kame [ Пн янв 30, 2017 20:54:58 ]
Заголовок сообщения:  Re: Работа с АЦП (assembler) Микроконтроллер PIC

moonk1n писал(а):
Код:
movlw   b'11111111'
   movwf   TRISA         
   movlw   b'00000001'
   movwf   TRISB         
   clrf    TRISD         
   bcf    STATUS, RP0

Если добавить код
Код:
movf TRISA
movwf TRISD

между
clrf TRISD и bcf STATUS, RP0 , то что изменится и почему?
Микроконтроллер PIC


В код movf TRISA компилятор попросит вписать получателя, следовательно:
- ВАРИАНТ 1
Код:
movf TRISA,W   ; из TRISA закидываем в W значение b'11111111'
movwf TRISD   ; из W закидываем в TRISD значение b'11111111'

И всё предыдущее можно упростить так:
Код:
movlw   b'11111111'
   movwf   TRISA
   movwf   TRISD   
   movlw   b'00000001'
   movwf   TRISB               
   bcf    STATUS, RP0

- ВАРИАНТ 2
Код:
movf TRISA,F   ; проверка TRISA на Zero, бессмысленно - там уже b'11111111'
movwf TRISD   ; из W закидываем в TRISD значение b'00000001'

А предыдущее можно упростить так:
Код:
movlw   b'11111111'
   movwf   TRISA
   movlw   b'00000001'
   movwf   TRISB               
   movwf   TRISD   
   bcf    STATUS, RP0

Что Вы хотите в итоге - решать Вам :)

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/