реклама на сайте
подробности

 
 
> Программный I2C на AVR, Прошу совета
Errorkpi
сообщение Sep 20 2011, 10:44
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 41
Регистрация: 14-04-09
Пользователь №: 47 659



Пытаюсь написать программный I2C. Хочу "Дрыгать ногами", но вот незадача, на сайте ув. DI HALT есть такая фраза:"Ни в коем случае нельзя переключать вывод микроконтроллера в OUT и дергать ногу на +5".
Испугавшись за МК или устройство таргет, хочу сделать вот так:

Код
#include <iotiny85.h>
#include <intrinsics.h>

#define i2c_port PORTB
#define i2c_ddr DDRB
#define i2c_scl DDB0
#define i2c_sda DDB1

void i2c_init(void)
{
   //ставим порт в Tri-state (Hi-Z)
  i2c_port=(0<<i2c_scl | 0<<i2c_sda);
  __no_operation();
  i2c_ddr=(0<<i2c_scl | 0<<i2c_sda);
}

int main()
{
  i2c_init();

  while(1)
  {
   //дрыгаю ногами
    i2c_ddr=1<<i2c_scl; // Output Low (Sink)
    __delay_cycles(50);
    i2c_ddr=0<<i2c_scl; // Tri-state (Hi-Z)
    __delay_cycles(50);
  }
}


В общем-то вопрос: не сожжет ли такой вариант "дрыгания ногами" МК или устройство таргет. Читать буду тоже в режиме Tri-state (Hi-Z).
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 13th August 2025 - 21:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016