Судя по графикам, бит SEN регистра SSP1CON2 начинает цикл записи.
т.е. изначально SEN должен быть 1. потом записать в ssp1buf команду и опустить SEN в 0.
ждать прерывание пока SSP1IF не станет 1 и отработает прерывание которое запишет значение из ssp1buf в временную переменную, которую я отработаю ...
Найдено 183 результата
- Пт июл 29, 2016 13:36:29
- Форум: PIC
- Тема: pic18f26k22 i2c
- Ответы: 10
- Просмотры: 4339
- Пт июл 29, 2016 12:30:06
- Форум: PIC
- Тема: pic18f26k22 i2c
- Ответы: 10
- Просмотры: 4339
Re: pic18f26k22 i2c
Полностью с Вами согласен. На данный момент мне важнее понять как отправить и получить данные нежели следить за ходом цикла работы системы в целом.
Я правильно понимаю что записав в ssp1buf число i2c отправит его si и вернет ответ в ssp1buf подняв флаг прерывания ?
Я правильно понимаю что записав в ssp1buf число i2c отправит его si и вернет ответ в ssp1buf подняв флаг прерывания ?
- Пт июл 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 ...
Для этого воспользуюсь прерыванием.
Флаг прерывания храниться в регистре PIR1.
Бит 3 этого регистра SSP1IF: Master Synchronous Serial Port 1 Interrupt Flag bit
1 = The transmission/reception is complete (must be ...
- Ср июл 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 ...
Для включения MSSP1 отвечает 6-бит регистра PMD1 с названием MSSP1MD.
Включенным считается, когда он равен 0. Кроме него ничего включать не надо поэтому
MOVLW B'10111111'
MOVWF PMD1
Переходим к настройке.
#define SET_SSP1CON1 B'00101000'
Первые 4 бита говорят о выборе 1000 ...
- Вт июл 26, 2016 19:33:59
- Форум: PIC
- Тема: pic18f26k22 i2c
- Ответы: 10
- Просмотры: 4339
Re: pic18f26k22 i2c
У меня к мк подключён дисплей, всю интересующую меня информацию вывожу на него. В данном случае я даже не знаю как инициализировать i2c не говоря о том что получить данные!
- Вт июл 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 приложенной ниже указано, что сначала ...
Что я имею?
По i2c я буду связываться с si4703.
выводы соединил так:
PIC - SI
RC3 - SCLK
RC4 - SDIO
RC5 - SEN
RC6 - RST
RA3 - GPIO2
по документации на si приложенной ниже указано, что сначала ...
- Сб май 14, 2016 11:47:13
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Дамс.
Теперь все заработало.
Самое обидное что мне даже в голову это не пришло. А ведь я уже вкл. периферию.
Теперь все заработало.
Самое обидное что мне даже в голову это не пришло. А ведь я уже вкл. периферию.
- Сб май 14, 2016 11:36:01
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Не могу никак понять почему регистры ADCONx после инициализации все равны 0?
MOVLW B'01001101'
MOVWF ADCON0
а он в итоге равен 0. Что за ерунда. Банки памяти проверил. Банк стоит 0F.
MOVLW B'01001101'
MOVWF ADCON0
а он в итоге равен 0. Что за ерунда. Банки памяти проверил. Банк стоит 0F.
- Пт май 13, 2016 15:50:44
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Я считаю тад для того чтобы выдержать время между вызовами преобразований ацп. Если я просто при каждои прерывании таймера буду поднимать го в 1 то может получится так что ацп еще не выполнит преобразование за свои 12 тадс а я уже поднял го. 2тадс мин задержки в таком случае я не выдержал. А я ...
- Пт май 13, 2016 14:53:12
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Просто у меня уже есть таймер 2 который я запустил с частотой в 1 Герц. По нему я считаю задержки. перед подачей команд, вкл питания и т.д. в него я прикрутил и подсчет задрежек по АЦП. Мне абсолютно все равно через сколько секунд будет получено новое значение АЦП. Это заряд аккумулятора. Я могу ...
- Пт май 13, 2016 14:23:42
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Даташит мне тяжело дается. Поэтому смотрю в него и мало чего понимаю.
Реализовывать как указали Вы я не стал. Слишком сложно. Я посмотрел эти два Special Event Trigger с огромной кучей настроек. CTMU мне понравился больше.
Все это необходимо лишь для того чтобы время между замерами АЦП, ( 12 ...
Реализовывать как указали Вы я не стал. Слишком сложно. Я посмотрел эти два Special Event Trigger с огромной кучей настроек. CTMU мне понравился больше.
Все это необходимо лишь для того чтобы время между замерами АЦП, ( 12 ...
- Пт май 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 ...
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 ...
- Пт май 13, 2016 09:56:55
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Прерывание вызывается только в том случае если бит go поднят.
При вызове прерывания он автоматически сбрасывается и поднимается флаг PIR1, ADIF.
Если в дальнейшем флаг go не понимать то больше прерываний возникать не будет.
Возможно надо в обработчик прерывания добавить поднятие флага Go?
При вызове прерывания он автоматически сбрасывается и поднимается флаг PIR1, ADIF.
Если в дальнейшем флаг go не понимать то больше прерываний возникать не будет.
Возможно надо в обработчик прерывания добавить поднятие флага Go?
- Пт май 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
Прерывание низкого уровня было вызвано. И даже с поднятым флагом что это ...
Хм. сделал как Вы написали и пока инит висел в цикле
BSF ADCON0, GO ;Start conversion
ADCPoll:
BTFSC ADCON0, GO ;Is conversion done?
BRA ADCPoll ;No, test again
Прерывание низкого уровня было вызвано. И даже с поднятым флагом что это ...
- Пт май 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
значение получаю, а вот в прерывание при этом все равно не ...
Добавлял в конце инита такие строки
BSF ADCON0,GO ;Start conversion
ADCPoll:
BTFSC ADCON0,GO ;Is conversion done?
BRA ADCPoll ;No, test again
MOVFF ADRESH, ADC_RESULT
значение получаю, а вот в прерывание при этом все равно не ...
- Пт май 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- Пт май 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 ...
Почему то не работают прерывания от ацп.
у меня AN19
INIT_ADC
; Настройка АЦП. Измеряем два канала: AN0 и AN19
MOVLW 0f
MOVWF BSR
BSF TRISA,TRISA0 ; 1 - Как вход
BSF TRISC,TRISC7 ; 1 - Как вход
BSF ANSELA,ANSA0 ; 1 - AN0 ...
- Пт май 13, 2016 00:15:45
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
нет не в курсе. первый раз пишу программу. делаю это для того чтобы когда попал в прерывание сохранить старое значение регистров.
- Ср май 11, 2016 17:58:46
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Заработало, но с очисткой какие то проблемы
- Ср май 11, 2016 14:13:24
- Форум: PIC
- Тема: PIC + SSD1306
- Ответы: 31
- Просмотры: 13422
Re: PIC + SSD1306
Оу . т.е. я при ините не опустил, а поднял D/C ?
получается правильно в интите оледа
получается правильно в интите оледа
Код: Выделить всё
BSF _OLED_RES
BCF _OLED_DC
BCF _OLED_CS