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

Не работает программа инициализации компаратора PIC16F887 ( Flowcode 4)

1 3

Всё там у вас в порядке за исключением досадных опечаток.

1) Директива org определяет не только адрес начала программы, а адрес любого фрагмента, если надо. Скажем, таблицы.

2) "Командой BSF изменяем значение пятого бита регистра STATUS", - не изменяете, а УСТАНАВЛИВАЕТЕ в 1. Изменить можно и с 1 в 0.

3) "bcf TRISD,1 ; Настраиваем вывод RD0 как выход" - здесь настраиваете вывод RD1, а в комменте пишете что RD0

4) "Этот первый бит...называется TRISD1 и отвечает за конфигурирование 39 ноги микроконтроллера." - 39 нога только для корпуса QFN-44, для другого корпуса будет другая ножка.

5) "bcf PORTD,1 ; Устанавливаем в нуль первый бит регистра 88h" - Адрес не 88h (это адрес как раз TRISD), а адрес регистра ПОРТА D - 0x08.

(Не хотел заострять внимание на таких мелочах, но потом подумал, а вдруг кому-нибудь поможет)

Ещё один момент хотелось бы отметить касательно применения decfsz в помянутой программе. На первый взгляд нормальный оператор с не совсем приятной мнемоникой конечно. НО...Если в переменных Delay2 и Delay1 лежит соответственно 0х01 и 0х00, то цикл повторяется 256 раз. А вот если лежит соответственно 0х01 и 0х01, то цикл повторяется ОДИН раз. Такая вот неприятная особенность.

 

А может, ну его нафик этот пик и перейти на атмеловские чипы?

Посмотрите, как просто и понятно написать ту же самую программу на атмеловских МК


mloop: cbi portd,1 ;вывести 0 в portd.1

delay1: sbiw r24,1 ;вычесть 1 из пары регистров (r25,r24)
brne delay1 ;подождать до нуля

sbi portd,1 ;вывести 1 в portd.1

delay2: sbiw r24,1 ;опять (r25,r24)-1 -> (r25,r24)
brne delay2 ;подождать до нуля

rjmp mloop ;снова повторить весь цикл


Само собой разумеется, что частоту проца надо снизить в четыре раза.

 

GM: Не хотел заострять внимание на таких мелочах
... Ну каждая такая мелочь может боком обойтись, особенно, если ассемблер используешь, так что огромное спасибо... буду исправлять. Про ногу процессора в данном случае я заикнулся потому как наборы PIK KIT 2 как раз чипом в таком корпусе и комплектовались. Я сам сначала ринулся в нет посмотреть, есть ли где что нибудь по этим урокам на русском языке, а ничего так и не нашел. Вот и садился вечерами перед сном по одному оператору выцеплял.
GM: А может, ну его нафик этот пик и перейти на атмеловские чипы
... Всему свое время... в коробочке с пиками лежат 8535 парочка и еще меги восьмые, по моему тоже парочка. Так что все эти же пиковые уроки будут аккуратно сделаны и на атмелах. Просто всему свое время. За пример спасибо... . Как раз отпуск начался, может быть успею разобраться... Ветку про программаторы надо будет еще поштудировать, дабы USB-программатор для атмелов сгородить.

 

На русском языке писанину от пиккита разбирают тут http://pickit2.ru/doku.php

 

Vladikas: писанину от пиккита разбирают тут
Спасибо за ссылку, посмотрел, слюни на дополнительные наборы попускал... а вот писанину они толком и не разбирают... просто те же примеры, которые в комплекте есть изобразили на языке Cи с еще меньшим количеством комментариев.

 

По крайней мере описание девайса на русском там есть. Мне оно приятнее буржуйского.
А программировать я с Карабельникова начинал, поэтому их примеры мне не интересны, даже не смотрел.

 
1 3