Нескольно простых вопросов о программировании AVR на Си.

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение hybroid »

Rtmip писал(а):пробовал я год назад code::blocks, понравилась IDE, но в "вылеченной" версии был глюк и пока отставил в сторону...
Что-то я не понял это. Он открытый.
Реклама
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

А TRUE пользователи Windows даже открытый и бесплатный софт качают не с официальных сайтов, а с файлопомоек. А в таком случае - ну как же без кряклв :)
Реклама
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

Rtmip писал(а):Pnjom-Penb, Вы знаете еще какие-нибудь IDE из разряда "хайвейные", кроме тех, что мы тут обсуждаем?
Под AVR давно не писал, потому свои предпочтения современными не считаю.
Rtmip писал(а):Как понять не во всех версиях? У Вас несколько версий CVAVR установлено?
Да, было установлено несколько версий, наиболее часто встречавшихся в воплях о помощи.
А понимать следует буквально: в одних версиях не работает, а в других:
Rtmip писал(а):... решил проверить и оказалось, что работает sizeof, показывает размер исправно.
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Rtmip »

hybroid, все правильно, открытый.
WiseLord, я отсюда качал, там ICCV8 Demo for Atmel AVR.
Прошло больше года и уже перепутал :facepalm:
Там Code :: Blocks в составе идет. Вот я и назвал так, неправильно.
А проблема была и есть в том, что не получилось связать imagecraft и winavr в качестве toolchain...
Отдельно Code :: Blocks тоже почему-то не очень связывался :dont_know:
Спасибо за подсказку по Qt, именно этот момент был неясен.
Сейчас установил только IDE по вашей ссылке, попробую разобраться...
Кстати все равно, на диске заняло почти 230 Мб, чего там такого?!
Pnjom-Penb, к чему тогда был весь этот пафос про завязанные глаза, минные поля, хайвеи, желание помочь и "sizeof"?
Если Вы пишите, что есть такие хайвеи, так назовите их.
Если Вы знаете, что в последних версиях sizeof работает, так зачем говорить, что раньше не работало?
Это равносильно тому, что заявить - winavr или студия это плохо, так как в разных версиях были ошибки.
Ладно, будем считать, что я Вас неверно понял.
Реклама
Эиком - электронные компоненты и радиодетали
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

Rtmip писал(а):к чему тогда был весь этот пафос ...
... будем считать, что я Вас неверно понял.
Точнее сказать, Вы совсем не поняли. Но, поскольку Вы сами предположили, что с Вашим пониманием что-то не так, наставления можно пропустить. Правда, остается вопрос - к чему был весь этот пафос?

P.S. Могу порекомендовать освежить в памяти бессмертные творения Бидструпа, Вам должно полегчать. :)

P.P.S. Как яркий пример непонимания:
Rtmip писал(а):Если Вы знаете, что в последних версиях sizeof работает ...
Под этим кадром так и просятся титры: "Это ему снится ... Это ему снится ... Это ему снится ...", - ибо кто Вам сказал, что с ростом номера версии ошибки исправляются, а не возникают? Вы путаете реальность со своими предположениями о ней. Такой фигней вымощена дорога в Ад. Oops... :)
Реклама
Rtmip
Держит паяльник хвостом
Сообщения: 963
Зарегистрирован: Чт апр 03, 2014 23:16:55
Откуда: Россия

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Rtmip »

WiseLord, к Вам в личку можно постучаться? Не могу разобраться с Qt.
Pnjom-Penb:
СпойлерДоговоримся так:
1. Если у вас будут ко мне вопросы, пожелания, предложения, претензии или иные фантазии, то пишите в личку.
Не надо засорять форум и хамить.
2.
Pnjom-Penb писал(а):Под этим кадром так и просятся титры: "Это ему снится ... Это ему снится ... Это ему снится ...", - ибо кто Вам сказал, что с ростом номера версии ошибки исправляются, а не возникают? Вы путаете реальность со своими предположениями о ней. Такой фигней вымощена дорога в Ад. Oops... :)
Не надо мне приписывать, то, что я не говорил и не имел ввиду.
Реклама
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

Rtmip, пожалуйста, научитесь отличать свои трудности, от реалий внешнего мира. Вам же будет проще.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

Rtmip писал(а):к Вам в личку можно постучаться? Не могу разобраться с Qt.
Стучитесь. Только зачем Вам весь Qt, когда для AVR QtCreator должно хватить?
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение hybroid »

Про визард проекта для AVR в QtCreator.
Может я плохо искал, но нашёл только старенький, написанный каким-то немцем. В принципе работает, но я не сильно доволен.
WiseLord, если у тебя есть визард, то может вывалишь на гитхаб? Или я на днях обнапилю немецкий и выложу.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение WiseLord »

Ну так давно есть, и ссылку выкладывал не раз. Для AVR и STM32.
Под Windows надо только в xml-ке шаблона пути подправить (вроде /usr/avr/include => C:\blablabla\avr\include).

И есть даже готовый вариант "под винду" - достал из виртуалки, где проверял. Если WinAVR и QtCreator установлены по стандартным путям, должно работать сразу, иначе подправить аналогично в xml-файле шаблона. Архив распаковается в C:\Qt\Qt5.5.0\Tools\QtCreator\share\qtcreator\templates\wizards
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение DronVolk »

На какой максимальной частоте может работать SPI в режиме ведомого? мк ATmega328p. на 14 МГц можно крутить? нужно отправить 1 байт туда и сюда. 1 такт на 2 цикла мк максимальная скорость. теперь другой вопрос можно ли крутить мк на 26 МГц на время приема? (на сколько я знаю технология по которой произведен мк может обеспечить до 96 МГц и производитель закладывает до 40% запаса т. е. возможно 28 МГц для диапазона 1.8 - 5.5 в и -30 +70 С ) http://garagelab.com/profiles/blogs/atm ... lock-30mhz
только флешь память рассчитана как я понимаю максимум 48 МГц (если есть xMega на 33 МГц "совместимая" вратли технология отличается просто название другое это маркетинг)
Pnjom-Penb
Мучитель микросхем
Сообщения: 469
Зарегистрирован: Вс авг 30, 2015 03:52:59

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Pnjom-Penb »

DronVolk писал(а):на сколько я знаю технология по которой произведен мк может обеспечить до 96 МГц и производитель закладывает до 40% запаса
Производитель это где-нибудь обещал?
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение DronVolk »

бит CKDIV8 во фьюзах - "Если частота превышает спецификацию устройства, Предохранитель CKDIV8 может быть запрограммирован для того, чтобы делить внутреннюю частоту к 8. Должно быть проверено, что результирующие разделенные часы встречает частотную спецификацию устройства."
я так понимаю пред делитель выполнен на тех же транзисторах что и все основное устройство (кроме флешь памяти) если он может работать на повышеной частоте значит и остальные части могут (не флешь).

зы 40% запаса вносятся для того что бы гарантированно работало устройство (тут уже репутация - мы сказали что так работает значит будет).

хм а если синхронизировать сам мк и SPI (брать один источник частоты) его можно будет заставить работать 1 к 1? (я с ним не работал как с подчиненым)
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение hybroid »

"Всё остальное устройство" устроено несколько сложнее, чем один счётчик...
Аватара пользователя
DronVolk
Встал на лапы
Сообщения: 109
Зарегистрирован: Чт сен 03, 2015 15:52:10
Откуда: Сибирский федеральный округ

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение DronVolk »

Это то понятно. Но и Счетчик достаточно сложный для превышения "Спецификации". Я же не говорю что нужно гонять устройство на (но даташиту маскимальная частота 20 и делитель 8 - 160) 160 МГц я говорю про или 26 или SPI крутить 1 к 1 вопрос в том будет ли оно работать (SPI)?

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

"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Аватара пользователя
hybroid
Друг Кота
Сообщения: 8007
Зарегистрирован: Вс ноя 14, 2010 19:24:26
Откуда: Лукалэнд

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение hybroid »

Вообще-то, как раз счётчик - достаточно простое устройство, в сравнении с ядром МК. А кроме ядра ещё есть периферия :)
Но суть даже не в этом... Покажи, где в даташите говорится о том, что предделитель AVR будет работать при подаче такта в 8*20 на тактовый вход.
А про частоту работы SPI достаточно подробно рассказывается в даташите.
Joni999
Родился
Сообщения: 15
Зарегистрирован: Пн май 05, 2014 11:59:11

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Joni999 »

Здравствуйте, задумал сделать, что то наподобие логического анализатора 8-каналов на atmega (тестирую на АТ90CAN)
по внешнему прерываю считываю порт и передаю по UART на компьютер,
ISR(INT0_vect){
UDR1 = PINA;
}
подскажите на какой максимальной частоте эта штука сможет считывать данные с порта?
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение COKPOWEHEU »

С частотой возникновения прерывания. Но если оно возникает во время передачи предыдущего байта, данные-то будут считаны, но записаны не будут, возникнет ошибка DOR1 - переполнение. Так что рассчитывайте по скорости UART.
Но разве не лучше синхронизироваться с таймером, чем с внешним прерыванием?
SPI крутить 1 к 1 вопрос в том будет ли оно работать (SPI)?
Согласно Евстифееву, "Следует иметь в виду, что работа микроконтроллера в режиме Slave гарантируется только на частотах, меньших или равных fclk/4", то есть он тактируется от тактовой контроллера, а с SCK только синхронизируется, также как и в случае внешнего (не асинхронного!) тактирования таймеров.
Joni999
Родился
Сообщения: 15
Зарегистрирован: Пн май 05, 2014 11:59:11

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение Joni999 »

COKPOWEHEU писал(а):С частотой возникновения прерывания. Но если оно возникает во время передачи предыдущего байта, данные-то будут считаны, но записаны не будут, возникнет ошибка DOR1 - переполнение. Так что рассчитывайте по скорости UART.
Но разве не лучше синхронизироваться с таймером, чем с внешним прерыванием?
я пробовал через буфер, но все равно на большой частоте пропуски получаются(

Код: Выделить всё

#define UART_UDRTE_EN	(UCSR1B |= _BV(UDRIE1))
#define UART_UDRTE_DES	(UCSR1B &= ~_BV(UDRIE1))
#define DATA			PINA

unsigned char countData = 0;
unsigned char dataBuffer[100];
unsigned char countSendBuffer = 0;

ISR(INT0_vect){
	if(countData < 100){
		dataBuffer[countData] = DATA;
		countData ++;
	}
	if(!(UCSR1B & _BV(UDRIE1))) { //если прерывание по опустошению регистра не включено - включить
		cli();
		UART_UDRTE_EN;
		sei();
	}
}

ISR(USART1_UDRE_vect){
	if(countSendBuffer != countData){
		UDR1 = dataBuffer[countSendBuffer];
		countSendBuffer ++;
	}
	if(countSendBuffer == countData){
		cli();
		UART_UDRTE_DES;
		countData = 0;
		countSendBuffer = 0;
		sei();
	}
}
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Нескольно простых вопросов о программировании AVR на Си.

Сообщение COKPOWEHEU »

Зачем cli и sei в прерывании?
Почему не использовали кольцевой буфер?
Точно средняя частота возникновения прерывания INT0 меньше скорости передачи по UART? Если больше то никакие ухищрения не помогут.
Точно для логического анализатора не нужна привязка к времени?
Ответить

Вернуться в «AVR»