Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Hi-tech для PIC10/12/16. Поиск лекарства

Непрочитано 22.12.2009, 10:07  
PupaJr
Прохожий
 
Регистрация: 14.01.2005
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
PupaJr на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

testerplus - Это хорошо что вы знаете подробно о глюках, а начинающему достаточно трудно понять в чём дело - явно правильный и компилируемый код отказывается работать - а просмотр дизассемблерного листинга целое дело... Хотя это у нас уже ОФФТОП.. Вот мой пример в главной программе:
if (V_sim)
{ тут код если этот бит =1 то..., а ставится этот бит в процедуре таймера
};

if (GPIO1) V_sim=1 // если пин =1 то бит его =1 - эта строка в проц. таймера

Так вот - если в главной ставлю не if (V_sim) а if (GPIO1) то в контролере неработает!!!! а естественно компилится нормально.

и ещё -
пишу кусок от общего кода:

TRISIO1=0;
TRISIO2=0;
TRISIO3=1;
GPIO1=1;
GPIO2=0;

получаю код длиной 768 байт, а если так:

GPIO1=1;
GPIO2=0
TRISIO1=0;
TRISIO2=0;
TRISIO3=1;

то код 780 байт!!!!!! это как так?????? причём в разных частях программы похожие участки дают разное число байт+-!!! А в 9.70 всего на 1 байт прироста давал. Смотрел листинг - он там крутит банки регистров, читает порты... короче полная дребедень... Может конечно я такой кривой ...
Так вот, новая версия всетаки получше будет...
Реклама:
PupaJr вне форума  
Непрочитано 22.12.2009, 11:28  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Сообщение от PupaJr Посмотреть сообщение
Так вот - если в главной ставлю не if (V_sim) а if (GPIO1) то в контролере неработает!!!! а естественно компилится нормально.
"Не клевещите на пса". Вряд ли это вина компилятора. Я много работал с PICC, такой косяк я бы не пропустил. Надо в код смотреть (скиньте в личку, если не жалко)
Цитата:
и ещё - пишу кусок от общего кода:

TRISIO1=0;
TRISIO2=0;
TRISIO3=1;
GPIO1=1;
GPIO2=0;

получаю код длиной 768 байт, а если так:

GPIO1=1;
GPIO2=0
TRISIO1=0;
TRISIO2=0;
TRISIO3=1;

то код 780 байт!!!!!! это как так?????? причём в разных частях программы похожие участки дают разное число байт+-!!!
Это не глюк. (К тому же я у себя проверил на 9.60pl3 - размер изменился на 1 слово, так что надо смотреть, что там вокруг этого кода). Вообще же хайтековские компияторы любят банки переключать по 10 раз, но это нельзя назвать глюком, т.к. выдаваемый код - рабочий. Вот в ранних версиях был люк:
Код:
if (TMR2IF && TMR2IE) ...
В условии проверялись биты из разных банков, после чего компилятор не восстанавливал RP0, и программа не работала.

Цитата:
Так вот, новая версия всетаки получше будет...
Версия 9.70 - нерабочая, под ней можно собирать небольшие программы для тестов, но закладывать ее в коммерческий проект не стоит. Чуть позже, если будет время, накидаю пару примеров, где он сбоит (у меня лицензия 45 дней закончилась, надо попытаться переустановить и поиграться в Standart-режиме).

Последний раз редактировалось testerplus; 22.12.2009 в 11:32.
testerplus вне форума  
Непрочитано 22.12.2009, 13:48  
lyk
Гражданин KAZUS.RUN
 
Регистрация: 20.05.2005
Сообщений: 658
Сказал спасибо: 40
Сказали Спасибо 187 раз(а) в 117 сообщении(ях)
lyk на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Нельзя в PICC v.9.70 побитово к защелкам порта обращаться.
ключик от про версии PICC 9.70
Вложения:
Тип файла: zip 9_70.zip (15.9 Кб, 321 просмотров)

Последний раз редактировалось lyk; 22.12.2009 в 14:11.
lyk вне форума  
Эти 5 пользователя(ей) сказали Спасибо lyk за это сообщение:
DukeN (11.01.2010), kusia_gh (30.12.2009), NACK (23.01.2010), t-815 (15.01.2010), testerplus (22.12.2009)
Непрочитано 22.12.2009, 17:25  
PupaJr
Прохожий
 
Регистрация: 14.01.2005
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
PupaJr на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

testerplus, Я сейчас переписал код. Нашёл у себя некоторые неточности в логике работы программы, кое что добавил и убрал - оптимизировал короче говоря... глюки уши, компилится нормально и работает в чипе тоже как надо, видимо компилятор путался в моих наворотах хотя и компилил.... Именно в логике программы а не правильности написания кода.... 9.60pl5 есть у меня - она как? рабочая или глючная? можно её ставить?
PupaJr вне форума  
Непрочитано 22.12.2009, 17:56  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Сообщение от PupaJr Посмотреть сообщение
9.60pl5 есть у меня - она как? рабочая или глючная?
Это ПРО, она нерабочая
testerplus вне форума  
Непрочитано 10.01.2010, 18:02  
Pheliks
Прохожий
 
Регистрация: 09.01.2010
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
Pheliks на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

бррррр...совсем запуталсо... то в той версии глюки, а в той маленькие глючики

пните носом в рабочую версию для начинающих (чтобьі не качать всё подряд) для 10/12/16... имею на борту МРLAB IDE 7.10..асм компилирует даже отдельно в винде, но программировать в нем не силен

нарыл уже Universal_Toolsuite для того чтобы приклеить PICC к MPLABу, осталась версия компилятора
Pheliks вне форума  
Непрочитано 13.01.2010, 14:19  
PupaJr
Прохожий
 
Регистрация: 14.01.2005
Сообщений: 6
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
PupaJr на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Качайте 9.60pl3 9.65pl5 - я их проверял, работают, тема для глюков отдельная, если явно рабочий код неработает в чипе а в симуляторе работает, я делаю так: 1)для начала перегружаю комп - блин, чудо, неменяя ни строчки иногда помогает - или винда или компилятор - ХЗ... 2)меняю местами соседние команды или разбиваю/объединяю некоторые команды с ASM кодом, 3) принципиально меняю алгоритм или команды - на языке С++ можно всякие навороты делать - вот компилятор и блудит-глючит(это моё личное мнение). Если заработал алгоритм то потом уже оптимизируеш - иногда опять начинает глючить - возвращаешся к рабочему варианту... Сам только осваиваю...
PupaJr вне форума  
Непрочитано 13.01.2010, 18:59  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Сообщение от testerplus Посмотреть сообщение
1. работе с указателями на переменные, расположенные вне 0-го банка, не восстанавливаются FSR.5 и FSR.6
2. В PIC16'х после обращения к таблицам данных в ROM при возвращении не восстанавливаются PCLATH.3 и PCLATH.4
3. При входе в прерывание не всегда сохраняется FSR.
Охренеть... а как с этим борются?
мне особено понравилось о FSR прерываниях и PCLATH
picavr вне форума  
Непрочитано 13.01.2010, 21:02  
testerplus
Прописка
 
Регистрация: 26.01.2009
Сообщений: 249
Сказал спасибо: 23
Сказали Спасибо 102 раз(а) в 61 сообщении(ях)
testerplus на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Сообщение от picavr Посмотреть сообщение
Охренеть... а как с этим борются?
мне особено понравилось о FSR прерываниях и PCLATH
Все не так страшно. Ситуации довольно редкие.
FSR в большинстве случаев сохраняется (чтобы не сохранился, кажись, надо вызвать из прерывания функцию, которая этот FSR меняет явно, т.е. "вручную"; и то не всегда получается). Для надежности я всегда сохраняю/восстанавливаю FSR при входе/выходе из прерывания.

С PCLATH тоже точные условия несохранения установить не удалось. Вот тут я приводил короткий пример с ошибкой. Если поменять местами какие-нибудь строчки в этой программке, то ошибка пропадает.
testerplus вне форума  
Непрочитано 14.01.2010, 17:55  
picavr
Почётный гражданин KAZUS.RUN
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,815
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: Hi-tech для PIC10/12/16. Поиск лекарства

Сообщение от testerplus Посмотреть сообщение
FSR в большинстве случаев сохраняется (чтобы не сохранился, кажись, надо вызвать из прерывания функцию, которая этот FSR меняет явно, т.е. "вручную"; и то не всегда получается).

С PCLATH тоже точные условия несохранения установить не удалось. Вот тут я приводил короткий пример с ошибкой. Если поменять местами какие-нибудь строчки в этой программке, то ошибка пропадает.
ведь неизвестно когда компилятор задействует FSR. значит в любом прерывании пишем?:
Код:
unsigneg char temp_fsr
//В начале прерывания
temp_fsr=FSR;
//в конце прерывания
FSR=temp_fsr;
Если честно, то я пока не понимаю...как в СИ, следить за востановлением регистров.. ведь неизвестно что,как скомпилируется и куда ЭТО компилятор засунет... хоть потом дизасемблируй и вставляй команды уже в ассемблере ...

это когда в асемблере пишешь,всё понятно, там ведь сам всё планируешь...
а в дизасемблере компилятора... ууууууууууууу..
там так всё запуущено...

Последний раз редактировалось picavr; 14.01.2010 в 17:58.
picavr вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Библиотеки LCD 44780 на С CCS или HI-TECH PICC для PIC16 vsvetlov Микроконтроллеры, АЦП, память и т.д 15 27.10.2009 08:03
MPLAB и Hi-Tech 3ann Микроконтроллеры, АЦП, память и т.д 0 14.07.2009 15:17
as205 и NEMO - EAGLE 5.40 ждет лекарства ! avr123-nm-ru Микроконтроллеры, АЦП, память и т.д 41 27.03.2009 21:13
ищу исходник asm для AVR - поиск устройств 1-wire chipman Микроконтроллеры, АЦП, память и т.д 3 12.11.2007 14:53


Часовой пояс GMT +4, время: 21:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.