Все игры
Обсуждения
Сортировать: по обновлениям | по дате | по рейтингу Отображать записи: Полный текст | Заголовки

Внешнее прерывание на ATMEGA8

Кто работал с внешними прерываниями у атмеги (INT0, INT1)? Проблема в том, что в обычном режиме (прерывание когда на входе 0) прерывания вызываются одно за одним, пока на входе 0 (тут все понятно и вопросов нету), а когда нужно прерывание по фронту или по спаду, тут вход начинает тормозить (не все перепады ловит), а в режиме сна вообще перестает реагировать на прерывания. Может кто сталкивался с таким? В чем тут дело?

Помогите перенести код с Atmel Studio в CodeVisionAVR

Доброго времени суток ! Прошу помощи в переносе кода с Atmel
Studio в CodeVisionAVR. Я не совсем начинающий но и не асс в программировании.
Понадобилось смастырить термометр на терморезисторе NTC, характеристика у него
нелинейная.


Нашел вроде толковый код Автор:Погребняк Дмитрий
http://aterlux.ru/index.php... Измерение
температуры при помощи NTC термистора и микроконтроллера AVR
,но он для Atmel Studio и я в нем ничего не
могу понять. Автору данной статьи задавал вопрос,но он ответил что CVAVR не
владеет.


Вот код:


 


#include



#include



 


// Значение температуры, возвращаемое если сумма результатов
АЦП больше первого значения таблицы


#define TEMPERATURE_UNDER -550


// Значение температуры, возвращаемое если сумма результатов
АЦП меньше последнего значения таблицы


#define TEMPERATURE_OVER 1550


// Значение температуры соответствующее первому значению
таблицы


#define
TEMPERATURE_TABLE_START -550


// Шаг таблицы


#define
TEMPERATURE_TABLE_STEP 50


 


// Тип каждого элемента в таблице, если сумма выходит в
пределах 16 бит - uint16_t, иначе - uint32_t


typedef
uint16_t temperature_table_entry_type;


// Тип индекса таблицы. Если в таблице больше 256 элементов,
то uint16_t, иначе - uint8_t


typedef
uint8_t temperature_table_index_type;


// Метод доступа к элементу таблицы, должна соответствовать
temperature_table_entry_type


#define
TEMPERATURE_TABLE_READ(i) pgm_read_word(&termo_table[i])


 


/* Таблица суммарного значения АЦП в зависимости от
температуры. От большего значения к меньшему


   Для построения
таблицы использованы следующие парамертры:


     R1(T1): 10кОм(25°С)


     Таблица R/T
характеристик: EPCOS R/T:2904; B25/100:4300K


     Схема включения:
A


     Ra: 10кОм


     Напряжения
U0/Uref: 5В/5В


*/


const
temperature_table_entry_type termo_table[] PROGMEM = {


    65001, 64769, 64448, 64010, 63418,
62632, 61598, 60279,


    58602, 56549,
54054, 51152, 47880, 44299, 40526, 36644,


    32768, 29009,
25396, 22060, 19065, 16395, 14031, 11980,


    10212, 8699, 7414,
6322, 5407, 4633, 3972, 3413,


    2942, 2542, 2200,
1909, 1661, 1449, 1267, 1111,


    977, 862, 761


};


 


// Функция вычисляет значение температуры в десятых долях
градусов Цельсия


// в зависимости от суммарного значения АЦП.


int16_t
calc_temperature(temperature_table_entry_type adcsum) {


  temperature_table_index_type l = 0;


  temperature_table_index_type r =
(sizeof(termo_table) / sizeof(termo_table[0])) - 1;


  temperature_table_entry_type thigh =
TEMPERATURE_TABLE_READ(r);


 


  // Проверка выхода за пределы и
граничных значений


  if (adcsum <= thigh) {


    #ifdef TEMPERATURE_UNDER


      if (adcsum < thigh)


        return TEMPERATURE_UNDER;


    #endif


    return TEMPERATURE_TABLE_STEP * r +
TEMPERATURE_TABLE_START;


  }


  temperature_table_entry_type tlow =
TEMPERATURE_TABLE_READ(0);


  if (adcsum >= tlow) {


    #ifdef TEMPERATURE_OVER


      if (adcsum > tlow)


        return TEMPERATURE_OVER;


    #endif


    return TEMPERATURE_TABLE_START;


  }


 


  // Двоичный поиск по
таблице


  while ((r - l) >
1) {


    temperature_table_index_type m = (l + r)
>> 1;


    temperature_table_entry_type mid =
TEMPERATURE_TABLE_READ(m);


    if (adcsum > mid) {


      r = m;


    } else {


      l = m;


    }


  }


  temperature_table_entry_type vl =
TEMPERATURE_TABLE_READ(l);


  if (adcsum >= vl) {


    return l * TEMPERATURE_TABLE_STEP +
TEMPERATURE_TABLE_START;


  }


  temperature_table_entry_type vr =
TEMPERATURE_TABLE_READ(r);


  temperature_table_entry_type vd = vl - vr;


  int16_t res = TEMPERATURE_TABLE_START + r *
TEMPERATURE_TABLE_STEP;


  if (vd) {


    // Линейная интерполяция


    res -= ((TEMPERATURE_TABLE_STEP *
(int32_t)(adcsum - vr) + (vd >> 1)) / vd);


  }


  return res;


}


 


ADMUX = 0b01000111; // референтное напряжение - Vcc, вход
ADC7, реузультат по правому краю


  ADCSRA = 0b10000111;
// 1/128 делитель частоты, включение АЦП


 


  while(1) 
{


    temperature_table_entry_type summ = 0;


    for (uint8_t i = 0; i < 64; i++) {


      ADCSRA |= _BV(ADSC);


      loop_until_bit_is_clear(ADCSRA, ADSC);


      summ += ADC;


    }


    int16_t t = calc_temperature(summ);


    ledind_num(t, 1, 0b01010011); //
Вывод значения на индикатор с префиксом в виде буквы t


    _delay_ms(250);


  }


 


 Огромная просьба
знающим в этом деле людям – помогите перенести в код для CodeVisionAVR.


Жду любые советы!

Бинарный счетчик на 1,5GHz

Подскажите модель бинарного счетчика 4 или 8 бит на частоту не менее 1Ghz. В интернете нашел только SY10E137, SY100E137. Есть что-либо похожее, желательно попроще, и чтобы можно было достать.

Курсы по программированию микроконтроллеров.

Господа, если кто знает существуют ли в Москве реальные курсы по программированию контроллеров PIC,Atmel.По интернету учится это не то, если кто знает подскажите пожалуйста заранее благодарен.

Обмен данными с М.К.(STM 32) по USB без FTDI

Всем привет, кто нибудь управлял М.К. по USB? Написал программу которая прозванивает жгуты (на Delphi), написал прог. для М.К. не знаю как их с компом подружить, помогите советом....

Все что вы хотели знать о микроконтроллерах, но боялись спросить

Вопросы задавать здесь. Ответы, по мере возможностей оперативно будут!

хочется: помочь

Метки: FAQ

RGB контроллер

Статью про данное устройство вы можете найти на страницах ноябрьского выпуска журнала Радио. Устройство схоже с "фонариком с регулируемой яркостью" и по сути является его развитием. Тут видео http://my.mail.ru/video/mail/kairat_f85a/5#video=/mail/kairat_f85a/5/20 жду вопросы, отзывы и критику!



МК замок

На данном видео прототип кодового микроконтроллерного замка http://my.mail.ru/video/mail/kairat_f85a/#video=/mail/kairat_f85a/_myvideo/8,
из журнала «Радио» Май 2013. Было бы интересно узнать ваше мнение об удобстве
использования и о минусах?

регулирование яркости светодиодов

Здесь ссылка на видео работы устройства http://video.mail.ru/mail/kairat_f85a/5, статья о данном устройстве была опубликована в журнале РАДИО №2 2013 г. Было бы интересно узнать ваше мнение?

AVR CDC-IO

Нашел в сети хорошую штуковину - AVR CDC-IO (http://www.recursion.jp/avr...)!
Это преобразователь AVR в виртуальный ком порт. Использовал для этого mega48. Написал прогу на компе для записи и чтения информации. Запись и чтение из портов B,C и D происходит нормально. Но вот при записи или чтении из других регистров никаких результатов не дает. Ни АЦП, ни таймер, ни SPI не откликается.
Может кто-нибудь пробовал работать с этой хреновиной? Подкиньте совет.

Какой программатор посоветуете.

Какой программатор посоветуете использовать для микроконтроллеров семейства MCS-51, PIC и AVR, чтобы схема была несложной и софт под ХР работал.

Залоченый МК ATmega8

После прошивки МК с ним чет случилось, перепрошить не могу :(
 Симптомы следующие - МК читается, но при попытки на него залить прошивку он выдает ошибку, после чего уже не читается и приходиться перезапускать утилиту для прошивки. Пробывал разными прогерами через ISP шить, результат везде одинаковый.
 Спасет ли такой МК параллельный программатор ?
 Проверял фьюзы там все нормально, Reset подключен и ISP тоже.  
Случилась эта бида с ним после прошивки в схеме, но токаогранечительные резисторы стояли и порты должны быть целыми.

STM32

Кто работал с этими микроконтроллерами??? В интернете большое обилие информации по ним, интересует может у кого есть на русском, в частности прикупил себе STM32F103ZCT6. Что именно интересует.
1) Среда разработки. Для AVRов использовал VMLAB+WinAVR+Proteus плохой жизни не знал. По этой теме нагуглил софт MDK от фирмы KEIL, но за даром дают только прогу ограниченную 32 кБ кода (правда я думаю для начала хватит).
2) Каким хардом зашивается эта железяка??
3) Ну и может кто чего плохого или хорошего может наговорить про него.
Так же прикупил себе AT91SAM9260 (все таки ATMEL мне ближе по душе)

Видео сигнал

Здравствуйте уважаемые!

Никогда бы не подумал что видеосигнал в ГОСТ имеет такую форму :) взявшись его реализовывать на AVR для растров 384 точки в строку и 512 точек в строку не думал что придется так помучиться, да и сейчас еще не уверен что достиг результата. Как же на известных любительских компьютерах Радио, Специалист, Орион - обходились без уравнивающих импульсов? Если я правильно помню и понимаю их схемы то там просто смешивались кадровый и строчный синхроимпульс? Или я не прав?

STM8 кто нибудь пользует?

Собственно хотелось бы узнать, использует ли кто в своих разработках контроллеры STM8?

VFFFhjjh gffg, 30-07-2010 21:56 (ссылка)

Как создать Радиосом порт и какое кодировку испоьзовать

Привет всем. У меня возник такое идея надо создать модем которое UART преоброзовал
в Радиомост между МК . тут нужен модулятор с передатчиком и приемник с демодулятор
и хотель спросит тут можно использовать RC5 или другую кодировку чтобы он согласовалось с
СИБИ связом. Кто знает что испольовать чтобы быль менше помех при передаче данных 
тут уже мне не подхоит то кодировка в UART кодировка NRZ

AVR+RC5+TDA7313

Доброго всем дня. Отлаживаю некий проект в протеусе. Для проверки необходимо на ножку МК подавать код RC5. Модели передатчика RC5 в протеусе не нашел, поэтому думаю как на AVRке сваять передатчик RC5. Если кто-то прошел подобные грабли, отзовитесь! И еще. Кто собирал РЕАЛЬНО нормально работающую связку AVR+TDA7313. Проектов в нете много, но прошивки в основном демки (или показано как меню организовано на ЖКИ или опрос I2C без управления). Также интересует модель 7313 в протеусе. 

Начало

Люблю провести свободное время с паяльником... Но... небыло печали решил освоить микроконтроллеры. Прикупил ATMEGA32 и стал воять.
Начал с простого, собрал плату, собрал программатор для LPT на 74HC244, загрузил весь немыслимый софт.
Не пошло... Программы не видят контроллер. Перепроверил всю пайку, контакты, соединения... без рез-но.
Дело в том что у меня нет на мат плате LPT, но есть эмулятор через PCI, Принтер через него отлично работает, а программы этим портом не управляют (проверял светодиодами по линиям вывода). Все настройки соответствующие.
В чем может быть дело? Может из-за Windows 7 программы не могут найти общий язык? Уже перепробовал все программеры которые нашел в сети...
Вся надежда на Вас, ато пропадет юный программист. 

Александр П, 13-02-2009 02:44 (ссылка)

Изготовление термометра

Ваяю термометр с датчиком температуры DS18B20.? Нужна помощ в написании программы на CodeVision AVR

ШИМ упарвление двигателем

Доброго времени суток!
Мне необходимо соорудить шим управление коллекторным двигателем. Спаял макет на AVR. Включил - мотор крутится со скоростью, которую я регулирую переменником поставленным на вход АЦП. Скважность меняется, силовой транзистор работает в ключевом режиме и вроде все гладко.
Но после некоторых действий - резкое включение движка на полную мощность, привело к тому, что из-за броска тока сгорел контроллер.
Вопрос вот в чем - кто-нибудь работал с такими устройствами (усилители мощности с шим для коллекторников). Перерыв интернет я так и не нашел ничего конкретного по данному вопросу.

Про ARM.

Присмотрел я как-то ARM от ATMEL и долго решал как и что я с ним буду делать.
Надумал, купил. Но когда я увидел в реале, что это за хреновина - размер вывода 0.2мм, шаг между 0.4мм. Сразу вспомнились все нехорошие слова, которые я знаю, причем разом. Потом долго смотрел на него и не мог понять, зачем я связался с этой мелюзгой.
Ну так вот. Попробовал на волосках (жилах от провода) повесить и на панель TQFP. Фига два. Шаг очень маленький, а ряд длинный и контакты часто замыкают соседние.
Кто-нибудь вручную устанавливал на макетку такие девайсы? Если да, то какой наиболее простой способ?

guram guram, 05-06-2009 15:52 (ссылка)

Дата кабель RS232 на CD4022BE

Привет. Помогите. Нужна схема Дата кабель RS232 на CD4022BE. Есть возможность приобрести только такую марку микросхемы, а в инете схемы на MAX232. В магазине говорят что это аналог, а схемы подключения найти неполучилось, по даташиту на иностранном непонимаю. Может ктонибудь делал, или может есть подробная инфа на руском. Хочу использовать для связи компа с AVR.

как соеденить два микроконтроллера ATmega16 по SPI?

Кто может показать пример програм на асме для Master i Slave.Если надо могу выложить свою схему соединений и тексты програм.
Не могу найти в чем ошибка.


 

Вопрос о PIC и AVR

Как считаете, стоит переходить с Atmel AVR на PIC18.
Вроде бы на PIC рабочая частота повыше и многие хвалят их, но я работал только с AVR микрухами. Возникла проблема нехватки производительности. Повышая рабочую частоту возникает жуткая нестабильность, а внешних генераторов на частоты выше 20Мгц у меня нет.
Что посоветуете? Заранее благодарен всем ответившим.

Генератор ТИС на контроллере семейства MCS-51.

Кто пытался создать генератор ТИС (Телевизионных Испытательных Сигналов) на контроллере семейства MCS-51 напримет AT89S52 или подобном. Поделитесь опытом.

Вопрос на совесть. Что использовать Асемблер или всетаки С.

Ворос интересный. Т.к. можно для написания использовать Си с готовыми библиотеками и при этом непонимать как оно работает. Или выучить принцип действия какой нить фигни и склепать на Асме. Конечно писать на Асме тяжело, но есть и свои плюсы. Это возможость удобной отладки того что написал. На Си это остается на совесть того кто написал библиотеку.....
Иногда добивает то, что молодые (как и в случае и меня) написав так слегка, просто одно строкой, поцедуру и что чтото выводится на экран думают что все могут. Хотя при этом не имеют даже и понятия как оно там ногами дергает... Заставь его написать на Асме как ему просто придется выучть как оно работает....
Вывод (Мой)
Сперва нада написать процедуру иль че еще на Асме(Чтобы понимать как оно работает). А потом т.к ты знаешь как оно работает
можешь писать на Си. Это типа как помошь ленивым , но СОБРАЖАЮЩИМ что он делает программистам.(Не мучает совесть мысль что ты халявщик)
Хотя есть задачи которые трудно решить на Асме...это всякие там структуры данных...и работа с плавающими точками тут без Си сложно.
Пишите свои соображения по этом вопросу.

хочется: На море

Знаковое деление в AVR ассеблере (2,56/1024). Please, HELP!

Доброго времени суток, Уважаемые. Столкнулся с такой проблемкой. Необходимо поделить 2,56 на 1024.

Ума не приложу как это сделать на AVR ассемблере. Пишу в AVRStudio для Меги 8. Си прошу не предлагать.

 

настроение: Задумчивое

Тарас Дисюк, 21-04-2007 13:53 (ссылка)

PIC микроконтроллеры / програматоры

Для всех фанатов PICов!!!
Кто кикие програматоры использует! (PIC/AVR)
Кто лучше PIC или AVR? плюсы и минусы
оставляйте ссылки....)))))))))

настроение: Радостное

Nordic nrf24e1

Занялся изучением этого "зверя" - кто нибудь имел с ним дело? хочется услышать мнение, и возможные подводные камни...


 

настроение: Задумчивое

sasha savvransski, 08-05-2008 16:27 (ссылка)

Без заголовка

ребят здрасте- помогите начинающему програмисту асемблера - какие проги книги и задачи посиветуете и где качать-, собираюсь пограмировать pic -atmel .-для примитивных задач

В этой группе, возможно, есть записи, доступные только её участникам.
Чтобы их читать, Вам нужно вступить в группу