Перейти к содержанию
    

Программатор Extra Pic v2.0

Народ!! на этом форуме есть толковые парни?? не молчите помогайте с проблемой! посмотрите в первом посте текст программы, я ошибок не нашел, а девайс не работает(( И еще ткните носом, где можно черпнуть информацию по тесту настроек программ программатора, я имею ввиду там где галочки в проге ставишь и смотришь на какую ножку в программаторе приходит сигнал (или что то там должно приходить)??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Начал поиск ошибки неработоспособности девайса с текста программы. И проверяя работу программы в симуляторе MPLAB 8.50 заметил такую вещь - в самом начале работы программы непонятно для меня почему, но значение аккумулятора WREG (SFR NAME) изменяется с 00, на FF, и так далее на уменьшение, хотя по тексту программы аккумулятор не используется. Посмотрите на скрины! ответе, это нормально? Скрины выкладываю в порядке исполнения команд.

Неа, ненормально. бред какой-то. такое ощущение, что отладчик совсем что-то другое показывает. Поглядел ваш код в мплабе.

 

0. Первое правило(и на асме и на си): вы должны четко понимать, почему компилятор выдал предупреждение (warning). Норма- полное отсутствие варнингов на программе любой длины. В исключительных случаях они должны быть задокументированы (Типа "тут компилятор ругается на строку номер хх, но это нормально и вызваноо тем-то и тем-то")

 

1. варнинги такие, что их впору ошибками назвать:

Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 73 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 75 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 89 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 91 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 108 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 113 : Argument out of range.  Least significant bits used.
Warning[202] C:\MY_JOB\TEST\PIC\TURBO.ASM 115 : Argument out of range.  Least significant bits used.

Причина везде одинакова:

zum0            movlw           255h          ;Записать константу 255 в аккумулятор (w).

если вы написали "h", то это 16-ричное число, а если хотите десятичное то советую .255 писать. А из записи 255h компилятор успешно загрузил 55h.

Точка перед числом укажет на ее десятичность. Кстати не советую на формат "по умолчанию" надеяться, лучше все-таки все держать под контролем.

 

2. советую смотреть отладку в окне View->Disassembly Listing. Там слева показано, во что именно ваш код был скомпилирован, подобные вышеприведенным ошибкам сразу видны становяться, например:

   013    3054     MOVLW 0x54                     75:    zum1            movlw           254h          ;Записать константу 254 в аккумулятор (w).

 

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

 

3. Если применяете двоичную константу, то ее можно прямо в двоичном виде писать, вам удобнее а компилятору все равно. то есть строку

        movlw           192h;Формирование на выводах RB5, RB6 логической 1.  Записать константу 192 (1100000) в аккумулятор (w).

предлагаю изменить на

movlw           b'01100000'

4. У меня ничего похожего на ваше с аккумулятором не происходит. Ведет он себя как и должно хорошо воспитанному аккумулятору, меняется только согласно указаниям программы. Прикрепляю архив с проектом, может найдете где у вас что не так.(использовал MPLAB IDE 8.63)

PIC.ZIP

Конфиг у вас некорректный. Тут можно быстро посмотреть в мплабе: Configure-> Configuration bits.

Я вижу что "WDT disabled", а судя по тексту в коде вы его хотели включить.

 

Про конфиг можете в документации на контроллер посмотреть, в конце обычно есть посвященный этому раздел. Не найдете- спрашивайте.

 

P.S. Ну а может теперь работает? я дальше не смотрел..............

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конфиг у вас некорректный. Тут можно быстро посмотреть в мплабе: Configure-> Configuration bits.

Я вижу что "WDT disabled", а судя по тексту в коде вы его хотели включить.

 

Извините, а как Вы увидели что конфиг не корректный по тексту? У меня по задумке он должен быть отключен, и в Configuration bits в мплабе он тоже как отключенный значится.

 

За остальное, огромное спасибо..Ухожу осмысливать и менять значения на двоичные...

 

Кстати, что касается синтаксиса вот эти кавычки с двух сторон b'00100010' правильно набирать в английской раскладке одинарным нажатием?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините, а как Вы увидели что конфиг не корректный по тексту? У меня по задумке он должен быть отключен, и в Configuration bits в мплабе он тоже как отключенный значится.

ну, у вас в комментариях в тексте программы написано:

        __config        03ff1h         ;Установка битов конфигурации:
                    ;стандартный ХТ-генератор, WDT включен, бит защиты не установлен,
                    ;PWRT включен (1111 0101).

Я ж не телепат, у вас в тексте написано "WDT включен", или это комментарии для шпиенов, которые могут исходник украсть :)

За остальное, огромное спасибо..Ухожу осмысливать и менять значения на двоичные...

Огромное пожалуйста :) Не меняйте все, используй те системы счисления, которые удобны именно вам именно в этом месте, компилятору все равно.

Кстати, что касается синтаксиса вот эти кавычки с двух сторон b'00100010' правильно набирать в английской раскладке одинарным нажатием?

хм... не понял вопроса, наверное это может от редактора и настроек винды зависеть. Я нажимаю кнопку "э" в латинском регистре, получаю " ' "

Это просто текстовый файл, компилятору все равно как эти символы в файл попали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ж не телепат, у вас в тексте написано "WDT включен", или это комментарии для шпиенов, которые могут исходник украсть :)

 

да действительно было так написано((( но это ошибка в примечании.

 

Значит отчитываюсь: ранее я писал что зумер издавал двух тональный сигнал, так вот после замены всех значений в тексте программы на двоичные числа, этот баг пропал. Сейчас как задумано идут трехкратные одно тональные пик-пик-пик))) Как бы уже лучше, но теперь следующий возникает вопрос: при составление программы я подбирал временные интервалы по секундомеру встроенному в MPLAB, добился точного 3х секундного интервала, а вот на реальной плате эта выдержка составляет порядка 6-7 секунд, почему такой большой разброс получается?

 

Во общем можно подводить итоги, мои мучения закончились, все получилось все работает. Итак, на будущее, если вдруг кто-то задумает смастерить воздушный компрессор с однофазным конденсаторным двигателем и столкнется с проблемой автоматики работы, в части запуска двигателя, отключения и включения по давлению, обращайтесь. поделюсь схемой, печатной платой, текстом программы на PIC16F84A ну и т.д.

 

Всем большое спасибо кто не стоял в стороне и пытался помочь, особую благодарность выражаю форумчанину Ruslan1.

 

Админ, поправь пожалуйста всю ветку, убери что посчитаешь лишним...

Изменено пользователем gosenergo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

следующий возникает вопрос: при составление программы я подбирал временные интервалы по секундомеру встроенному в MPLAB, добился точного 3х секундного интервала, а вот на реальной плате эта выдержка составляет порядка 6-7 секунд, почему такой большой разброс получается?

в два раза-это серьезно. я так понимаю, кварц использовали, не RC-цепочку? тогда вообще нереально, на уровне микросекунд должно совпадать. Это ошибка или в тексте или в фьюзах или в отладке. Обязательно разберитесь где проблема.

в симуляторе для отладчика правильно частоту указывали (Debugger->settings)? 4 MHz?

фьюзы лучше на HS переключить, но это тонкости, должно работать и так.

Можете стать щупом осциллографа на 15-й вывод (если DIP-корпус) (OSC2/CLKOUT). Если задающий кварцевый генератор работает, то увидите синусоиду 4МГц наверное пару сотен милливольт. Вполне достаточно простого 20pF 1MOhm входа осциллографа, он эту частоту не задавит.

 

Если на все вопросы ответ "Да", то еще раз пройдитесь по тексту. Может, на втором-третьем-сотом проходе у вас что-то задумано изменять, вот оно и меняется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...