Программирование микроконтроллеров
|
|
Admin | Дата: Суббота, 13.12.2014, 08:15 | Сообщение # 31 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| Я для эксперимента сейчас взял 675 пик и затер в нем калибровочную константу (3424 заменил на 3FFF). Программатор указал на ошибку, но без вопросов позволил восстановить 3424. После залил прошивку - калибровочная константа сохранилась.
Так что даже не знаю, что Вам и посоветовать. А другие прошивки не пробовали загружать? Как в этом случае ведет себя калибровочная константа? Это происходит с конкретным экземпляром PIC или вообще со всеми (629/675/676)?
|
|
| |
flampard | Дата: Воскресенье, 14.12.2014, 12:56 | Сообщение # 32 |
Группа: Пользователи
Сообщений: 5
Статус: Offline
| У меня есть только два 629, с ними идентичный результат. Другие прошивки еще не пробовал. Может есть разница между прошивками для 629 и 675? Прошивка приемника радио датчиков для какого МК?
|
|
| |
Admin | Дата: Воскресенье, 14.12.2014, 13:02 | Сообщение # 33 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| Цитата flampard ( ) Может есть разница между прошивками для 629 и 675? Нет разницы
|
|
| |
kostyanuch | Дата: Среда, 30.03.2016, 15:49 | Сообщение # 34 |
Группа: Пользователи
Сообщений: 45
Статус: Offline
| Подскажите пожалуйста а каков принцип прошивки микроконтроллеров, так понимаю лучше сразу купить вот такой вариант ( http://ru.aliexpress.com/item....A0) ) с платкой куда можно воткнуть мк, или просто на требуемые концы надо накинуть соответствующие провода от программатора pickit?
Сообщение отредактировал kostyanuch - Среда, 30.03.2016, 15:50 |
|
| |
ketiv | Дата: Среда, 18.05.2016, 16:54 | Сообщение # 35 |
Группа: Пользователи
Сообщений: 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 | Сообщение # 36 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| А по какому адресу Вы пытаетесь писать данные, если регистр Reg_3 закомментирован в приведённом коде?
|
|
| |
ketiv | Дата: Среда, 18.05.2016, 18:16 | Сообщение # 37 |
Группа: Пользователи
Сообщений: 15
Статус: Offline
| я пробовал записывать в регистр Reg_3 разные адреса, но все ровно не записывает в eeprom, команда clrw вроде как должна очистить аккумулятор, то есть записать в W нули, с чтением проблем нет,
|
|
| |
Admin | Дата: Среда, 18.05.2016, 20:45 | Сообщение # 38 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| Цитата ketiv ( ) команда clrw вроде как должна очистить аккумулятор, то есть записать в W нули, Все правильно и данные должны были записаться в нулевую ячейку (0х00) А конфигурационный бит защиты записи в EEPROM случайно не установлен? Какое значение конфигурационного слова?
|
|
| |
ketiv | Дата: Пятница, 20.05.2016, 20:52 | Сообщение # 39 |
Группа: Пользователи
Сообщений: 15
Статус: Offline
| Значение конфигурационного слова __config 3D39h. С записью наполовину я уже разобрался, только вот записывает не то, что надо. Например надо записать ( .400 ), а записывает (.144) или надо (.300) записывает (.44), может выложить исходник? посмотрите когда будет время, это ваш проект бортовой компьютер, просто я решил не много переделать под свои хотелки
Сообщение отредактировал ketiv - Пятница, 20.05.2016, 20:58 |
|
| |
Admin | Дата: Пятница, 20.05.2016, 21:03 | Сообщение # 40 |
Admin
Группа: Администраторы
Сообщений: 4260
Статус: Offline
| Цитата ketiv ( ) Например надо записать ( .400 ), а записывает (.144) или надо (.300) записывает (.44) Так все правильно, Вы пытаетесь записать в 1 байт (т.е в одну ячеку памяти) значение больше .255. Смотрите, ведь для записи значения .400 требуется два байта:
.400 = b'00000001 10010000' "Обрезаем" старший байт:
b'10010000' = .144
Т.е., если нужно записать значение больше .255, необходимо использовать два байта, больше .65535 - три байта и т.д
|
|
| |