ВНИМАНИЕ! На форуме начался конкурс - астрофотография месяца ИЮЛЬ!
0 Пользователей и 3 Гостей просматривают эту тему.
Иван, в данном конкретном случае анализ бита готовности приведет только к снижению общего быстродействия. Поскольку прерывания невозможны, то лучше всего выполнить гарантированно большую задержку и затем считывать данные. Задержку можно выполнить не отдельным куском кода, а например кол-вом циклов фоновой работы. Т.Е. дал команду temperature_start затем отсчитал например 50-100 циклов опроса клавиатуры, затем температуру прочитал.
i2start(); i2write(0x90 | (termometr * 2)); // режим записи i2ack(); i2write(0xAC); // Reads or writes the 1-byte configuration register. i2ack(); i2start(); i2write( 0x91 | (termometr * 2) ); // режим чтения i2ack(); char fl = i2read(); i2nack(); i2stop();char ready = fl & 0x80;
Иван, постараюсь разобраться, но до завтра. Сейчас можешь посмотреть этот документ - http://pdfserv.maxim-ic.com/en/an/app135.pdf . И этот http://pdfserv.maxim-ic.com/en/ds/DS1631-DS1731.pdf на 14 странице.
Работу с флагом готовности сегодня вечером проверю.
Может лучше таймер использовать?
Цитата: Ivan7enych от 20 Дек 2007 [16:53:57]Работу с флагом готовности сегодня вечером проверю.Может лучше таймер использовать?http://www.sax.de/~joerg/avr-timer/
Цитата: Александр Л. от 19 Дек 2007 [17:42:40]либо заниматься изучением временной диаграммы шины I2C, точнее ее микропрограммной реализацииСкорее всего, именно это и нужно смотреть. Очень смущает функция pause1:
либо заниматься изучением временной диаграммы шины I2C, точнее ее микропрограммной реализации
Вот фронты
[offtop]PCSU1000?[/offtop]
С памятью проблемы, я не могу интегрировать код DS1820 в прошивку.Может перенести все строковые константы в еепром?
AVR Memory Usage:-----------------Device: atmega16Program: 11976 bytes (73,1% Full)(.text + .data + .bootloader)Data: 1009 bytes (98,5% Full)(.data + .bss + .noinit)EEPROM: 140 bytes (27,3% Full)(.eeprom)
Он, родимый.
Можно. Там какую-то приставку перед строчкой писать надо?
Кстати, чем ты требуемую память смотришь? WinAvr выдает что-то другое.
Память смотрю этим. Взято отсюда.
gcc-4 - фтопку.
Только читая эти переменные в буфер в памяти, пользуйся, пожалуйста, библиотечными функциями из avr/eeprom.h.eeprom_io.h их полностью повторяет. Зачем дублировать код?
Странно...Кста, cегодня вышел новый WinAVR. http://sourceforge.net/project/showfiles.php?group_id=68108
Попробовал: код получился на 1кб больше, оперативной памяти потребовал ровно на 256 байт больше.Сравнивал с версией от 20060421.
Может какие ключи есть, чтобы он так не делал?
Simply adding: * CFLAGS += -ffunction-sections * LDFLAGS += -Wl,--gc-sections
------- Comment #12 From Mark Mitchell 2007-10-09 19:22 -------Change target milestone to 4.2.3, as 4.2.2 has been released.
2. отказаться от использования float в программе.