Суббота, 15.08.2026, 05:09
| RSS
Главная | Программирование микроконтроллеров - Страница 5 - Форум
Защита, контроль, управление
Форма входа
[ Новые сообщения · Участники · Правила форума · Поиск · RSS · Чат

Форум не поддерживается! Все интересующие вопросы задаем в чате Телеграм

Также смотрите наш канал в YouTube

  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Программирование микроконтроллеров
ketivДата: Воскресенье, 22.05.2016, 18:49 | Сообщение # 41
Группа: Пользователи
Сообщений: 15
Статус: Offline
Да втором банке,
 


AdminДата: Воскресенье, 22.05.2016, 19:00 | Сообщение # 42
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
А зачем? Что бы было меньше переключений банков?
Возможно, где-то упущено переключение в программе. Я бы посоветовал перенести их в нулевой банк, свободных регистров там еще предостаточно.
 
ketivДата: Воскресенье, 05.06.2016, 10:12 | Сообщение # 43
Группа: Пользователи
Сообщений: 15
Статус: Offline
Цитата Admin ()
А зачем? Что бы было меньше переключений банков?
я их туда прописал когда боролся с записью так они там и остались
Цитата Admin ()
Я бы посоветовал перенести их в нулевой банк
буду пробовать

Добавлено (23.05.2016, 17:22)
---------------------------------------------
Перенес их в нулевой банк и все заработало, спасибо

Добавлено (05.06.2016, 10:12)
---------------------------------------------
Поездил я немного и решил добавить функцию замены масла. И снова столкнулся с проблемой записи в EEPROM. Программа перевалила за нулевую страницу, сначала подумал из-за этого и не пишет в EEPROM, поменял местами куски программы, то есть перенес  функцию замены масла на нулевую
страницу, и все ровно не хочет записывать, а режимы пишет нормально, регистры прописаны в нулевом банке,

        MOVLW       .2        
        MOVWF       Reg_3
        MOVF          Reg_5,W 
        MOVWF       Reg_4
        CALL           Write                 
        BCF            STATUS,RP1   ;Выбор банка 0
        BCF            STATUS,RP0

 
AdminДата: Воскресенье, 05.06.2016, 13:51 | Сообщение # 44
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Если объем программы вылетает за нулевую страницу (т.е за адрес 0х800), то необходимо некоторые подпрограммы вынести в первый банк и перед вызовом этих подпрограмм указывать номер страницы. Структура программы получится примерно такой:

ORG 0x00: нулевая страница
.............
.............
BSF PCLATH,3 ; вызов подпрограммы из 1 страницы памяти
CALL SUBPROGRAMM

ORG 0x800: первая страница

SUBPROGRAMM
.............
.............
BСF PCLATH,3 ; возврат из подпрограммы на нулевую страницы памяти
RETURN

Но имейте ввиду, если есть вызовы подпрограмм из подпрограммы (допустим из SUBPROGRAMM вызываем дополнительные подпрограммы), то это необходимо делать или в пределах одной страницы или переключать страницы аналогично приведенному выше примеру.
 
ketivДата: Вторник, 21.06.2016, 20:01 | Сообщение # 45
Группа: Пользователи
Сообщений: 15
Статус: Offline
Именно так я и делаю, сейчас функция замены масла полностью на нулевой странице вместе с подпрограммой,

Добавлено (21.06.2016, 20:01)
---------------------------------------------
Здравствуйте , мне нужно вывести средние значения, а как длить программно не могу понять, может у вас есть кусок кода как пример или программка

 
  • Страница 5 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
Поиск:



T2M © 2026
Сайт управляется системой uCoz