Easyelectronics.ru

Электроника для всех
Текущее время: 16 дек 2017, 00:56

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 12 окт 2016, 16:35 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Доброго времени суток!
Скачал поставил MPLAB X, докачал отдельно компилятор XC8.
Писать решил на С.
В целом все понятно, но вот не большая заковыка возникла в результате просмотра чужого кода:
По умолчанию согласно ДШ у 10F322 выбран внешний источник тактирования CONFIG.FOCS = 1.
В примере который скачал нету сброса этого бита, но и в схеме нету источника тактирования.
Ссылка на пример, который скачал
Получается MPLAB его сбрасывает по умолчанию гдето в своих недрах, или я что-то не так понял?
Вообще настройка CONFIG происходит через #pragma, об этом узнал только из примера, где лежит код который собственно
настраивает регистр CONFIG?
И можно ли сделать чтобы в дереве проекта отображались все заголовочные файлы (.h), а не только те что я засунул в папку проекта?

-----------------------------------------------------
Нашел в менюшках где конфиг настраивается (Windows-> Pic Memories View -> Configurations bits),
но все же хотелось бы найти куда все это уйдет?
Или я неправильно понимаю как работает #pragma? Нечто на подобие дефайна, в итоге где то написанное мной после #pragma участвует
в формировании строки кода.
-----------------------------------------------------
А есть ли уже готовые инструменты(на С) для работы с отдельными битами или надо самому позаботится ( например #define SetBit(adr, bit) asm "BSF adr, bit")?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 13 окт 2016, 18:33 
Старожил

Зарегистрирован: 05 дек 2015, 16:56
Сообщения: 209
Конфиг запишется однократно при программировании. АВР-щики называют это "фьюзы".
В коде добавили к примеру #pragma config FOSC = INTOSCIO - и МПЛАБ сам положит биты по нужному адресу в НЕХе.
Больше вы на него в нормальном режиме не должны обращать внимания.
Если этот камень позволяет программирование флеш - то теоретически возможно перезаписать конфиг прямо из прошивки, но что-то я себе слабо представляю зачем это может пригодится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 17 окт 2016, 17:36 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Раньше не доводилось работать со столь маленькими МК и я что-то не пойму, у него что всего ОДИН вектор прерывания?ОО
Это то есть в теле прерывания надо еще заниматься разбором флагов ???Оо


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 17 окт 2016, 18:42 
Старожил
Аватара пользователя

Зарегистрирован: 11 апр 2014, 13:25
Сообщения: 205
Откуда: Earth
Вы просто мало работали с Пиками вообще. У всех 10,12 и 16 один вектор прерываний (про самые последние, с 4 значной цифровой маркировкой не в курсе, может что и поменяли). Даже у 16F877A, у которого 8 кБ флеша и набор периферии на уровне 8 меги, всего 1 вектор прерывания))) Вот такие они, Пики.
По сути вопроса. Именно так, анализируете флаги. Но будьте внимательны, одних флагов прерывания (IF) не всегда достаточно. Иногда, в зависимости от завязок алгоритмов, нужно анализировать флаги разрешения прерываний (IE). А иногда достаточно просто анализировать их в правильной последовательности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 17 окт 2016, 20:02 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Gnusmas писал(а):
Вы просто мало работали с Пиками вообще. У всех 10,12 и 16 один вектор прерываний (про самые последние, с 4 значной цифровой маркировкой не в курсе, может что и поменяли). Даже у 16F877A, у которого 8 кБ флеша и набор периферии на уровне 8 меги, всего 1 вектор прерывания))) Вот такие они, Пики.
По сути вопроса. Именно так, анализируете флаги. Но будьте внимательны, одних флагов прерывания (IF) не всегда достаточно. Иногда, в зависимости от завязок алгоритмов, нужно анализировать флаги разрешения прерываний (IE). А иногда достаточно просто анализировать их в правильной последовательности.

Да я вообще первый раз пишу под PIC. Часа полтора искал вектор таймера )))))))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 17 окт 2016, 21:30 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Подскажите, а как узнать сколько тактов приходится на 1 элементарную инструкцию?
----------
Вопрос снят нашел 1/4))))
----------
Возник другой: в каких единицах измерения пронумерована шкала в MPLAB X у логического анализатора?
И как отключить стартовую страницу в данной IDE, если вообще можно?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 21 окт 2016, 23:58 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Подскажите пожалуйста!
Не могу заставить уйти МК в сон. Точнее могу, во всех частях программы где есть сон все ок!
Но вот в одном месте хоть убей не засыпает, как будто игнорирует строки со сном.
Хотя в симуляторе все норм.
Отслеживаю эту ситуацию осциллографом.
Ниже приведен кусок кода который не корректно отрабатывается, данный кусок кода вызывается через "GOTO",
"SLEEP" не выполняет а все остальное отрабатывает. В другой части кода есть также слипы собранные из разных
интервалов времени и все прекрасно работает. ДШ читал, никаких оговор не увидел(
В дизассемблере все норм, строки не выкинуты)
Show "КОД"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 30 ноя 2016, 13:35 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
C предыдущей проблемой разобрался. Точнее я так и не понял что это было, я просто отключил все прерывания и сделал программу "линейной".

Возник новый баг))))))
Формирую нечто на подобие ШИМ, 3 пачки по 10 импульсов, затем сон и все по кругу.
Дык вот каждый 3 импульс короче чем заданно на 0,75мкс. И это никак не коррелирует с программой,
тоесть каждый 3 импульс формируется точно также как и предыдущие и последующие. Понятно было бы куда копать
если бы это был первый или последний импульс, но каждый 3 хз почему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопрос по MPLAB X и по 10F322
СообщениеДобавлено: 30 ноя 2016, 17:09 
Старожил
Аватара пользователя

Зарегистрирован: 06 авг 2014, 22:46
Сообщения: 282
Вопрос снят) Опять моя невнимательность отыграла)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB