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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Регистрация: 20.05.2005
Сообщений: 660
Сказал спасибо: 40
Сказали Спасибо 186 раз(а) в 116 сообщении(ях)
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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 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, время: 03:44.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot