Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
povitboshko
0 / 0 / 0
Регистрация: 31.03.2010
Сообщений: 30
1

TWI+ds1621

06.06.2010, 00:01. Просмотров 2613. Ответов 0
Метки нет (Все метки)

Доброго времени суток!
Подскажите как вытащить значение температуры с ds1621, может кто готовым решение поделиться, или мой код посмотрит, а то упорно возвращает 0, хотя при отладке в протеусе пишет что ds1621 завершил преобразование и держит у себя ячейках значение температуры.
Код
#define SLAW_W 0b10010000
#define SLAW_R 0b10010001
#define Start_Convirt 0oAA
#define Read_Temp 0oAA

#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
char data;
int res_data;

void iic_stort()
{
TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(0<<TWIE);
while (!(TWCR &(1<<TWINT)))
;
}

void iic_stop()
{
TWCR = (1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
while (!(TWCR &(1<<TWSTO)))
;
}

void iic_send_byte()
{
TWDR=data;
TWCR|=(1<<TWINT)|(1<<TWEN)|(0<<TWIE);
while (!(TWCR &(1<<TWINT)));
{;}
}

void iic_receve_byte()
{
TWCR|=(1<<TWINT)|(1<<TWEN)|(1<<TWEA)|(0<<TWIE);
while (!(TWCR &(1<<TWINT)));
{
;
}
res_data=TWDR;

}

void iic_receve_byte_nask()
{
TWCR|=(1<<TWINT)|(1<<TWEN)|(0<<TWEA)|(0<<TWIE);
while (!(TWCR &(1<<TWINT)));
{
;
}
res_data=TWDR;

}

void main()

{

TWBR=12;
data=0;
res_data=0;
//1.1
iic_stort();
//1.2
//data=SLAW_W;
data=SLAW_W;
iic_send_byte();
//1.3
//data=0oAA;
data=0xEE;
iic_send_byte();
//1.4
iic_stop();

//2
_delay_us(2);

data=0;
res_data=0;

//3.1
iic_stort();
//3.2
data=SLAW_W;
iic_send_byte();
//3.3
data=0x22;
iic_send_byte();
//3.4
iic_stop();

_delay_us(2);
//4.1
//data=0;
//res_data=0;
iic_stort();
//4.2
data=SLAW_W;
iic_send_byte();
//4.3
data=0xAA;
iic_send_byte();
//4.4
iic_stort();
//4.5
data=SLAW_R;
iic_send_byte();
//4.6
iic_receve_byte_nask();
//4.7
iic_stop();

for (;;)

;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2010, 00:01
Ответы с готовыми решениями:

DS1621
Всем здравствуйте! Захотелось заставить работать сию микросхему в режиме термостата т.е....

вопрос ds1621
Подключил ds1621 к меге16. До этого на шине успешно висели и работали ds1307 и tda7313....

ATMega16 + DS1621
Уважаемые специалисты! Проблема в следующем: 1. ATMiko16 + DS1621. Смоделировал схему в...

Датчик температуры DS1621
Вот есть такой датчик. Подключил к AVR. У меня вывод идет прямо в двоичном коде на мониторчик.. но...

TWI
Всем привет) Подскажите, пожалуйста, ошибку. Сразу скажу, сам искал, читал, ни чего не нашел,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2010, 00:01

SPI v.s. TWI
Задумался об организации совместной работы 2-х платок на атмегах-сестрах (48 и 168). Рассматривал...

Модуль TWI
Привет всем. Копаюсь с TWI в ATmega8, с этим модулем опыта у меня нет, поэтому закопался в начале....

Не проходит инициализация TWI
Добрый день! Мучаюсь с TWI Хочу в учебных целях подключить внешнюю память типа 24C64a Взял...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru