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

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
Форум Picbasic.ru » Программирование МК » Proton PicBasic » 24с04 и PIC16f74 (Проблема записи значений по I2C)
24с04 и PIC16f74
Newer-1986 Дата: Пт, 20.04.2012, 11:55  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 27.02.2012

Статус: Offline

Возникла такая необходимость с помощью микроконтроллера PIC16f74 полностью очистить eeprom 24c04. Пробовал писать программу в цикле записывать подряд FF.Но при симулировании в протеусе вылазит куча ошибок и при изменении программы и передачи по 6 байтов передача как бы проходит. Смотрел пример в книге по Протону, там eeprom другая стоит и принимает все значения подряд, при установке 24с04 ничего не происходит. Помогите пожалуйста с программой, ни как не могу решить эту проблему.

Device = 16F74
Xtal = 4

Declare SCL_Pin = PORTC.3
Declare SDA_Pin = PORTC.4

Dim Loop As Word

BStart
BusOut %10100000
BusOut 0
BusOut 0
For Loop = 0 To 100
BusOut 255
Next
BStop
DelayMS 10

Stop
Прикрепления: bstart.bas (0.7 Kb)
ЯНДЕКС Дата: 20.04.2012
sangre11 Дата: Пт, 20.04.2012, 17:13  |                                                                                                                Сообщение # 2
Группа: Удаленные
Ранг: 
Сообщений:
Репутация:   ±
Замечания:   ±
На сайте с

Статус:

Я думаю так надо реализовать. только проц 16f690 но сути не меняет.

;-------------------------- Общие настройки------------------------------------
Config FCMEN_ON, IESO_ON, BOREN_ON, CPD_OFF, CP_OFF, MCLRE_ON, PWRTE_OFF, WDT_ON, EXTRC_OSC_CLKOUT, BOREN_ON, WDT_ON, XT_OSC

Device = 16F690 ' Используемый микроконтроллер
Xtal = 4 ' Частота осциллятора 4 МГц

'-------------------------- Настройки подключения ЖКИ ------------------------
Declare LCD_DTPin = PORTC.4
Declare LCD_RSPin = PORTC.1
Declare LCD_ENPin = PORTC.0
Declare LCD_Lines = 1
Declare LCD_Interface = 4

'-------------------------- Настройки устройств I2C --------------------------

Declare SDA_Pin PORTB.4 ' Линия SDA шины I2C
Declare SCL_Pin PORTB.6 ' Линия SCL шины I2C
Declare Slow_Bus OFF ' Выключить замедление при OSC > 4 Мгц
Declare BUS_SCL OFF ' Выключить режим работы шины SCL без подтягивающего резистора

'-------------------------- Настройки портов ---------------------------------

PortB_Pullups = On ' Включить подтягивающие резисторы на PORTB
Declare All_Digital = On ' Установить все порты цифровыми входами/выходами

CM1CON0 = 0
CM2CON0 = 0
CM2CON1 = 0
ANSELH = 0
ANSEL = 0
TRISB = %01010000

Dim B1 As Byte 'data clear
Dim B2 As Byte 'dlja ponta
Dim addressme As Word
addressme = 0 'address cell count

Loop: 'main loop
For addressme = 0 To 65000 'from 0 cell to cell number 65000(or other)
B2 = addressme
B1 = $FF 'ta hren' cnto nado zapisat', v dannom sluchae, kak ja ponjal nado FF

BStart
BusOut %10100000, B2, [B1] 'zapis' znachenija v jacheiki

DelayMS 10

BStop

Print At 1,1,Dec addressme 'vyvod na ekran znachenuja schotchika
DelayMS 30
Next
GoTo Loop
Прикрепления: 1754319.jpg (104.2 Kb) · 9909333.jpg (136.1 Kb) · intertest.asm (23.3 Kb) · intertest.bas (2.5 Kb)

Сообщение отредактировал sangre11 - Пт, 20.04.2012, 17:28
Newer-1986 Дата: Сб, 21.04.2012, 20:26  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Новенький
Сообщений: 2
Репутация: 0   ±
Замечания:   ±
На сайте с 27.02.2012

Статус: Offline

Спасибо большое!!!Разобрался.
доцент2 Дата: Вт, 05.03.2013, 23:24  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 287
Репутация: 10   ±
Замечания:   ±
На сайте с 13.09.2011

Статус: Offline

помогите разобраться с чтением из 24С01B или любой другой EEPROM
с помощью PicKit составил простенький бинарный файл, рис.
теперь с помощью программки пытаюсь считать данные по адресу, например $02

Symbol Lcd_SDA_EEPROM=PORTB.6    ' pin 12Symbol Lcd_CLK_EEPROM=PORTB.5    ' pin 11Dim A As Word  ‘адресDim AA As Word ‘переменная считыванияА=$02BusIn $A0, A,
[AA]но получаю -1, а должно быть $1С или 28.
причем перебирал адреса с 00 до 05, но получаю только -1
подскажите в чем ошибка.
Прикрепления: 2089386.jpg (126.4 Kb)
Форум Picbasic.ru » Программирование МК » Proton PicBasic » 24с04 и PIC16f74 (Проблема записи значений по I2C)
  • Страница 1 из 1
  • 1
Поиск: