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

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

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

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

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

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

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

 
Опции темы
Непрочитано 07.06.2007, 14:14  
wm_destroy
Частый гость
 
Регистрация: 21.08.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wm_destroy на пути к лучшему
По умолчанию

Здесь звучало сравнение с ATMEL AVR. Не очень, по-моему оно уместно (IMHO, конечно, без обид). В сравнении даже с Tiny, не говоря о Mega и AT91, 12/16-й микрочип выглядит очень жалобно. Эти дурацкие банки регистров... Столько с ними мароки. Эти ужасные талицы retlw, которые не помещаются в страницу flash. Хотя, может кому и нравится! Сам-то я прилично по-писал для "mid-range". Уж больно у них корпуса приятные. Особенно у PIC10.
Реклама:
wm_destroy вне форума  
Непрочитано 07.06.2007, 15:23  
Faworit
Прописка
 
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
Faworit на пути к лучшему
По умолчанию

Всем добрый день!
В доках нашол кучу примеров и пр. а вот с этим никак не могу въехать:
-----------------------------
Регистр W_TEMP должен быть определен во всех банках памяти с одинаковым смещением относительно начала банка (банк 0 - 0х20, банк 1 - 0хА0). Регистр STATUS_TEMP может быть определен в одном банке памяти данных.
-----------------------------
Доки по асму нет, и не могу понять как эо должно выглядеть в проге, в смысле определить регистры W_TEMP и STATUS_TEMP?
wm_destroy, вот это я нашол в описании, спасибо. Макросы освоил (раньше все их опасался и зря).
wolfvictor, спасибо за файлик, немного мудрено но я постараюсь разобраться.
lisergin_, а я и не обижаюсь, даже в мыслях не было.
Я учусь на асме и буду премного благодарен за любую помощь. По поводу читать и... дык читаем, и голова порой не вопринимает то обилие, вот и пишу на форум шоб подсказали. А тот кусочек, Вы спросили зачем, это я сигналил светодиодиками, глупо но оставил. А вот за генератор, что там не так, вродебы с ТО брал инфу, если что - растолкуйте.
С уважением Геннадий.
Faworit вне форума  
Непрочитано 07.06.2007, 16:21  
wm_destroy
Частый гость
 
Регистрация: 21.08.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wm_destroy на пути к лучшему
По умолчанию

Регистры верхнего банка 0xA0-0xDF отображаются физически на нижний банк (0x20-0x5F). Тоесть читаются и пишутся одинаково вне зависимости от банка. Там и размещаем xx_temp:

W_temp EQU 0x20
status_temp EQU 0x21

и все. А хитрые команды в процедуре сохранения и восстановления нужны чтобы не тронуть флаги статуса. Ведь аппаратное прерывание может застигнуть процессор сразу после команды сравнения перед командой перехода, например
wm_destroy вне форума  
Непрочитано 07.06.2007, 16:56  
lisergin_
Частый гость
 
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
lisergin_ на пути к лучшему
По умолчанию

Цитата:
В доках нашол кучу примеров и пр
Гут. Указанные Вами регистры - это ОЗУ камня, думаю, с этим понятно. Ничего не надо писать, просто не использовать ячейки с другого банка памяти. То, есть, если у Вас W_TEMP по адресу 0x20, то 0хА0 использоваться не должен. По поводу остального - не зря сперва сохраняется аккумулятор, потом статус, восстановление - в обратной последовательности. То есть, если к моменту входа в прерывание был выбран второй банк, то W_TEMP запишется по адресу 0хА0, а при восстановлении регистров - возьмется именно из 0хА0. Кроме того, регистры 70-7F так сказать, банконезависимые, то есть если напишете W_TEMP equ 0x70, точно не ошибетесь. Блин, а для 12-го семейства по барабану, не парьтесь, то, что написал выше справедливо для более высоких семейств камней от микрочипа.
Далее. Скажите, а OSCCAL нужен для чего? Узнаете - найдете ответ по поводу генератора.
А мигание светодиодом в Вашем случае осуществляется командами
movlw .1
xorwf GPIO, f
Это пока не наступите на грабли "рид-модифи-райт" будет работать. Это есть в даташите, потом почитаете.
Удачи!
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
lisergin_ вне форума  
Непрочитано 07.06.2007, 16:58  
Faworit
Прописка
 
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
Faworit на пути к лучшему
По умолчанию

wm_destroy, я вот сделал немножко не так, посмотрите:

STATUS_TEMP EQU H'0006'
W_TEMP equ H'0007'
подскажите такой вариант возможен? Компилятор не ругается и переход по прерыванию в 4-ю нормально.
С уважением Геннадий.
Faworit вне форума  
Непрочитано 07.06.2007, 17:09  
EVGENIY1962
Гражданин KAZUS.RU
 
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
EVGENIY1962 на пути к лучшему
По умолчанию

Сообщение от Faworit
wm_destroy, я вот сделал немножко не так, посмотрите:

STATUS_TEMP EQU H'0006'
W_TEMP equ H'0007'
подскажите такой вариант возможен? Компилятор не ругается и переход по прерыванию в 4-ю нормально.
С уважением Геннадий.
ВЫ ИСПОЛЬЗУЕТЕ ПАМЯТЬ РЕГИСТРОВ ПРОЦЕССОРА,ТАК НЕЛЬЗЯ ВЫ испортите насройки.Если для пользователя отведены определенные адреса так ими и пользуйтесь.
EVGENIY1962 вне форума  
Непрочитано 07.06.2007, 17:24  
lisergin_
Частый гость
 
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
lisergin_ на пути к лучшему
По умолчанию

EVGENIY1962, в данном случае с Вами не согласен. Ничего не испортится, просто будет читаться как 0 (-;
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
lisergin_ вне форума  
Непрочитано 07.06.2007, 17:54  
wm_destroy
Частый гость
 
Регистрация: 21.08.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wm_destroy на пути к лучшему
По умолчанию

Похоже, случилась путаница с адресами! Как мне видится! У PICов пространство регистров и пространство программ разные. (смотрим страничку 7 и 8 мануала на 675й). Адреса 6 и 7 лежат в пространстве регистров! (регистров, правда по этим адресам нет, поэтому будем всегда читать 0). А вектор прерывания 4 находится в памяти программ! Сохранять надо в доступную RAM (!), в адреса 0х20-0х5F! Причем, всеравно в каком банке! Это ж только на картинке адреса RB0 и RB1 разные! На самом деле, в командах они адресуются одинаково, 7-ю битами. Иным словом, одна и та же RAM доступна в области 0х20-0х5F в любом банке!
wm_destroy вне форума  
Непрочитано 07.06.2007, 18:08  
EVGENIY1962
Гражданин KAZUS.RU
 
Регистрация: 27.07.2006
Сообщений: 659
Сказал спасибо: 0
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
EVGENIY1962 на пути к лучшему
По умолчанию

Сообщение от lisergin_
EVGENIY1962, в данном случае с Вами не согласен. Ничего не испортится, просто будет читаться как 0 (-;
А я с вами согласен для данного пика
а вообще без необходимости подобные действия не стоит делать.Кстати а почему 0,вроде я читал,что неиспользуемые регистры можно использовать.Или я что то путаю.
EVGENIY1962 вне форума  
Непрочитано 07.06.2007, 18:08  
wm_destroy
Частый гость
 
Регистрация: 21.08.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wm_destroy на пути к лучшему
По умолчанию

А по поводу OSCCAL там совсем интересно! (только человеки с сильно хитро...ми мозгами молгли такое придумать!) Сам-то регистр - без чудес! Это регистр коррекции частоты встроенного RC генератора 4МГц. Только по старту процессора там лежит не оптимизированная под данную партию чиселка (ну, чтобы 4МГц по-точнее генерилось) а некое число (уж не помню точно, по-моему 0). А константа калибровки лежит в ячейке 0х3FF программной памяти (во флеше). Ее, кстати, лучше не трогать при программировании! Она оптимизированна под данный кристалл, но легко стирается при программировании!
Лежит она в виде RETLW XX. Так вот, надо сделать CALL 0x3ff. retlw положит в W значение константы. А потом надо положить W в OSCCAL. И, наслаждаться оотличными 4МГц с осциллятора! А кому супер-пупер (ну, в пределах +-5% )частота не надо - можно с OSCCAL вообще не заморачиваться!
wm_destroy вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компилятор Hi-Tech, вычисление, на PIC12F675 3ann Микроконтроллеры, АЦП, память и т.д 27 06.07.2009 12:01
pic12f675 Faworit Микроконтроллеры, АЦП, память и т.д 27 01.06.2007 17:51
Program memory в PIC12F675 waiting Микроконтроллеры, АЦП, память и т.д 6 01.02.2007 01:21
Помогите идиоту с PIC12F675 waiting Микроконтроллеры, АЦП, память и т.д 6 26.01.2007 22:41
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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