Пост N: 283
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 14.06.07 20:45. Заголовок: Re:
Видел пост, где кому то нужен был генератор случайных чисел, у меня он случайно получился на TMR0, месяц уже не могу разобраться. Он просто сходит с ума вместе с INTCON. Даже не слушается команды clrf INTCON, а таймер вообще ни на что не реагирует, просто в каждом м.ц. появляется случайное число. Настраиваю так: в INTCON разрешаю прерывания по изменению уровней сигналов, в ORTION_REG заливаю число 10000010, т.е. отключаю подтягивающие резисторы, предделитель перед TMR0, коэффициент 1:8, внутренний тактовый сигнал, больше ничего не нужно. Потом глобально разрешаю все прерывания. Так вот таймер становится генератором случайных чисел сразу после того, как настрою ORTION_REG. Причем в симуляторе все гладко и пушисто. Только в отладчике и в реальном устройстве ничего не работает, почему понять не могу. С битами конфигурации полный порядок, проверял побитно по даташиту, снимать и ставить Debug не забываю. Даже прерывания уже запрещал все, ничего не меняется. Контроллер PIC16F876A.
Пост N: 178
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 10.08.07 10:24. Заголовок: Re:
Есть вопрос по команде ADDWF PCL, F... Столкнулся с проблемой при использовании данной команды в PIC18F252. Задача: Вывести хоть что-то на LCD (HD44780 - 4x битный интерфейс)! За основу взята классическая п/п вывода, которую "обсосали" в самоучителе и которая работает без проблем с PIC 16F84A & PIC16F628A. В п/п вывода символов в 1-ю строку по команде call TEXT рабочая точка "улетает" на команду addwf PCL, f... По команде retlw 0ABH возврат и запись в w числа 0ABH (как и положено), а дальше чудеса, на следующем "витке" программы снова возврат и запись в w числа 0ABH!!! Скрытый текст
;*********************************************************************************************** list p=18F252 ; используется PIC18F252 #include <p18F252.inc> ; файл, описывающий специфические переменные, ; соответствующие процессору CONFIG OSC=XT ; тактирование от кварца частотой 4 МГц CONFIG OSCS=OFF ; запретить переключать частоту тактирования микроконтроллера CONFIG PWRT=ON ; включать задержку после включения питания CONFIG BOR=ON, BORV=45 ; включить схему сброса по провалу питания. Порог = 4,5В CONFIG WDT=OFF ; сторожевой таймер выключить CONFIG STVR=ON ; по переполнению стека давать сброс микроконтроллера ;*********************************************************************************************** ; Используемые в программе регистры ;*********************************************************************************************** RS EQU 0 ; Вывод RA0 - линия RS \ E EQU 1 ; Вывод RA1 - линия E / => HD44780 ;*********************************************************************************************** CBLOCK 0x00A ; Блок переменных, используемых в программе Temp ; Temp1 ; Temp2 ; ENDC ; ;*********************************************************************************************** ; Начало программы ;*********************************************************************************************** ORG 0x000 ; Вектор сброса процессора, начальный адрес movlw .7 ; Отключаем аналоговые movwf ADCON1 ; входы, все порты А - цифровые clrf PORTA ; Очистили выходные защёлки портов А clrf TRISA ; Все порты А на выход clrf PORTB ; Очистили выходные защёлки портов B clrf TRISB ; Все порты В на выход clrf PORTC ; Очистили выходные защёлки портов C clrf TRISC ; Все порты C на выход ;*********************************************************************************************** ; Инициализация ЖКИ модуля ;*********************************************************************************************** START movlw b'00100000' ; Запись только одного call ONE ; старшего байта movlw b'00101000' ; Команда установки 4-битного интерфейса, call ENTER ; включения обеих строк и матрицы 5х7 точек movlw b'00001100' ; Команда включения дисплея, курсор выкл. call ENTER ; "Составная" задержка со стробом movlw b'00000001' ; Команда очистки дисплея со сбросом данных, call ENTER ; "Составная" задержка со стробом ;*********************************************************************************************** ; Переход в начало 1-й строки ;*********************************************************************************************** movlw b'10000000' ; Выбор ячейки DD RAM с адресом 00H (установка ; курсора в крайнее левое знакоместо 1-й строки) bcf PORTA, RS ; Установка на линии RS "0" call ENTER ; "Составная" задержка со стробом bsf PORTA, RS ; Установка на линии RS "1" ;*********************************************************************************************** ; Вывод символов в 1-ю строку ;*********************************************************************************************** movlw .3 ; Запись числа .3 (количества выводимых в строку movwf Temp2 ; символов) в регистр Temp WR_1 movf Temp2, w ; Копирование содержимого регистра Temp в W sublw .3 ; .3 - Temp = ... (результат записывается в W) call TEXT ; Переход в ПП TEXT movwf PORTB ; Вывод адресного запроса к содержимому ячейки ; знакогенератора в PORTB call ENTER ; "Составная" задержка со стробом decfsz Temp2, f ; Подготовка к выводу на индикацию следующего ; символа таблицы 1-й строки goto WR_1 ; Если результат декремента не=0, то переход в ПП WR_1 ;*********************************************************************************************** goto $ ;*********************************************************************************************** ; Вывод в ЖКИ ;*********************************************************************************************** ENTER movwf Temp ; Копия в Temp movlw 0F0H ; Убьём младший п/байт andwf Temp, w ; результат в w movwf PORTB ; Данные на вывод в PORTB movlw .80 ; Задержка call PAUSE_X ; в 0,8 мс bsf PORTA, E ; Установка на линии E "1" bcf PORTA, E ; Установка на линии Е "0" swapf Temp, f ; Смена п/байтов с сохранением в Temp movlw 0F0H ; Убьём младший п/байт andwf Temp, w ; результат в w ONE movwf PORTB ; Данные на вывод в PORTB bsf PORTA, E ; Установка на линии Е "1" bcf PORTA, E ; Установка на линии Е "0" movlw .80 ; Задержка call PAUSE_X ; в 0,8 мс clrf PORTB ; Очистим выходные защёлки PORTB return ; Возврат из п/п ;*********************************************************************************************** PAUSE_X movwf Temp1 ; Копирование количества проходов из W в Temp1 PAUSE_10 nop ; goto x ; Одноразрядный, x goto xx ; вычитающий xx goto xxx ; счетчик xxx decfsz Temp1, f ; с "врезкой" goto PAUSE_10 ; return ; Возврат из п/п ;*********************************************************************************************** TEXT addwf PCL, f ; Приращение PCL на величину содержимого w retlw 0ABH retlw 31H retlw 32H ;*********************************************************************************************** END
почему? См. стр. 38 даташита на PIC18FXX2: "Регистр счетчика команд PC адресует байты в памяти программ. Чтобы предотвратить смещение счетчика команд на один байт относительно команд микроконтроллера в памяти программ младший бит регистра PCL всегда равен ‘0’. Для адресации команд в памяти программ к счетчику команд всегда прибавляется число 2." т.е. приращение должно равняться двум. Проверьте на реальном устройстве, в MPLAB'е, по крайней мере, работает.
Пост N: 180
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 10.08.07 15:43. Заголовок: Re:
Возврат по retlw xxx работает, а на HD44780 ничего... Слегка подсвечены матрицы 1-й строки. Такое впечатление, что нет инициализации... Схема рабочая, потому, что программа на PicBasic с выводом на LCD работает без проблем... http://slil.ru/24723184
Пост N: 241
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 10.08.07 15:55. Заголовок: Re:
RW1ZK пишет:
цитата:
на HD44780 ничего...
А вы дали время (около 15 мс) для инициализации ЖКИ (перед первым обращением к ЖКИ сделайте задержку в 20-25 мс)? Или используйте бит подтвеждения готовности ЖКИ.
Пост N: 330
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
0
Фото:
Отправлено: 10.08.07 17:08. Заголовок: Re:
НА НЕКОТОРОЫХ ИНДИКАТОРАХ, НАПРИМЕР МЭЛТ, ПРИ ИНИЦИАЛИЗАЦИИ НЕ НУЖНО ИСПОЛЬЗОВАТЬ ФЛАГ BF. Он используется только после инициализации. Иначе начинает работать нестабильно либо вообще отказывается, об этом сказано и в даташите и проверено на опыте.
Пост N: 181
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 10.08.07 17:12. Заголовок: Re:
Сделал задержку, всё-равно ничего... Всё дело в том, что вышеуказанный код прекрасно работает на 84-м и 628А пике. А на этом - в отказ! Временные параметры те-же...
Пост N: 242
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 10.08.07 17:17. Заголовок: Re:
RW1ZK пишет:
цитата:
Сделал задержку, всё-равно ничего...
надо пробовать в железе... Я сейчас на работе, если будет время, проверю дома на PIC18F452. А почему Вы не используете стандартную процедуру инициализации для ЖКИ, а какую-то урезанную?
Пост N: 182
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 10.08.07 17:24. Заголовок: Re:
Да у меня есть только такая... Если у Вас что-то есть, слейте куда-нибудь. Попробую... 8-ми битный интерфейс не хочу пользовать, нужны порты под другие нужды. Пробовал дизассемблировать HEX из PicBasic... Там без пузырька и 2-х помощников не разобраться!
Пост N: 245
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 10.08.07 20:01. Заголовок: Re:
Я никогда не работал с ПИКами 18-ой серии. У них не надо переключать банки памяти при настройке работы портов? Глянул мельком в даташит, вроде бы не надо: "Обращение к регистрам специального назначения можно выполнять без изменения текущего банка памяти данных, что очень удобно при проверки флагов и изменении управляющих битов."
Пост N: 186
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 10.08.07 21:06. Заголовок: Re:
PIC18F252: Линейное адресное пространство памяти программ 32 кб, линейное адресное пространство памяти данных 1,5 кб... При настройке портов ничего переключать не надо. Последняя версия, в которой всё правильно. http://slil.ru/24724149 Короче, я зашёл в тупик... Перепробовал всё, что можно. Не работает!
Пост N: 31
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг:
0
Отправлено: 10.08.07 23:42. Заголовок: Re:
Прогнал в MP_Labe - нет перехода на подпрограмму TEXT. Сама подпрограмма TEXT выглядит незаконченной - нет возвратов с возвращаемыми данными. Зависает в подпрограмме проверки строба ENTER_BF _ может попробовать проверку строба изменить - выдать в этом месте фиксированную задержку? Ещё непонятно что в Temp1 перед вычитанием из 6-ти.
Пост N: 189
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 11.08.07 10:26. Заголовок: Re:
kaligraf пишет:
цитата:
Зависает в подпрограмме проверки строба ENTER_BF
Заблокируйте goto POVTOR... kaligraf пишет:
цитата:
нет перехода на подпрограмму TEXT
Куда-же он делся? kaligraf пишет:
цитата:
TEXT выглядит незаконченной - нет возвратов с возвращаемыми данными
Да всё там закончено. Проверьте внимательно. Спасибо за поддержку. Вам эта тема должна быть тоже интересна после покупки PIC18F452. Команды и структура мк очень похожи!
Если это самая самая последняя версия, то пред меткой POVTOR надо перевемти седьмой бит портВ на вход.
А в этом файле http://slil.ru/24724149 можно былобы вырезать эти строчки: movlw b'11110000' ; RB7-RB4 на вход movwf TRISB ; остальные на выход С удовольствием бы проверил, но модель HD44780 не поддерживает работу с флагом BF
Пост N: 191
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 11.08.07 11:34. Заголовок: Re:
vintik пишет:
цитата:
перед меткой POVTOR надо перевести седьмой бит портВ на вход
Это уже есть: vintik пишет:
цитата:
модель HD44780
Это не модель, а контроллер. Модель моего индикатора SC1602ASLB-XH-HS-G. Кстати данная программа так-же прекрасно работает (на 16F84A $ 16F628A) и с MT-20S4A.
Пост N: 249
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг:
0
Отправлено: 11.08.07 12:32. Заголовок: Re:
vintik пишет:
цитата:
С удовольствием бы проверил, но модель HD44780 не поддерживает работу с флагом BF
RW1ZK пишет:
цитата:
Это не модель, а контроллер.
Речь шла о модели в симуляторе, и проверка флага BF в ней ни как себя не проявляет. По этому проверить программу с использованием флага BF, для этой модели в симуляторе, нет возможности. В противном случае я бы покрутил ее с превеликим удовольствием В железе проверить не могу, нет PIC18F252
Пост N: 32
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг:
0
Отправлено: 11.08.07 14:17. Заголовок: Re:
С подпрограммой TEXT - понял, там DT, просто раньше не работал с этой командой. Может дело в том, что Temp1 используется и в кольце вывода WR1 и в подпрограмме ENTER_BF.
Пост N: 192
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 11.08.07 17:47. Заголовок: Re:
vintik пишет:
цитата:
Речь шла о модели в симуляторе
Я уже потом понял, о чём речь... Извини... Программу проверил, не работает... Попробуй вот эту бяку из PicBasic. http://slil.ru/24726086 Она работает! Порты такие-же, как и в программе на асме.
Пост N: 246
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 11.08.07 18:22. Заголовок: Re:
Посмотрел на PIC18F452, крутая штука... Разобрался немного с настройками. У Вас допущены две, на мой взгляд, принципиальные ошибки: 1. включен режим RC-генератора, а подключен кварц (сюдя из комментариев); 2. включен сторожевой таймер, а в тексте программы нет ни одной команды его сброса; Как оказалось 452-ой ПИК по разводке выводов полностью совпадает с PIC16F877, устройство на котором я сейчас делаю, т.ч. я просто достал свой ПИК, исправил настройки, обрезал программу так, что остался только вывод на ЖКИ, прошил 452-ой ПИК, вставил вместо своего и он без малейших проблем запустился с первого раза в моей схеме. Еще один плюс: в будущем можно будет перейти на 18-ую серию простой заменой микроконтроллера. Вот здесь http://up-file.com/download/358dc4309243/18f542.zip.html рабочий вариант программы. Я также отключил DEBUG и некоторые другие модули, если что будет непонятно - спрашивайте. Подключение ЖКИ: D4-D7 LCD подключены к RB4-RB7, RW - заземлен
Пост N: 195
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 12.08.07 13:50. Заголовок: Re:
Alberto пишет:
цитата:
У Вас допущены две, на мой взгляд, принципиальные ошибки: 1. включен режим RC-генератора, а подключен кварц (сюдя из комментариев); 2. включен сторожевой таймер, а в тексте программы нет ни одной команды его сброса;
На самом деле это не так, посмотрите CONFIG. DEBUG отключать нет необходимости. Всё оказалось куда проще: дело в том, что если отдельно не прописать параметр в CONFIG, то по умолчанию он ставится в ON, что и получилось с LVP. Т.к. я его не прописал, то режим LVP был включён. Поставьте его в ON или закомментируйте - программа не работает... Ниже рабочий вариан программы. Спасибо всем за помощь и отдельная благодарность Alberto! Без вашего варианта рабочей программы я, наверное, разбирался бы ещё долго! http://slil.ru/24727771
Пост N: 252
Зарегистрирован: 26.12.06
Откуда: Одесса
Рейтинг:
0
Отправлено: 12.08.07 14:05. Заголовок: Re:
Спасибо Alberto за еще один вариант инициализации ЖКИ индикатора. Когда разбирался с 4х проводным интерфейсом, использовал материалы предоставленные Вами. Если кто не знает, это на CD, папка «тексты программ», файлы с номерами №48.asm … №54.asm, если не ошибаюсь. Но к сожалению 4х проводного варианта, (без проверки флага занятости), там небыло, по этому обратился к даташиту на HD44780, от туда и была взята инициализация контроллера, начинающаяся с записи одного старшего полубайта. Этот вариант был проверен и в Proteus и в железе. При проверке в железе был выявлен недостаток, (при плавном нарастании напряжения питания, индикатор зависал, при чем последующие запуски с нормальной подачей питания не могли вывести его из «каматозного» состояния). Однако инициализация с проверкой флага BF, выводила его из этого состояния и индикатор начинал работать с первоначальным «рвением». А для протеуса пользую инициализацию с записи одного старшего полубайта. Подправленная программа для протеуса: http://slil.ru/24727812
Пост N: 39
Зарегистрирован: 19.07.07
Откуда: Россия, Челябинская обл.
Рейтинг:
0
Отправлено: 12.08.07 15:50. Заголовок: Re:
vintik Спасибо за рабочий вариант в протеусе, а то вчера всю ночь мозги себе кипятил RW1ZK Иван, с моделированием в протеусе можно делать гораздо меньше движений при написании программы. Указываю для модели файлы прямо в той папке, где проект в MPlab лежит. Каждый новый кусок программы проверяется несколькими щелчками мышой -
Пост N: 250
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 13.08.07 12:29. Заголовок: Re:
RW1ZK пишет:
цитата:
На самом деле это не так, посмотрите CONFIG. DEBUG отключать нет необходимости.
я с 18-ой серией совсем незнаком, посмотрел немного даташит и отключил все что посчитал нужным: DEBUG использует выводы RB6 и RB7, вот я его и отключил от греха подальше. Я пока что с 16F877 разбираюсь, думаю что мне его возможностей на ближайший год - полтора хватит. RW1ZK пишет:
цитата:
Т.к. я его не прописал, то режим LVP был включён.
об этом написано на странице 200 даташита. Но сбрасывать сторожевой таймер все-таки надо . Удачи Вам в вашей работе. Будет интересно посмотреть на рабочий вариант.
Пост N: 202
Зарегистрирован: 26.12.06
Откуда: Россия, Заозерск, Мурманской обл.
Рейтинг:
1
Отправлено: 13.08.07 12:45. Заголовок: Re:
Alberto пишет:
цитата:
об этом написано на странице 200 даташита
Так вот здесь я и просмотрел! Alberto пишет:
цитата:
Но сбрасывать сторожевой таймер все-таки надо
В этой программке он выключен. Рабочий вариант для демонстрации вывода в LCD: http://slil.ru/24730908 Кстати, давно хотел поинтересоваться у посетителей форума: кто пользовался программой PIC18 Simulator IDE или PIC Simulator IDE? Как в программе прикрутить LCD?
Пост N: 251
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 13.08.07 13:07. Заголовок: Re:
Я иногда пользуюсь PIC Simulator IDE, но у меня старая версия и там нет 18-ой серии. А с другой стороны, не все что работает в симуляторе, работает в железе, и наоборот... Так что я предпочитаю железо. Есть описание PIC Simulator IDE на русском, завтра скину.
Пост N: 253
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 13.08.07 14:17. Заголовок: Re:
Подключение ЖКИ опишу сейчас: 1. в меню Tools выбираем LCD Module. 2. В LCD Module нажимаем Setup. 3. Делаем клик мышкой по LCD Type и на цифровой клавиатуре выбираем 0, 1, 2 и т.д. по требованию, Ok. 4. Клик по Data Lines и выбираем нужный порт. 5. В Interface на цифровой клавиатуре нажимаем 1 (4 старшие бита), Ok. 6. В RS Line выбираем порт и номер линии. 7. В E Line то же самое Нажимаем Apply и можно пользоваться.
Пост N: 255
Зарегистрирован: 12.02.07
Откуда: Argentina, Lincoln
Рейтинг:
1
Награды:
Отправлено: 13.08.07 15:54. Заголовок: Re:
Я стараюсь придерживаться стандартной процедуры, т.к. не все модули ЖКИ работают с урезанными процедурами инициализации, но если устройство будет в единичном экземпляре, то можно делать под конкретный модуль.
Нужно записать в 8 ячеек EEPROM. данные из 8 регистров. Косвенная. Стандартная процедура, но нервы попортила. 877 Пишится только 1 ячейка, потом во всех одинаковые значения из первой ячейки. В симуляторе все на ура. С отладчиком в пошаговом режиме тоже отлично. На реальном режиме начинается проблемы. Если дописываю проверку записи, крить можно до утра. Все проверяет. Решение пришло методом проб. Объяснить не смог. Суть в том, что добавил задержку. (Выделено) Подбирал. Работает как утюг. Почему? ;------------------------------------------------------------------------------------ ; запись из BCD в память (с 0 ячейки) ;------------------------------------------------------------------------------------ zapis_f clrf c_epp u_1 movf c_epp,w ; указать адрес ячейки ( в ADDR должен быть адрес) bcf STATUS,RP0 bsf STATUS,RP1 ; BANK2 movwf EEADR addlw BCD_0 movwf FSR movf INDF,W movwf EEDATA ;записать BCD_0 в регистр данных call zap clrf STATUS call zap_PROBA incf c_epp incf Count movlw 8 subwf c_epp,w btfss STATUS,Z goto u_1
Пост N: 1211
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг:
2
Фото:
Отправлено: 24.11.09 15:39. Заголовок: С утра бьюсь над зап..
С утра бьюсь над записью во FLASH память программ в PIC16F873A. (стр.43-48 русского перевода даташита PIC16F87X). Не получается. Процедура считывания проходит нормально, а запись нет. Работаю с PicKit2. Флаг WRERR регистра EECON1 никак не хочет опускаться. Ориентируюсь на него, потому, что он сообщает о том, запись завершена или прервана. Кто нибудь пробовал такое дело?
Пост N: 1212
Зарегистрирован: 14.01.07
Откуда: Россия, Лиски
Рейтинг:
2
Фото:
Отправлено: 24.11.09 16:06. Заголовок: Вместо 16F873A пост..
Вместо 16F873A поставил 16F873. И всё заработало. Теперь память программ изменяется из самой программы. Но почему с буквой "А" не работает? это мне нужно, для подключения нескольких (более 20) датчиков DS18 на один порт. Прописывать индивидуальные коды датчиков намертво в программе как то не гибко. А вдруг придётся заменить. Считывать и забивать в EEPROM - так там места не хватит. А вот считывать и забивать средствами самого PICa в его же программу - самое что надо.
И вообще 873А какой то глюкнутый. Если 873 прошивается в отладчике с первого раза, то 873А со второго а то и пятого раза и то после перезагрузки отладчика.
Пост N: 85
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 24.11.09 17:58. Заголовок: Однажды пытался вмес..
Однажды пытался вместо 873а использовать 876а, include прописывал, в программаторе всё указывал, - но работало криво, на индикаторах периодически проскакивали глюки. Так и не разобрался в причине сбоев, использовал 873а, с ним всё в норме. Так что трудно бывает объяснить происходящее. Кстати в MPLAB 8.36 не обнаружил файла р873a.inc, брал с другого MPASM
Пост N: 975
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
2
Фото:
Отправлено: 24.11.09 18:07. Заголовок: igor пишет: Так ком..
igor пишет:
цитата:
Так компаратор же по умолчанию отключен.
Его все равно надо отключить. Я в свое время бился с запуском, контроллер не запускался. Пока не отключил модуль компаратора, не запустил, у тебя хоть запускается. Попробуй... Я в свое время записывал в память программ на 876А, все было без проблем. Делал по даташиту, проблем не возникло...
Алексей, какое слово конфигурации писал не скажешь. У 873/876А биты защиты изменились по сравнению с 873/876. У меня описание только на контроллеры без буквы А.
Пост N: 976
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
2
Фото:
Отправлено: 24.11.09 19:05. Заголовок: igor пишет: У 873/8..
igor пишет:
цитата:
У 873/876А биты защиты изменились по сравнению с 873/876.
По рускоязычному даташиту на 873/876, тоже без А. А в чем проблема скачать даташит с буквой А? Хотя лично я еще даже не заглядывал в них, разве что только на модуль компаратора, да и то работал с ним по даташиту на 628А кажется... Ниче, вроде работает.
Пост N: 977
Зарегистрирован: 26.12.06
Откуда: Россия, Архангельск
Рейтинг:
2
Фото:
Отправлено: 24.11.09 19:15. Заголовок: А так почти всегда с..
А так почти всегда ставлю так __config 3F39 или 3739 если режим отладки не нужен. Подходит в подавляющем большинстве случаев при отладке. После если надо меняю.
Отправлено: 24.11.09 23:54. Заголовок: А вот как пошла запи..
А вот как пошла запись, так и задержку. Потом все ок, не разу сбоев не было. zapic bsf STATUS,RP1 ; bsf STATUS,RP0 ; BANK3 btfsc EECON1,WR ; проверить завершение операции запись goto $-1 bcf EECON1,EEPGD ; выбрать ЕЕPROM bsf EECON1,WREN ; разрешить запись bcf INTCON,GIE ; запретить прерывание movlw 0x55 movwf EECON2 movlw 0xAA movwf EECON2 bsf EECON1,WR ; запись bcf EECON1,WREN ; запретить запись clrf STATUS call zad_ee ; ЗАДЕРЖКА 40МС
Вставил задержку - не помогает. Увеличил - тоже самое. Без буквы "А" работает без всяких задержек. С буквой, не хочет. Я уже и слово конфигурации десять раз менял. какая то.
Пост N: 86
Зарегистрирован: 20.10.08
Откуда: Россия, Горно-Алтайск
Рейтинг:
0
Отправлено: 25.11.09 09:03. Заголовок: Всё таки попробуйте ..
Всё таки попробуйте отключить компараторы - семёрку в CMCON и если не используете АЦП, то назначьте цифровые каналы вв\выв. в АDCON1. О замене на 876а писал выше.
Пост N: 689
Зарегистрирован: 27.04.07
Откуда: Россия, Воркута
Рейтинг:
0
Фото:
Отправлено: 26.11.09 12:14. Заголовок: Возьми ещё один с бу..
Возьми ещё один с буквой А и с ним попробуй, станет более менее ясно. Я уже говорил, что у меня 876А вообще не прошивается, он шёл вместе с отладчиком ICD2. Так я его не стереть, не прошить немогу. Покупал новый, с новым без проблем.
Все даты в формате GMT
3 час. Хитов сегодня: 14
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет