Что-то я не понял это. Он открытый.Rtmip писал(а):пробовал я год назад code::blocks, понравилась IDE, но в "вылеченной" версии был глюк и пока отставил в сторону...
Нескольно простых вопросов о программировании AVR на Си.
- Реклама
А TRUE пользователи Windows даже открытый и бесплатный софт качают не с официальных сайтов, а с файлопомоек. А в таком случае - ну как же без кряклв 
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Под AVR давно не писал, потому свои предпочтения современными не считаю.Rtmip писал(а):Pnjom-Penb, Вы знаете еще какие-нибудь IDE из разряда "хайвейные", кроме тех, что мы тут обсуждаем?
Да, было установлено несколько версий, наиболее часто встречавшихся в воплях о помощи.Rtmip писал(а):Как понять не во всех версиях? У Вас несколько версий CVAVR установлено?
А понимать следует буквально: в одних версиях не работает, а в других:
Rtmip писал(а):... решил проверить и оказалось, что работает sizeof, показывает размер исправно.
hybroid, все правильно, открытый.
WiseLord, я отсюда качал, там ICCV8 Demo for Atmel AVR.
Прошло больше года и уже перепутал
Там Code :: Blocks в составе идет. Вот я и назвал так, неправильно.
А проблема была и есть в том, что не получилось связать imagecraft и winavr в качестве toolchain...
Отдельно Code :: Blocks тоже почему-то не очень связывался
Спасибо за подсказку по Qt, именно этот момент был неясен.
Сейчас установил только IDE по вашей ссылке, попробую разобраться...
Кстати все равно, на диске заняло почти 230 Мб, чего там такого?!
Pnjom-Penb, к чему тогда был весь этот пафос про завязанные глаза, минные поля, хайвеи, желание помочь и "sizeof"?
Если Вы пишите, что есть такие хайвеи, так назовите их.
Если Вы знаете, что в последних версиях sizeof работает, так зачем говорить, что раньше не работало?
Это равносильно тому, что заявить - winavr или студия это плохо, так как в разных версиях были ошибки.
Ладно, будем считать, что я Вас неверно понял.
WiseLord, я отсюда качал, там ICCV8 Demo for Atmel AVR.
Прошло больше года и уже перепутал
Там Code :: Blocks в составе идет. Вот я и назвал так, неправильно.
А проблема была и есть в том, что не получилось связать imagecraft и winavr в качестве toolchain...
Отдельно Code :: Blocks тоже почему-то не очень связывался
Спасибо за подсказку по Qt, именно этот момент был неясен.
Сейчас установил только IDE по вашей ссылке, попробую разобраться...
Кстати все равно, на диске заняло почти 230 Мб, чего там такого?!
Pnjom-Penb, к чему тогда был весь этот пафос про завязанные глаза, минные поля, хайвеи, желание помочь и "sizeof"?
Если Вы пишите, что есть такие хайвеи, так назовите их.
Если Вы знаете, что в последних версиях sizeof работает, так зачем говорить, что раньше не работало?
Это равносильно тому, что заявить - winavr или студия это плохо, так как в разных версиях были ошибки.
Ладно, будем считать, что я Вас неверно понял.
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Точнее сказать, Вы совсем не поняли. Но, поскольку Вы сами предположили, что с Вашим пониманием что-то не так, наставления можно пропустить. Правда, остается вопрос - к чему был весь этот пафос?Rtmip писал(а):к чему тогда был весь этот пафос ...
... будем считать, что я Вас неверно понял.
P.S. Могу порекомендовать освежить в памяти бессмертные творения Бидструпа, Вам должно полегчать.
P.P.S. Как яркий пример непонимания:
Под этим кадром так и просятся титры: "Это ему снится ... Это ему снится ... Это ему снится ...", - ибо кто Вам сказал, что с ростом номера версии ошибки исправляются, а не возникают? Вы путаете реальность со своими предположениями о ней. Такой фигней вымощена дорога в Ад. Oops...Rtmip писал(а):Если Вы знаете, что в последних версиях sizeof работает ...
- Реклама
WiseLord, к Вам в личку можно постучаться? Не могу разобраться с Qt.
Pnjom-Penb:
1. Если у вас будут ко мне вопросы, пожелания, предложения, претензии или иные фантазии, то пишите в личку.
Не надо засорять форум и хамить.
2.
Pnjom-Penb:
Спойлер
Договоримся так:1. Если у вас будут ко мне вопросы, пожелания, предложения, претензии или иные фантазии, то пишите в личку.
Не надо засорять форум и хамить.
2.
Не надо мне приписывать, то, что я не говорил и не имел ввиду.Pnjom-Penb писал(а):Под этим кадром так и просятся титры: "Это ему снится ... Это ему снится ... Это ему снится ...", - ибо кто Вам сказал, что с ростом номера версии ошибки исправляются, а не возникают? Вы путаете реальность со своими предположениями о ней. Такой фигней вымощена дорога в Ад. Oops...
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Rtmip, пожалуйста, научитесь отличать свои трудности, от реалий внешнего мира. Вам же будет проще.
Стучитесь. Только зачем Вам весь Qt, когда для AVR QtCreator должно хватить?Rtmip писал(а):к Вам в личку можно постучаться? Не могу разобраться с Qt.
Про визард проекта для AVR в QtCreator.
Может я плохо искал, но нашёл только старенький, написанный каким-то немцем. В принципе работает, но я не сильно доволен.
WiseLord, если у тебя есть визард, то может вывалишь на гитхаб? Или я на днях обнапилю немецкий и выложу.
Может я плохо искал, но нашёл только старенький, написанный каким-то немцем. В принципе работает, но я не сильно доволен.
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
Под Windows надо только в xml-ке шаблона пути подправить (вроде /usr/avr/include => C:\blablabla\avr\include).
И есть даже готовый вариант "под винду" - достал из виртуалки, где проверял. Если WinAVR и QtCreator установлены по стандартным путям, должно работать сразу, иначе подправить аналогично в xml-файле шаблона. Архив распаковается в C:\Qt\Qt5.5.0\Tools\QtCreator\share\qtcreator\templates\wizards
На какой максимальной частоте может работать 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 МГц "совместимая" вратли технология отличается просто название другое это маркетинг)
только флешь память рассчитана как я понимаю максимум 48 МГц (если есть xMega на 33 МГц "совместимая" вратли технология отличается просто название другое это маркетинг)
- Сообщения: 469
- Зарегистрирован: Вс авг 30, 2015 03:52:59
Производитель это где-нибудь обещал?DronVolk писал(а):на сколько я знаю технология по которой произведен мк может обеспечить до 96 МГц и производитель закладывает до 40% запаса
бит CKDIV8 во фьюзах - "Если частота превышает спецификацию устройства, Предохранитель CKDIV8 может быть запрограммирован для того, чтобы делить внутреннюю частоту к 8. Должно быть проверено, что результирующие разделенные часы встречает частотную спецификацию устройства."
я так понимаю пред делитель выполнен на тех же транзисторах что и все основное устройство (кроме флешь памяти) если он может работать на повышеной частоте значит и остальные части могут (не флешь).
зы 40% запаса вносятся для того что бы гарантированно работало устройство (тут уже репутация - мы сказали что так работает значит будет).
хм а если синхронизировать сам мк и SPI (брать один источник частоты) его можно будет заставить работать 1 к 1? (я с ним не работал как с подчиненым)
я так понимаю пред делитель выполнен на тех же транзисторах что и все основное устройство (кроме флешь памяти) если он может работать на повышеной частоте значит и остальные части могут (не флешь).
зы 40% запаса вносятся для того что бы гарантированно работало устройство (тут уже репутация - мы сказали что так работает значит будет).
хм а если синхронизировать сам мк и SPI (брать один источник частоты) его можно будет заставить работать 1 к 1? (я с ним не работал как с подчиненым)
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...
"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
"Всё остальное устройство" устроено несколько сложнее, чем один счётчик...
Это то понятно. Но и Счетчик достаточно сложный для превышения "Спецификации". Я же не говорю что нужно гонять устройство на (но даташиту маскимальная частота 20 и делитель 8 - 160) 160 МГц я говорю про или 26 или SPI крутить 1 к 1 вопрос в том будет ли оно работать (SPI)?
где то читал что он может работать на частоте выше чем в режиме мастера только на сколько?
где то читал что он может работать на частоте выше чем в режиме мастера только на сколько?
я повелитель электронов! Но иногда появляются электроны бунтари и делают, что им вздумается, например, прокладывают новые пути движения...
"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
"Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного." Альберт Эйнштейн.
Вообще-то, как раз счётчик - достаточно простое устройство, в сравнении с ядром МК. А кроме ядра ещё есть периферия 
Но суть даже не в этом... Покажи, где в даташите говорится о том, что предделитель AVR будет работать при подаче такта в 8*20 на тактовый вход.
А про частоту работы SPI достаточно подробно рассказывается в даташите.
Но суть даже не в этом... Покажи, где в даташите говорится о том, что предделитель AVR будет работать при подаче такта в 8*20 на тактовый вход.
А про частоту работы SPI достаточно подробно рассказывается в даташите.
- Сообщения: 15
- Зарегистрирован: Пн май 05, 2014 11:59:11
Здравствуйте, задумал сделать, что то наподобие логического анализатора 8-каналов на atmega (тестирую на АТ90CAN)
по внешнему прерываю считываю порт и передаю по UART на компьютер,
ISR(INT0_vect){
UDR1 = PINA;
}
подскажите на какой максимальной частоте эта штука сможет считывать данные с порта?
по внешнему прерываю считываю порт и передаю по UART на компьютер,
ISR(INT0_vect){
UDR1 = PINA;
}
подскажите на какой максимальной частоте эта штука сможет считывать данные с порта?
- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
С частотой возникновения прерывания. Но если оно возникает во время передачи предыдущего байта, данные-то будут считаны, но записаны не будут, возникнет ошибка DOR1 - переполнение. Так что рассчитывайте по скорости UART.
Но разве не лучше синхронизироваться с таймером, чем с внешним прерыванием?
Но разве не лучше синхронизироваться с таймером, чем с внешним прерыванием?
Согласно Евстифееву, "Следует иметь в виду, что работа микроконтроллера в режиме Slave гарантируется только на частотах, меньших или равных fclk/4", то есть он тактируется от тактовой контроллера, а с SCK только синхронизируется, также как и в случае внешнего (не асинхронного!) тактирования таймеров.SPI крутить 1 к 1 вопрос в том будет ли оно работать (SPI)?
- Сообщения: 15
- Зарегистрирован: Пн май 05, 2014 11:59:11
я пробовал через буфер, но все равно на большой частоте пропуски получаются(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();
}
}- Сообщения: 1525
- Зарегистрирован: Чт июн 10, 2010 20:11:19
Зачем cli и sei в прерывании?
Почему не использовали кольцевой буфер?
Точно средняя частота возникновения прерывания INT0 меньше скорости передачи по UART? Если больше то никакие ухищрения не помогут.
Точно для логического анализатора не нужна привязка к времени?
Почему не использовали кольцевой буфер?
Точно средняя частота возникновения прерывания INT0 меньше скорости передачи по UART? Если больше то никакие ухищрения не помогут.
Точно для логического анализатора не нужна привязка к времени?


