Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
07.06.2007, 20:45
|
|
Прописка
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
|
Уф.. сегодня с этими W_TEMP и STATUS_TEMP просидел пол дня. И все в пустую? вы уж звыняйте но хочу разобраться. В ТО на стр.69 мануала на этот МК пишут: Регистр W_TEMP должен быть определен....
я исходил из этого- регистр W_TEMP, но это регистр пользователя (имя его какое угодно) его в официальных нету, так, дальше смещение, для банка 0 -0х20. В заголовочном файле есть описание регистров: STATUS equ H'0003', а дальше значения Н'0006'-H'0009' свободные, вот я и решил что смещаю один регистр на Н0006 а второй на Н0007. Область то ведь не занята. Вот примерно такова логика моего сегоднешнего изыскания. EVGENIY1962, именно поэтому я и решил исползовать этот мэтод ![Улыбка](images/smilies/icon_smile.gif) Завтра переделаю на РАМ и чисто из любопытства проверю как работает, есть ли отличия. За регистр OSCCAL, в доке было написано как его перепрограмировать, вот я и поигрался, удалю, хотя в моем случае шо 4 шо 3.5 точность большая не нужна. Но я буду помнить про калибровочные данные перед програмиронием обязательно их запишу!
Спасибо Всем. С уважением Геннадий.
|
|
|
|
07.06.2007, 21:51
|
|
Частый гость
Регистрация: 21.08.2006
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Faworit,
Вон оно оказывается как! ![Улыбка](images/smilies/icon_smile.gif) Вот откуда взялись 6 и 7! Звиняй, что ввел в заблуждение. Ес-сно W_temp и status_temp это просто пользовательские метки, объявленные в микрочиповском примере. Таких регистров ес-сно нет! Этим меткам надо просто присвоить адреса свободных ячеек RAM оператором EQU. Это просто временные ячейки для хранения аккумулятора и статуса. (ведь в PICах нету, к боольшущему сожалению, ни PUSHа ни POPа)
|
|
|
|
07.06.2007, 22:30
|
|
Частый гость
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
wm_destroy, ну хватит уже Вам. ПИКи используют гарвардскую архитектуру, что значит одно разделение: памяти программ и памяти данных. Не пишите, пожалуйста, то, в чем Вы не уверены.
Faworit, возьмите в руки паяльник, припаяйте одну кнопку (а лучше 2 сенсора), один (2) светодиода, не пугаясь того, что так не делают, запустите мигание (зажигание) через прерывания. И тогда, думаю, все встанет на свои места. Мой мейл genich78@mail.ru, пишите вопросы лучше туда.
Удачи!
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
|
|
|
|
08.06.2007, 09:19
|
|
Прописка
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
|
Всем доброе утро!
На свежую голову, прошедший день смотрится уже иначе. wm_destroy за что вы извиняетесь, это я Вам ВСЕМ благодарен за помощь, а мои "художества" от малоопытности, и когда перевариваеш информацию то нужно больше времени на ее осмысление (для меня). Уже попробовал проверить свой вариант использования (STATUS_TEMP, W_TEMP), да действительно этот вариант не катит!!! Ну вот, еще одна преграда свергнута. lisergin_, это Вы зря свой майл дали, засыплю вопросами ![Улыбка](images/smilies/icon_smile.gif) надеюсь не сильно буду мучить ![Обижен](images/smilies/icon_beee.gif) ) (это я так шутю). Спасибо, я обязательно напишу, вопросов у меня еще достаточно.
Всем спасибо.
С уважением Геннадий.
|
|
|
|
08.06.2007, 10:04
|
|
Частый гость
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Ну, я же говорю, земляк и тезка. Грех не помогать ![Подмигивание](images/smilies/icon_wink.gif) . Помню как сам начинал пару лет назад, были случаи, когда ну очень помощь нужна была. Так что не стесняйтесь, послать всегда успеем ![Валяюсь от смеха](images/smilies/icon_biggrin.gif) .
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
|
|
|
|
08.06.2007, 11:38
|
|
Временная регистрация
Регистрация: 28.02.2007
Сообщений: 90
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
|
Сообщение от Faworit
|
я исходил из этого- регистр W_TEMP, но это регистр пользователя (имя его какое угодно) его в официальных нету, так, дальше смещение, для банка 0 -0х20. В заголовочном файле есть описание регистров: STATUS equ H'0003', а дальше значения Н'0006'-H'0009' свободные
|
не свободные в том то вся фишка а не существующие
Unimplemented data memory locations, read as '0'.
Что сделано для того чтобы в новых контроллерах на это место засунуть какие нибудь другие управляющие регистры, которых в данном МК нет. Поэтому не надо в области SFR распологать пользовательские регистры.
В DS написано:
General Purpose Registers и адреса 20h-5Fh
|
|
|
|
08.06.2007, 12:02
|
|
Частый гость
Регистрация: 05.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Для 675 или аналогичног пойдет, а вот для других пиков имеющих банки памяти - желательно чтобы регистры временного хранения W и STATUS, находились в общих регистрах т.е. регистрах доступных с любого банка памяти.В качестве альтернативы можно использовать следующие макросы для организации что-то похожего на Стек - во всяком случае логика такае же. Данные макросы сохраняют W и востановливают его.
Данные макросы использовались с 16F628A.
stack equ 71h ;Резирвирование рег для стека
stack_t equ 7eh ;Временная переменная
stack_p equ 7fh ;указатель стека
;....
;вставка в подпрограмме начальной инициализации Pica
movlw stack ;инициализация указателя стека
movwf stack_p
;....
;************************************
;** Макросы *************************
;************************************
push macro
movwf stack_t ;времено сохраняем W
movf stack_p,W;загружаем указатель стека
movwf FSR;в регистр косвенной адресации
movf stack_t,W ;востанавливаем W
movwf INDF ;выгружаем W по указателю
incf stack_p,F ;увеличиваем указатель на 1
movf stack_t,W ;востанавливаем W
ENDM
pop macro
decf stack_p,F movf stack_p,W
movwf FSR
movf INDF,W
ENDM
|
|
|
|
08.06.2007, 16:54
|
|
Прописка
Регистрация: 28.12.2006
Сообщений: 277
Сказал спасибо: 25
Сказали Спасибо 20 раз(а) в 18 сообщении(ях)
|
Последний вопрос на сегодня ![Улыбка](images/smilies/icon_smile.gif)
АЦП выдает 10-ти разрядный код, в аврках я использую для хранения 16-ти разрядные регистры или 2 однобайтных (временного хранения), а как в пиках, побайтно?
wolfvictor, макросы понравились!!!
С уважением Геннадий.
|
|
|
|
08.06.2007, 20:44
|
|
Частый гость
Регистрация: 22.12.2006
Сообщений: 31
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Макросы почти гут, только вместо movf следует юзать swapf. Первая команда влияет на флаг Z в регистре статуса. А отловить такой баг будет совсем непросто, уж поверьте. Самое мерзкое, что девайс будет работать на столе, а как только пойдет на место, или, еще хуже, в продажу, то заглючит софт в самый неподходящий момент.
Удачи!
__________________
Ничто так не говорит об отсутствии доказательств, как слова: бесспорно, очевидно, общеизвестно...
|
|
|
|
14.06.2007, 10:27
|
|
Частый гость
Регистрация: 05.05.2006
Сообщений: 17
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
|
Сохранение регистра STATUS - это уже другой вопрос, все зависит от програмиста, нужно сохранить STATUS? - в главной программе команда SWAP STATUS,W, а далее опять же масрос PUSH. Вообще-то эти макросы как пример, все зависит от програмиста.
P.S. Сложность изночальной программы возрастает до тех пор, пока незаканчиваються возможности програмиста. Закон Мерфи.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
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:16.
|
|