Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
I2C протокол.
xaker-sss Дата: Чт, 05.03.2015, 11:08  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 208
Репутация: 6   ±
Замечания:   ±
На сайте с 26.04.2009

Статус: Offline

Доброго всем, первый раз связался с I2C, и не чего понять не могу, посылаю командой:
BusOut %00010001
а на выходе вижу 00100011 видно по осциллограмме, что может быть, непонимаю.
Код программы:
Код
Device = 16F628A   ' Èñïîëüçóåìûé ìèêðîêîíòðîëëåð
Xtal = 4   ' ×àñòîòà îñöèëëÿòîðà  4 ÌÃö
                    
'-------------------------- Êîíôèãóðàöèÿ ïðîãðàììèðîâàíèÿ --------------------
                    
Config BODEN_OFF, PWRTE_ON, WDT_OFF, LVP_OFF, MCLRE_OFF, INTRC_OSC_NOCLKOUT, CP_ON, DATA_CP_ON

Declare SDA_Pin PORTA.6
Declare SCL_Pin PORTA.7

Declare BUS_SCL On
Declare Slow_Bus On
                    
Declare All_Digital = On ' Ñäåëàòü âñå ïîðòû öèôðîâûìè

  Symbol But PORTB.1  
                    
'-------------------------- Ãëàâíàÿ ïðîãðàììà -------------------------
TRISA = 0
TRISB = 0
                    
Loop:

TRISB = %00000010
If But = 0 Then GoSub Init
TRISB = %00000000  
DelayMS 1000
                    
GoTo  Loop   ' Âîçâðàò íà íà÷àëî îñíîâíîé ïðîãðàììû

Init:
'BStart  
BusOut %00010001
'BStop  
Return
End
Прикрепления: 1696325.jpg (171.3 Kb)


ПРОТОН ЭТО ВЕЩЬ.
ЯНДЕКС Дата: 05.03.2015
shaman Дата: Чт, 05.03.2015, 16:17  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 178
Репутация: 5   ±
Замечания:   ±
На сайте с 07.11.2011

Статус: Offline

А что к контроллеру подключено , память или расширитель . У меня проблем не возникло с I2C вот только позавчера закончил разбираться с микрухой PCF8574

Добавлено (05.03.2015, 16:17)
---------------------------------------------
Вот как у меня это происходит:
Device 16F628A
Declare Create_Coff = On
Declare All_Digital = On ' Установить все порты цифровыми входами/выходами
Declare Reminders = OFF
Config CP_OFF , DATA_CP_OFF , WDT_OFF , XT_OSC , MCLRE_OFF , LVP_OFF , BODEN_OFF , PWRTE_OFF 
Declare Reminders = On
Declare Xtal 4
'***********************************************************************
;---------------------Установки Портов----------------------------------
TRISA = %00000000     ' Порты на выход
TRISB = %00000000     ' Для прерывания по PORTB.0 INT, порт на вход 
PORTA = %00000000     ' Начальные установки PORTA
PORTB = %00000000     ' Начальные установки PORTВ
OPTION_REG = %10000000 ' Подтягивающие резисторы выключены
'***********************************************************************
;---------------------Переименнуем Порты--------------------------------
Declare SDA_Pin = PORTA.1
Declare SCL_Pin = PORTA.0
'*********************************************************************** 
;---------------------Переменные----------------------------------------
Dim MM As Byte ' Переменная для цикла
Dim M  As Byte ' Переменная для конвертации 
'***********************************************************************
'-------------------- Начало основной программы ------------------------
'***********************************************************************
;------------Программа мигания светика на "выводеР6" PCF8574------------
Main:
For MM = 0 To 8   
    M = LookUp MM,[1, 2, 4, 8, 16, 32, 64, 128]    
BStart                        
BusOut ...... 
BusOut M    
BStop 
  DelayMS 100
Next MM    
GoTo Main

  • Страница 1 из 1
  • 1
Поиск: