| Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
Как в PIC 16f877 переключать страницы памяти?
13.06.2012, 19:07
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от st__1
|
С каких это пор htc.h стала отвечать за задержки???
А #include ‹delay.h› где???
|
вчера искал по мануалу для задержки, было НТС вот его и поставил. Я так понимаю он для описания частоты кварца для задержки.
добавил и вот что...
Error [141] H:\PIC\877A\877A.c; 3.18 can't open include file "delay.h": No such file or directory
Пишу ща в MPLAB8.20 на хайтеке.
|
|
|
|
13.06.2012, 19:16
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Надо понимать, что в HI-TECH delay_ms(us) не функция, а макрос, возможно, отсюда и проблемы.
|
|
|
|
13.06.2012, 19:24
|
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Не знаю, что там у вас в консерватории творится...
Вот вам delay_HI_TECH.rar...
Распаковываете и кидаете в папку с проектом...
В майне пишете #include "delay.h"...
В проект добавляете delay.c...
В файле delay.h указываете частоту кварца...
Пробуйте...
Да... в майне вызываете как DelayMs(DELAY);
Последний раз редактировалось st__1; 13.06.2012 в 19:27.
|
|
|
|
13.06.2012, 19:24
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от nonamedov
|
|
Надо понимать, что в HI-TECH delay_ms(us) не функция, а макрос, возможно, отсюда и проблемы.
|
Допустим мактос... так в чем же проблема?? 9 страниц а на вопросы так никто и не ответил... нУЖНО ЛИ САМОМУ СТРАНИЦЫ ПЕРЕКЛЮЧАТЬ ??? Вроде все люди очень знающие а вопрос все просто игнорируют. Если нужно то хоть намекните...
|
|
|
|
13.06.2012, 19:29
|
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от miwutka
|
|
нУЖНО ЛИ САМОМУ СТРАНИЦЫ ПЕРЕКЛЮЧАТЬ ???
|
В стопятый раз... НЕТ!!!
|
|
|
|
13.06.2012, 19:34
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
А какая у Вас версия PICC, если lite, то этого макроса там может и не быть, как нет и delay.h., надо было сразу указать версию, а то получается разговор слепого с глухим.
Последний раз редактировалось nonamedov; 13.06.2012 в 20:03.
|
|
|
|
13.06.2012, 19:41
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Error [1347] ; 0. can't find 0xCD6 words (0xcd6 withtotal) for psect "maintext" in segment "CODE" (largest unused contiguous range 0x800)
отложу пока делай ))
|
|
|
|
13.06.2012, 20:11
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
есть еще версия, как например у PICC
|
Цитата:
|
Syntax:
delay_us (time)
Parameters:
time - a variable 0-65535(int16) or a constant 0-65535
Note: Previous compiler versions ignored the upper byte of an int16, now the upper byte affects the time.
Returns:
undefined
Function:
Creates code to perform a delay of the specified length. Time is specified in microseconds. Shorter delays will be INLINE code and longer delays and variable delays are calls to a function. This function works by executing a precise number of instructions to cause the requested delay. It does not use any timers. If interrupts are enabled the time spent in an interrupt routine is not counted toward the time.
The delay time may be longer than requested if an interrupt is serviced during the delay. The time spent in the ISR does not count toward the delay time.
|
, т.е. возможно, при большем аргументе компилятор должен подставить вместо макроса вызываемую функцию, а его то как раз в Lite версии и нет.
|
|
|
|
13.06.2012, 20:17
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от nonamedov
|
|
т.е. возможно, при большем аргументе компилятор должен подставить вместо макроса вызываемую функцию, а его то как раз в Lite версии и нет.
|
поставил про версию... посоветуйте как лучше проверить переключение банок памяти в компиляторе??))) Хочю увидеть это в оочие на своем компиляторе... а то вопрос всётаки не снят.
Первая проблема которая в топе на решена. В НОВОМ КОМПИЛЯТОРЕ ccs ОТКОМПИЛИЛО КАК НА СКРИНЕ У ЧЕЛОВЕКА. а ВОТ КОПИРНУЛ ПАРУ СТОРОК ЧТОБ БОЛЬШЕ 2048 БЫЛО И ВЫДАЛО ВСЁ ТОЖЕ... чТО МОЖЕТ БЫТЬ?  Я ПРОСТО ХОЧЮ РАЗОБРАТЬСЯ.... ЕСЛИ ЕСТЬ КАКОЙТО ПРОЕКТ ДЛЯ ПРОВЕРКИ ПАМЯТИ БОЛЬШЕ 2К ДАЙТЕ ЧТОБ Я БЫСТРЕЕ ОТСТАЛ ОТ ВАС...
|
|
|
|
13.06.2012, 20:18
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Я разумеется грешник, пишу на МикроЕ Бейсике. Заметил, там процедура-подпрограмма-функция для ПИК до среднего семейства (тобишь ПИК16) если более страницы ФЛАШ (2 кслов) не компилируется. Сообщение : не хватает программной памяти. Даже если остальные 3 страницы, тоесть 6 кслов свободны. Недостаток компилятора однозначно. Да и тык в нос. Много яснее если разделить процесс на мелкие части. Примерно для скана кнопок, скана дисплея, снятия показаний АЦП и так далее.
Делал процедуру select case глубиной 32 элемента, но там вызывались подпрограммы. Прошло както.
__________________
Мыслю, следовательно существую
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:11.
|
|