Помогите прикрутить TMP04 к tiny12...

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

Помогите прикрутить TMP04 к tiny12...

Сообщение $ilent » 11 сен 2007, 11:48

Может здесь поможете...
Суть проблемы:
Для вычисления температуры с датчика существует формула:
T°C = 235 - 400*T1/T2;
T1 - длительность 1 - максимум 12 мс;
Т2 - длительность 0 - максимум 43 мс;
Вообщем, если считать в мс, то двубайтных переменных хватает чтобы вычислить температуру, но точность ни куда.
Но бля нормальной точности длительноть необходимо брать в мкс, тогда результат первых вычислений (400*Т1) получается трёх байтный, а в tiny12 нет четырёх байтных переменных.
Как их двух двубайтных собрать одну четырех байтную переменныю, или может другой выход есть?
Спс.
$ilent
 

Сообщение -= Александр =- » 11 сен 2007, 12:53

Можно сначала посчитать Т1/Т2...
А можно 0,5875-Т1/Т2

Или 2,35-4*Т1/Т2 - даст ответ в десятичных долях градуса.
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение $ilent » 11 сен 2007, 13:17

-= Александр =- писал(а):Можно сначала посчитать Т1/Т2...
А можно 0,5875-Т1/Т2

Или 2,35-4*Т1/Т2 - даст ответ в десятичных долях градуса.

12000/43000 = 0,27906976744186046511627906976744
К сожалению не умею работать с запятой...
2,35-4*Т1/Т2 - пробывал, точность уходит также как и с мс.
Надо что-то вроде:

Код: Выделить всё
unsigned long T1_2=0; // первая половинка
unsigned long T2_2=0; // вторая половинка

T1_2 = 400*T1;
T2_2 = (int)400*T1 << 16;
О блин написал :shock: Получается сначала запутывать, потом распутывать...
Интересно, что этот код даст?
$ilent
 

Сообщение $ilent » 11 сен 2007, 13:36

На казусе посоветывали среду поменять на AvrStudio.
Вопрос: а нет ли матчасти на неё, почитать?
Сам дистрибутив есть.
Буду признателен.
$ilent
 

Сообщение avr123.nm.ru » 11 сен 2007, 13:46

$ilent писал(а):На казусе посоветывали среду поменять на AvrStudio.
Вопрос: а нет ли матчасти на неё, почитать?


Почти всё касаемо AVR есть в моем курсе http://avr123.nm.ru/      - так показывает практика.

AvrStudio я вам СИЛЬНО не советую!

Но в курсе КОНЕЧНО ЖЕ есть инструкция по работе с AvrStudio для начинающих:
http://avr123.nm.ru/04.htm
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение avr123.nm.ru » 11 сен 2007, 13:49

$ilent писал(а):К сожалению не умею работать с запятой...


CVAVR умеет !  Рекомендую.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение $ilent » 11 сен 2007, 15:47

avr123.nm.ru писал(а):
$ilent писал(а):К сожалению не умею работать с запятой...


CVAVR умеет !  Рекомендую.

Но он не работает с тини12...
$ilent
 

Сообщение steel_monkey » 11 сен 2007, 22:28

Не советовать АВРстудию это на мой взгляд слишком круто ( чесно, от Вас такого не ожидал. Во всех обучалках языкам высокого уровня сразу советуют ставить компилятор ЯВУ и студию).
По теме: Про студию можно почитать у Баранова в книге " Применение микроконтроллеров АВР: схемы, алгоритмы, программы". Точно знаю, что она есть в сети, и в ней неплохо описаны алгоритмы установки, запуска, набора и отладки. По поводу алгоритма: аппноут AVR200 на сайте Atmel.com. Процедуры 8ти и 16ти битного деления и умножения, коды прилагаются. Думаю, что 32-битные тоже сделать возможно.

[off] За что я не люблю С, так это за то, что его надо знать. А на асме- есть список команд, и впуть. Хотя главное-идея. А реализация, что на С, что на асме- дело техники. [/off]
Аватара пользователя
steel_monkey
 
Сообщения: 346
Зарегистрирован: 14 июл 2007, 23:38
Откуда: SPb
прог. языки: немного албанский

Сообщение avr123.nm.ru » 12 сен 2007, 01:40

steel_monkey писал(а):Во всех обучалках языкам высокого уровня сразу советуют ставить компилятор ЯВУ и студию.


В моей не советуется.  :lol:
Последний раз редактировалось avr123.nm.ru 12 сен 2007, 01:43, всего редактировалось 1 раз.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение avr123.nm.ru » 12 сен 2007, 01:41

$ilent писал(а):
avr123.nm.ru писал(а):
$ilent писал(а):К сожалению не умею работать с запятой...


CVAVR умеет !  Рекомендую.


Но он не работает с тини12...


Можно операции для другого сделать и посмотреть АСМ листинг.  Или Тини13 попробуйте.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение -= Александр =- » 12 сен 2007, 11:08

Хм... А ICC-Tiny не умеет?
Аватара пользователя
-= Александр =-
Мастер Самоделкин
 
Сообщения: 3678
Зарегистрирован: 11 окт 2004, 19:20
Откуда: Россия, СПб
прог. языки: C/C++, Python, asm
ФИО: Курмис Александр Андреевич

Сообщение $ilent » 12 сен 2007, 11:15

-= Александр =- писал(а):Хм... А ICC-Tiny не умеет?

Я в нём и писал, он не работает с 4-х байтными переменными.
Код: Выделить всё
TYPE   SIZE (bytes)   RANGE
unsigned char   1   0..256
signed char   1   -128..127
char (*)   1   0..256
unsigned short   1   0..256
(signed) short   1   -128..127
unsigned int   2   0..65535
(signed) int   2   -32768..32767
unsigned long   2   0..65535
(signed) long   2   -32768..32767
$ilent
 

Сообщение avr123.nm.ru » 12 сен 2007, 11:19

Дивный LONG однако  !

Тини13 то чем не устраивает ???

Или АСМ код из листинга для другого МК ?
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

Сообщение $ilent » 12 сен 2007, 12:04

avr123.nm.ru писал(а):Дивный LONG однако  !

Тини13 то чем не устраивает ???

Или АСМ код из листинга для другого МК ?

Дело в том, что шью понипрогом, а он поддерживает только тини12,15,22
Обычный ИСС работает с тини 2313,13,26
А вот, что пишет мне Студио:
Изображение
Я так понял, что поддержка Си для тини12 в компиляторе отсуствует... только АСМ...
А я АСМ вообще ни бум бум...
$ilent
 

Сообщение avr123.nm.ru » 12 сен 2007, 12:19

$ilent писал(а):
avr123.nm.ru писал(а):Дивный LONG однако  !

Тини13 то чем не устраивает ???

Или АСМ код из листинга для другого МК ?


Дело в том, что шью понипрогом, а он поддерживает только тини12,15,22


Дак шейте из CVAVR.
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14195
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва

След.

Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17