Найдено 183 результата

KyJek
Пт июл 29, 2016 13:36:29
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

Re: pic18f26k22 i2c

Судя по графикам, бит SEN регистра SSP1CON2 начинает цикл записи.
т.е. изначально SEN должен быть 1. потом записать в ssp1buf команду и опустить SEN в 0.
ждать прерывание пока SSP1IF не станет 1 и отработает прерывание которое запишет значение из ssp1buf в временную переменную, которую я отработаю ...
KyJek
Пт июл 29, 2016 12:30:06
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

Re: pic18f26k22 i2c

Полностью с Вами согласен. На данный момент мне важнее понять как отправить и получить данные нежели следить за ходом цикла работы системы в целом.

Я правильно понимаю что записав в ssp1buf число i2c отправит его si и вернет ответ в ssp1buf подняв флаг прерывания ?
KyJek
Пт июл 29, 2016 10:50:37
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

Re: pic18f26k22 i2c

Продолжаю разбираться и первой подпрограммой мне необходимо реализовать ожидание i2c
Для этого воспользуюсь прерыванием.
Флаг прерывания храниться в регистре PIR1.
Бит 3 этого регистра SSP1IF: Master Synchronous Serial Port 1 Interrupt Flag bit
1 = The transmission/reception is complete (must be ...
KyJek
Ср июл 27, 2016 09:51:42
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

Re: pic18f26k22 i2c

Итак, что я вижу.
Для включения MSSP1 отвечает 6-бит регистра PMD1 с названием MSSP1MD.
Включенным считается, когда он равен 0. Кроме него ничего включать не надо поэтому
MOVLW B'10111111'
MOVWF PMD1
Переходим к настройке.
#define SET_SSP1CON1 B'00101000'
Первые 4 бита говорят о выборе 1000 ...
KyJek
Вт июл 26, 2016 19:33:59
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

Re: pic18f26k22 i2c

У меня к мк подключён дисплей, всю интересующую меня информацию вывожу на него. В данном случае я даже не знаю как инициализировать i2c не говоря о том что получить данные!
KyJek
Вт июл 26, 2016 14:50:50
Форум: PIC
Тема: pic18f26k22 i2c
Ответы: 10
Просмотры: 4339

pic18f26k22 i2c

Доброго времени суток. Мелкими шагами я продвигаюсь в изучении PIC и очередной шаг это I2c.

Что я имею?
По i2c я буду связываться с si4703.

выводы соединил так:
PIC - SI
RC3 - SCLK
RC4 - SDIO
RC5 - SEN
RC6 - RST
RA3 - GPIO2

по документации на si приложенной ниже указано, что сначала ...
KyJek
Сб май 14, 2016 11:47:13
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Дамс.
Теперь все заработало.
Самое обидное что мне даже в голову это не пришло. А ведь я уже вкл. периферию.
KyJek
Сб май 14, 2016 11:36:01
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Не могу никак понять почему регистры ADCONx после инициализации все равны 0?

MOVLW B'01001101'
MOVWF ADCON0

а он в итоге равен 0. Что за ерунда. Банки памяти проверил. Банк стоит 0F.
KyJek
Пт май 13, 2016 15:50:44
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Я считаю тад для того чтобы выдержать время между вызовами преобразований ацп. Если я просто при каждои прерывании таймера буду поднимать го в 1 то может получится так что ацп еще не выполнит преобразование за свои 12 тадс а я уже поднял го. 2тадс мин задержки в таком случае я не выдержал. А я ...
KyJek
Пт май 13, 2016 14:53:12
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Просто у меня уже есть таймер 2 который я запустил с частотой в 1 Герц. По нему я считаю задержки. перед подачей команд, вкл питания и т.д. в него я прикрутил и подсчет задрежек по АЦП. Мне абсолютно все равно через сколько секунд будет получено новое значение АЦП. Это заряд аккумулятора. Я могу ...
KyJek
Пт май 13, 2016 14:23:42
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Даташит мне тяжело дается. Поэтому смотрю в него и мало чего понимаю.

Реализовывать как указали Вы я не стал. Слишком сложно. Я посмотрел эти два Special Event Trigger с огромной кучей настроек. CTMU мне понравился больше.

Все это необходимо лишь для того чтобы время между замерами АЦП, ( 12 ...
KyJek
Пт май 13, 2016 10:40:15
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

написал вот так инит добавил в конце строку

BSF ADCON0, GO ; Start conversion



INIT_ADC
; Настройка АЦП. Измеряем два канала: AN0 и AN19
MOVLW 0f
MOVWF BSR
BSF TRISA,TRISA0 ; 1 - Как вход
BSF TRISC,TRISC7 ; 1 - Как вход
BSF ANSELA,ANSA0 ; 1 - AN0 как аналоговый вход
BSF ANSELC,ANSC7 ...
KyJek
Пт май 13, 2016 09:56:55
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Прерывание вызывается только в том случае если бит go поднят.
При вызове прерывания он автоматически сбрасывается и поднимается флаг PIR1, ADIF.
Если в дальнейшем флаг go не понимать то больше прерываний возникать не будет.

Возможно надо в обработчик прерывания добавить поднятие флага Go?
KyJek
Пт май 13, 2016 08:39:50
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

я отлаживаю в MPLAB 8.92 дебагером MPLAB SIM.

Хм. сделал как Вы написали и пока инит висел в цикле


BSF ADCON0, GO ;Start conversion
ADCPoll:
BTFSC ADCON0, GO ;Is conversion done?
BRA ADCPoll ;No, test again


Прерывание низкого уровня было вызвано. И даже с поднятым флагом что это ...
KyJek
Пт май 13, 2016 07:58:21
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

если Я Вас правильно понял, то я уже что то подобное делал.

Добавлял в конце инита такие строки



BSF ADCON0,GO ;Start conversion
ADCPoll:
BTFSC ADCON0,GO ;Is conversion done?
BRA ADCPoll ;No, test again
MOVFF ADRESH, ADC_RESULT


значение получаю, а вот в прерывание при этом все равно не ...
KyJek
Пт май 13, 2016 02:04:17
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Если посмотреть код который я выкладывал выше то я разрешил глобальное прерывание.

Код: Выделить всё

  BSF INTCON,GIEH      ;Global Interrupt Enable
   BSF INTCON,GIEL      ;Peripheral Interrupt Enable
KyJek
Пт май 13, 2016 01:30:38
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Знаю. это задел на будущее. Вот которое сейчас пытаюсь реализовать.
Почему то не работают прерывания от ацп.
у меня AN19

INIT_ADC
; Настройка АЦП. Измеряем два канала: AN0 и AN19
MOVLW 0f
MOVWF BSR
BSF TRISA,TRISA0 ; 1 - Как вход
BSF TRISC,TRISC7 ; 1 - Как вход
BSF ANSELA,ANSA0 ; 1 - AN0 ...
KyJek
Пт май 13, 2016 00:15:45
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

нет не в курсе. первый раз пишу программу. делаю это для того чтобы когда попал в прерывание сохранить старое значение регистров.
KyJek
Ср май 11, 2016 17:58:46
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Заработало, но с очисткой какие то проблемы
KyJek
Ср май 11, 2016 14:13:24
Форум: PIC
Тема: PIC + SSD1306
Ответы: 31
Просмотры: 13422

Re: PIC + SSD1306

Оу . т.е. я при ините не опустил, а поднял D/C ?

получается правильно в интите оледа

Код: Выделить всё

BSF _OLED_RES
	BCF _OLED_DC	 				
	BCF _OLED_CS

Перейти к расширенному поиску