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

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

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

  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Программирование микроконтроллеров
flampardДата: Воскресенье, 14.12.2014, 12:56 | Сообщение # 31
Группа: Пользователи
Сообщений: 5
Статус: Offline
У меня есть только два 629, с ними идентичный результат. Другие прошивки еще не пробовал. Может есть разница между прошивками для 629 и 675? Прошивка приемника радио датчиков для какого МК?
 


AdminДата: Воскресенье, 14.12.2014, 13:02 | Сообщение # 32
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата flampard ()
Может есть разница между прошивками для 629 и 675?

Нет разницы
 
ketivДата: Среда, 18.05.2016, 16:54 | Сообщение # 33
Группа: Пользователи
Сообщений: 15
Статус: Offline
Добрый день уважаемые форумчане!
помогите разобраться с pic16f876a, не получается записать в eeprom, вроде сделал все по даташиту 

========================================================================================
Write       BSF          STATUS,RP1
              BSF          STATUS,RP0   ;ВЫБРАТЬ БАНК 3
              BTFSC      EECON1,WR    ;ПРОВЕРИТЬ ЗАВЕРШЕНИЯ
              GOTO       $-1          ;ОПЕРАЦИИ ЗАПИСИ
              BCF          STATUS,RP0   ;ВЫБРАТЬ БАНК 2
              CLRW                    ;УКАЗАТЬ АДРЕС ЯЧЕЙКИ
           ; MOVF         Reg_3,W
              MOVWF      EEADR
              MOVF        Reg_4,W      ;УКАЗАТЬ ДАНЫЕ ДЛЯ ЗАПИСИ
              MOVWF      EEDATA
              BSF           STATUS,RP0   ;ВЫБРАТЬ БАНК 3
              BCF           EECON1,EEPGD ;ВЫБРАТЬ EEPROM ПАМЯТЬ
              BSF           EECON1,WREN  ;РАЗРЕШИТЬ ЗАПИСЬ В EEPROM
              BCF           INTCON,GIE   ;ЗАПРЕТИТЬ ПРЕРЫВАНИЯ
              MOVLW      0x55
              MOVWF      EECON2
              MOVLW      0xAA
              MOVWF      EECON2
              BSF           EECON1,WR     ;ИНИЦИАЛИЗИРОВАТЬ ЗАПИСЬ
           ; BSF           INTCON,GIE    ;РАЗРЕШИТЬ ПРЕРЫВАНИЯ
              BCF          EECON1,WREN   ;ЗАПРЕТИЬ ЗАПИСЬ В EEPROM
              BCF          STATUS,RP1   ;Выбор банка 0
              BCF          STATUS,RP0
              return   
============================================================================================

TAXO1
             MOVLW       .100          
             MOVWF        Reg_4
             CALL           Write
=============================================================================================
 
AdminДата: Среда, 18.05.2016, 17:56 | Сообщение # 34
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
А по какому адресу Вы пытаетесь писать данные, если регистр Reg_3 закомментирован в приведённом коде?
 
ketivДата: Среда, 18.05.2016, 18:16 | Сообщение # 35
Группа: Пользователи
Сообщений: 15
Статус: Offline
я пробовал записывать в регистр  Reg_3 разные адреса, но все ровно не записывает в eeprom,
команда clrw вроде как должна очистить аккумулятор, то есть записать в W нули, с чтением проблем нет,
 
AdminДата: Среда, 18.05.2016, 20:45 | Сообщение # 36
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата ketiv ()
команда clrw вроде как должна очистить аккумулятор, то есть записать в W нули,

Все правильно и данные должны были записаться в нулевую ячейку (0х00)
А конфигурационный бит защиты записи в EEPROM случайно не установлен?
Какое значение конфигурационного слова?
 
ketivДата: Пятница, 20.05.2016, 20:52 | Сообщение # 37
Группа: Пользователи
Сообщений: 15
Статус: Offline
Значение конфигурационного слова     __config 3D39h.
С записью наполовину я уже разобрался, только вот записывает не то, что надо.
Например надо записать ( .400 ), а записывает (.144) или надо (.300) записывает (.44), может выложить исходник?
посмотрите когда будет время, это ваш проект бортовой компьютер, просто я решил не много переделать под свои хотелки
Прикрепления: bort_kom.asm (66.5 Kb)


Сообщение отредактировал ketiv - Пятница, 20.05.2016, 20:58
 
AdminДата: Пятница, 20.05.2016, 21:03 | Сообщение # 38
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
Цитата ketiv ()
Например надо записать ( .400 ), а записывает (.144) или надо (.300) записывает (.44)

Так все правильно, Вы пытаетесь записать в 1 байт (т.е в одну ячеку памяти) значение больше .255. Смотрите, ведь для записи значения .400 требуется два байта:

.400 = b'00000001 10010000' "Обрезаем" старший байт:

b'10010000' = .144

Т.е., если нужно записать значение больше .255, необходимо использовать два байта, больше .65535 - три байта и т.д
 


ketivДата: Воскресенье, 22.05.2016, 18:41 | Сообщение # 39
Группа: Пользователи
Сообщений: 15
Статус: Offline
Спасибо. Вот это я тупанул

Добавлено (22.05.2016, 18:41)
---------------------------------------------
Замучила меня эта EEPROM,
в протеусе работает без проблем а в железе нет, например подаю питания на бортавик перехожу на тахометр должно записать .5
а записывает через раз, когда не записывает всегда FF
вот кусок кода добавил даже проверку 

TAXO1  BSF            STATUS,RP1
            BCF            STATUS,RP0   ;ВЫБРАТЬ БАНК 2
            MOVLW       .0        
            MOVWF        Reg_3
            MOVLW       .5        
            MOVWF        Reg_4
            CALL           Write             ; ЗАПИСАТЬ   
TAXO    CALL           Read             ; ПРОЧИТАТЬ
            SUBLW       .5      
            BTFSS        STATUS,Z
            GOTO         TAXO1
            BCF            STATUS,RP1   ;Выбор банка 0
            BCF            STATUS,RP0

 
AdminДата: Воскресенье, 22.05.2016, 18:47 | Сообщение # 40
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
А регистры Reg_3 и Reg_4 у Вас находятся во втором банке?
Если нет, то для чего Вы тут выбираете второй банк???

BSF STATUS,RP1
BCF STATUS,RP0 ;ВЫБРАТЬ БАНК 2
 
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:



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