Jump to content

    

mandrew

Участник
  • Content Count

    15
  • Joined

  • Last visited

Community Reputation

0 Обычный

About mandrew

  • Rank
    Участник
  1. Дешевая радиопередача данных

    Как вариант можно рассмотреть радиочип AT86RF230(231). Устройство ATmega1281 + AT86RF230 в спящем режиме потребляет несколько микроампер. Можно купить готовые модули Radiocraft, Meshnetics (Atmel) и т.п.
  2. USB_CDC_Skeleton_15 and --model-large

    Добрый день! Кто-нибудь запускал USB_CDC_Skeleton_15 на C8051F3XX с моделью памяти large? А то перешел с --model-small на --model-large и что-то внутри стека поломалось. USB устройство перестало определяться. Использую SDCC компилятор. Google никаких положительных результатов не дал.
  3. Как на счет объявить переменные с квалификатором volatile, а ввод/вывод сделать на асме.
  4. DS18B20 и ATtiny2313

    http://electronix.ru/forum/index.php?showtopic=52634
  5. ZigBee дешевое решение

    Цитата(FormatCft @ Nov 6 2008, 23:07) Здравствуйте. === Возникла потребность обмена по сети ZigBee. === Интересует: 1) не дорогие и качественные модули ZigBee? 2) не дорогие контроллеры с поддержкой ZigBee и со стеком под это дело? === Было бы очень идельно если уложиться в несколько десятков рублей. === Заранее спасибо за ответы. Цена на модули можно посмотреть здесь: http://www.terraelectronica.ru/catalog.php?ID=789 Десятками рублей точно не обойтись. Один только чип (радио + мк) стоит $4-6 (к примеру, MC1321x от Freescale). http://search.digikey.com/scripts/DkSearch...keywords=MC1321 Цитата(FormatCft @ Nov 7 2008, 12:12) Еще раз по задаче: хочу передавать данные по ZigBee между двумя устройствами. Конкретные требования к связке модуль(или микросхема) + обвязка - минимальная цена. Вопрос: Зачем тебе нужен ZigBee, если задача - только передавать данные между двумя устройствами? Если не нужен роутинг, то можно ограничится несложным собственным софтом, ну или использовать готовые библиотеки стандарта IEEE 802.15.4. Если это Freescale, то можно заюзать SMAC или 802.15.4MAC. У производителя есть уже готовые примеры соединений точка-точка. Если не нравится Freescale, то можно, к примеру, взять модули от Meshnetics, построенные на ATmega1281 и AT86RF230. Либо самому сделать такую связку. Компания тоже предоставляет библиотеки MAC уровня, помимо стека ZigBee. Софт поверх MAC-а получается меньше по размеру, с меньшим кол-вом ошибок и пропускная способность выше.
  6. Работа с прерываниями в WinAVR

    Цитата(studert @ Oct 17 2008, 15:07) Задаю благозвучное название прерывания #define PacketReceiveComplete INT5_vect Объявлена глобальная переменная, значение которой uint64t_t DestMAC; Обработчик прерывания, функция getDestMAC записывает в переменную DestMAC нужные данные ISR(PacketReceiveComplete){ cli(); getDestMAC(&DestMAC); sei(); } int main(void){ ... printf("%lx",DestMAC); } Это не работает, печатает мусор,причем попытки изменить DestMAC main тоже неудачны, она не меняется. Что я делаю не так? 1) А просто printf у вас работает, если не использовать обработчиков прерываний по приему, по окончании передачи, по свободному регистру UDRn?
  7. Цитата(sf9 @ Sep 22 2008, 12:44) Если можно,выложите примеры с-кодов с функциями обработки прерываний. Ниже пример программы, показывающий как во время выполнения программы (мигание 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. DS1821 и Mega8

    You are welcome.
  9. DS1821 и Mega8

    Цитата(genn14 @ Sep 16 2008, 09:42) По ds1820 много есть программ, но ds1821 именно на avr не нашёл. Различия у них, на мой взгляд, существенны- первый с адресацией, второй без ну и разрядность преобразования различна. Но где взять пример, шаблон чтобы воткнуть нужные задержки для ds1821, т. к. сам только начинаю разбираться с "C". Ссори, за дизинфу, алгоритмы чтения температуры у них действительно разняться. Но задержки в определении presence pulse, задержки в чтении и записи битов одинаковые. Таким образом из проекта будут полезны ф-ции: // Инициализация 1-Wire устройств unsigned char wr1_init(void); // Чтение байта с шины 1-Wire unsigned char wr1_read(void); // Запись байта по шине 1-Wire void wr1_write(unsigned char data); Ну а дальше берешь даташиты, исходные кода и решаешь задачу "Найди пять отличий".
  10. DS1821 и Mega8

    Цитата(uriy @ Sep 14 2008, 20:47) Кажется в каталоге с CodeVision в папке example были примеры для DS1820. Да, пример был, показывающий как вызывать библиотечные ф-ции, которых в поставке не было. Поэтому их пришлось писать самому, правда, пару ассемблерных строк стащил с какого-то друго проекта
  11. DS1821 и Mega8

    Выкладываю еще свой университетский код (там еще комментарии на русском ), написанный под CodeVisionAVR 1.24.6. Использовался DS1820 вместо DS1821, но отличия там не существенны. А так в инете много Application Notes для работы с 1-Wire устройствами. http://www.maxim-ic.com/products/1-wire/ тебе поможет.
  12. Цитата(TechMike @ Jul 30 2008, 17:56) Уже прозвонил все что мог в шнурке и в обвязке МК, ничего не отвалилось. Сейчас смонтировано на макетке без паечной, сделал все соединения надежнее(контакты удлинил), все равно не работает. Шевеление и дергание всей платы тоже не помогло. Пробовали подключаться к другому компу, может на вашем вышел из строя преобразователь уровней на прием или т.п.
  13. Иногда встречаются статьи по беспроводным технологиям (NanoNet, Bluetooth, ZigBee, ...) в журнале "Компоненты и Технологии".