Jump to content

    

mandrew

Участник
  • Posts

    15
  • Joined

  • Last visited

Reputation

0 Обычный

About mandrew

  • Rank
    Участник
    Участник

Контакты

  • ICQ
    Array
  1. Как вариант можно рассмотреть радиочип AT86RF230(231). Устройство ATmega1281 + AT86RF230 в спящем режиме потребляет несколько микроампер. Можно купить готовые модули Radiocraft, Meshnetics (Atmel) и т.п.
  2. Добрый день! Кто-нибудь запускал USB_CDC_Skeleton_15 на C8051F3XX с моделью памяти large? А то перешел с --model-small на --model-large и что-то внутри стека поломалось. USB устройство перестало определяться. Использую SDCC компилятор. Google никаких положительных результатов не дал.
  3. Как на счет объявить переменные с квалификатором volatile, а ввод/вывод сделать на асме.
  4. http://electronix.ru/forum/index.php?showtopic=52634
  5. Цена на модули можно посмотреть здесь: http://www.terraelectronica.ru/catalog.php?ID=789 Десятками рублей точно не обойтись. Один только чип (радио + мк) стоит $4-6 (к примеру, MC1321x от Freescale). http://search.digikey.com/scripts/DkSearch...keywords=MC1321 Вопрос: Зачем тебе нужен ZigBee, если задача - только передавать данные между двумя устройствами? Если не нужен роутинг, то можно ограничится несложным собственным софтом, ну или использовать готовые библиотеки стандарта IEEE 802.15.4. Если это Freescale, то можно заюзать SMAC или 802.15.4MAC. У производителя есть уже готовые примеры соединений точка-точка. Если не нравится Freescale, то можно, к примеру, взять модули от Meshnetics, построенные на ATmega1281 и AT86RF230. Либо самому сделать такую связку. Компания тоже предоставляет библиотеки MAC уровня, помимо стека ZigBee. Софт поверх MAC-а получается меньше по размеру, с меньшим кол-вом ошибок и пропускная способность выше.
  6. 1) А просто printf у вас работает, если не использовать обработчиков прерываний по приему, по окончании передачи, по свободному регистру UDRn?
  7. Ниже пример программы, показывающий как во время выполнения программы (мигание 1-ым светодиодом) зажечь 2-ой светодиод по нажатию кнопки. Короче говоря, показан обработчик внешнего прерывания. Компилятор - avr-gcc. #include <avr/io.h> #include <avr/interrupt.h> volatile uint8_t led2IsOn = 0; int main(void) { uint8_t led1IsOn = 0; // Конфигурируем порт на выход. DDRB |= (1 << DDB6) | (1 << DDB5); // Настраиваем порт на котором висит кнопка на вход. DDRE &= ~(1 << DDE6); PORTE |= (1 << PORTE6); // Прерывание по возрастающий фронту сигнала. EICRB = (1 << ISC61) | (1<< ISC60); sei(); // Глобальное разрешение прерываний. EIMSK |= (1 << INT6); // Разрешаем внешнее прерывание, заведенное на PORTE6. // Бесконечный цикл. while(1) { uint16_t i; // Задержка. for(i = 65535; i != 0; i--); if(led1IsOn) { led1IsOn = 0; PORTB &= ~(1 << PORTB5); // Выключаем светодиод 1. } else { led1IsOn = 1; PORTB |= (1 << PORTB5); // Включаем светодиод 1. } } } // Обработчик прерывания. SIGNAL(SIG_INTERRUPT6) { if(led2IsOn) { led2IsOn = 0; PORTB &= ~(1 << PORTB6); // Выключаем светодиод 2. } else { led2IsOn = 1; PORTB |= (1 << PORTB6); // Включаем светодиод 2. } }
  8. Ссори, за дизинфу, алгоритмы чтения температуры у них действительно разняться. Но задержки в определении presence pulse, задержки в чтении и записи битов одинаковые. Таким образом из проекта будут полезны ф-ции: // Инициализация 1-Wire устройств unsigned char wr1_init(void); // Чтение байта с шины 1-Wire unsigned char wr1_read(void); // Запись байта по шине 1-Wire void wr1_write(unsigned char data); Ну а дальше берешь даташиты, исходные кода и решаешь задачу "Найди пять отличий".
  9. Да, пример был, показывающий как вызывать библиотечные ф-ции, которых в поставке не было. Поэтому их пришлось писать самому, правда, пару ассемблерных строк стащил с какого-то друго проекта :)
  10. Выкладываю еще свой университетский код (там еще комментарии на русском :) ), написанный под CodeVisionAVR 1.24.6. Использовался DS1820 вместо DS1821, но отличия там не существенны. А так в инете много Application Notes для работы с 1-Wire устройствами. http://www.maxim-ic.com/products/1-wire/ тебе поможет. DS1820_with_ATMEGA16.rar
  11. Пробовали подключаться к другому компу, может на вашем вышел из строя преобразователь уровней на прием или т.п.
  12. Иногда встречаются статьи по беспроводным технологиям (NanoNet, Bluetooth, ZigBee, ...) в журнале "Компоненты и Технологии".