реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Программатор Extra Pic v2.0, Ошибка при прошивке программой WinPic800
gosenergo
сообщение Apr 23 2011, 19:03
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 3-03-10
Пользователь №: 55 782



Народ!! на этом форуме есть толковые парни?? не молчите помогайте с проблемой! посмотрите в первом посте текст программы, я ошибок не нашел, а девайс не работает(( И еще ткните носом, где можно черпнуть информацию по тесту настроек программ программатора, я имею ввиду там где галочки в проге ставишь и смотришь на какую ножку в программаторе приходит сигнал (или что то там должно приходить)??
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 23 2011, 21:13
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(gosenergo @ Apr 23 2011, 01:21) *
Начал поиск ошибки неработоспособности девайса с текста программы. И проверяя работу программы в симуляторе 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 ( 13.84 килобайт ) Кол-во скачиваний: 131

Конфиг у вас некорректный. Тут можно быстро посмотреть в мплабе: Configure-> Configuration bits.
Я вижу что "WDT disabled", а судя по тексту в коде вы его хотели включить.

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

P.S. Ну а может теперь работает? я дальше не смотрел..............
Go to the top of the page
 
+Quote Post
gosenergo
сообщение Apr 24 2011, 04:53
Сообщение #18


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 3-03-10
Пользователь №: 55 782



Цитата(Ruslan1 @ Apr 24 2011, 00:13) *
Конфиг у вас некорректный. Тут можно быстро посмотреть в мплабе: Configure-> Configuration bits.
Я вижу что "WDT disabled", а судя по тексту в коде вы его хотели включить.


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

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

Кстати, что касается синтаксиса вот эти кавычки с двух сторон b'00100010' правильно набирать в английской раскладке одинарным нажатием?
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 24 2011, 10:56
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(gosenergo @ Apr 24 2011, 07:53) *
Извините, а как Вы увидели что конфиг не корректный по тексту? У меня по задумке он должен быть отключен, и в Configuration bits в мплабе он тоже как отключенный значится.

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

Я ж не телепат, у вас в тексте написано "WDT включен", или это комментарии для шпиенов, которые могут исходник украсть sm.gif
Цитата
За остальное, огромное спасибо..Ухожу осмысливать и менять значения на двоичные...

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

хм... не понял вопроса, наверное это может от редактора и настроек винды зависеть. Я нажимаю кнопку "э" в латинском регистре, получаю " ' "
Это просто текстовый файл, компилятору все равно как эти символы в файл попали.
Go to the top of the page
 
+Quote Post
gosenergo
сообщение Apr 24 2011, 20:52
Сообщение #20


Участник
*

Группа: Участник
Сообщений: 24
Регистрация: 3-03-10
Пользователь №: 55 782



Цитата(Ruslan1 @ Apr 24 2011, 13:56) *
Я ж не телепат, у вас в тексте написано "WDT включен", или это комментарии для шпиенов, которые могут исходник украсть sm.gif


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

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

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

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

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

Сообщение отредактировал gosenergo - Apr 24 2011, 20:44
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 24 2011, 21:23
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(gosenergo @ Apr 24 2011, 23:52) *
следующий возникает вопрос: при составление программы я подбирал временные интервалы по секундомеру встроенному в MPLAB, добился точного 3х секундного интервала, а вот на реальной плате эта выдержка составляет порядка 6-7 секунд, почему такой большой разброс получается?

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

Если на все вопросы ответ "Да", то еще раз пройдитесь по тексту. Может, на втором-третьем-сотом проходе у вас что-то задумано изменять, вот оно и меняется.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 05:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01418 секунд с 7
ELECTRONIX ©2004-2016