16.10.2011, 06:37 | #11 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
org 0 bsf 0x03,5 ;идём в 1 банк bcf 0x03,6 clrf 0x05. ;обнуляем trisa И что мы видим в program memory окне? Что попадаем на porta, а не на trisa!!! Даже указав 0x85... Уже убился и выпил йаду... Мой глюк? Или программы? Помогите пожалуйста и проверьте у себя, мне нужно контролировать, правильно ли переключил банки, всё ли туда, куда запланировано пишется. И вообще, с таким контролем удобнЕе, а он, чертяга, не работает. Проц- 16f876a, в конфиге и в лабе он прописан. Версия лаба- 7.42 |
16.10.2011, 06:37 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
По данной тематике есть и другие темы Электронная таблица Хеш-таблица на основе стеков. Матрица (таблица) Список системных команд Пуск + Сочетания клавиш NVIDIA Geforce 9600GT и Другие(таблица) Постоянно вылетает таблица файлов |
17.10.2011, 03:57 | #13 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Уважаемые! Ну неужели так трудно запустить мплаб, вбить 4 строчки, в опциях выставить pic16f876a и ассемблировать на вашей версии, затем открыть view->program memory и отписать, что там получилось?
|
17.10.2011, 07:27 | #15 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Спасибо! Жду в не терпении ))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
19.10.2011, 22:00 | #18 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ерунду замутили, блин... так трудно отследить и в памяти программ по уму, нормально вывести... А было-б так удобно...
Тут вот ещё вопросец назрел... С сегоднешнего начал ковырять шину I2C, пытаюсь общаться с датчиком DS1631 (термометр), ковырял даташит к пику, даташит к далласу. Вроде как получается с божьей помощью и AN735. НО никак без НО. Не получается отправить сигнал NACK от мастера. ну не отпускает линию после. Ниже приведу код, с которым эксперементирую: Код:
list p=16f876a __CONFIG 3F39h #include p16f876a.inc ;Определение переменных============================================== CBLOCK 0x70 temp ;Временная переменная. ENDC ;status equ 0x03 ;Регистр STATUS и его биты. ;rp0 equ 0x05 ;rp1 equ 0x06 portc equ 0x07 trisc equ 0x07 sspcon1 equ 0x14 sspcon2 equ 0x91 sen equ 0x00 rcen equ 0x03 pen equ 0x02 ackdt equ 0x05 acken equ 0x04 sspadd equ 0x93 sspstat equ 0x94 r_w equ 0x02 sspbuf equ 0x13 #define FOSC D'8000000' ;Частота кварца (Гц) #define I2CClock D'400000' ;Частота шины I2C (Гц) #define ClockValue (((FOSC/I2CClock)/4) -1) ; ;Инициализация портов, регистров===================================== ;Режим I2C, установка MASTER. movlw b'00101000' ; setup value ; into W register banksel sspcon1 ; select SFR ; bank movwf sspcon1 ; configure for ; Master I2C ;Установка битрейта I2C movlw 0x0A ; setup value ; into W register banksel sspadd ; select SFR bank movwf sspadd ; baud rate = ; 400KHz @ 18MHz ;Опять настройка I2C. movlw b'00000000' ; setup value ; into W register movwf sspstat ; slew rate ; enabled banksel sspstat ; select SFR bank ;SCL/SDA Настройка выводов на вход. movlw b'00011000' ; setup value ; into W register banksel trisc ; select SFR bank iorwf trisc,f ; SCL and SDA ; are inputs ;Программа======================================================== call START ;Инициируем старт movlw b'10011110' ;Адресом с битом "принять" call I2CWRITE movlw 0xAC ;Отправляем ему код call I2CWRITE call START ;Делаем RE-START movlw b'10011111' ;Адрес с битом "передать" call I2CWRITE call I2CREAD call I2CNACK bsf sspcon2,pen ; Стоп. goto $ ;================================================================= ;Инициализация запроса START START banksel sspcon2 ; select SFR ; bank bsf sspcon2,sen ; initiate ; I2C start ; Код ниже проверит завершение START запроса. btfsc sspcon2,sen ; test start ; bit state goto $-1 ; module busy ; so wait return ;Этот код инициирует I2C чтение I2CREAD banksel sspcon2 ; select SFR ; bank bsf sspcon2,rcen ; initiate ; I2C read ;Этот код проверяет окончание чтения I2C. btfsc sspcon2,rcen ; test read ; bit state goto $-1 ; module busy ; so wait ;Этот код инициирует I2C запись I2CWRITE banksel sspbuf ; select SFR bank ; movlw b'10011110' ; load value ; into W (Бит 0 говорит после ;запроса START ;том, что будет делать SLAVE на ;следующем байте- принимать(0) ;или передавать данные(1), осталь- ;ные указывают адрес устр-ва.) movwf sspbuf ; initiate I2C ; write cycle ;Этот код проверяет окончание записи I2C banksel sspstat ; select SFR bank btfsc sspstat,r_w ; test write bit ; state goto $-1 ; module busy ; so wait return ;Генерация NACK от MASTER I2CNACK banksel sspcon2 ; select SFR ; bank bsf sspcon2,ackdt ; set ack bit ; state to 1 bsf sspcon2,acken ; initiate ack return S-9E-A-AC-A-9F-A-FF-A Ну, с S-A и так понятно. 9E- это адрес с битом W. AC- команда далласа. Тут делаем restart, он тоже почему- то не отмечен протеусом (а есть ли он вообще?) 9F- адрес с битом R. FF- пришла цифра не понятная (в регистре далласа другая сидит) Собственно и трабла заключается в том, что не отпускается шина, нет сигнала N(ACK) от мастера. Или я что- то недопонял, или что- то не допонял я. Кстати, и P (стопа) тоже нет. Хотя я их кидаю. Чего тут недомудрёно? отключение прерывания? ещё что- то? (( где- то рядом- же порыто! |
20.10.2011, 04:50 | #20 (permalink) |
Member
Регистрация: 20.06.2011
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Да, конечно, на 10ком. Схема включения стандартная, дело в том, что другую команду-посылаю, не требующую NACK, а только стоп- выполняется, линия свободна и датчик в режиме ожидания обращения к нему по его адресу. С NACK "косяк" какой-то. В коде- то правильно я его применяю?
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|