Страница 240 из 421
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 12:19:23
ELcat
Сам неоднократно слыхал о пародийности CVAVR. От себя же скажу, что это чрезвычайно вредная среда. Она развращает новичков, тормозит развитие их мозгов и вообще перенаправляет его в другое русло. А всё из-за таких "прелестей" как Wizard и целого ряда не свойственных классической Си операторов. Так же бывалые и многоуважаемые мной люди говаривали, что код, сгенерённый CVAVR, после дизассемблирования чрезвычайно кривой и массивный - он не оптимизирован ни по размеру, ни по скорости исполнения, что для очень даже платной программы не очень хорошо.
С другой стороны CVAVR позволяет в кратчайшие сроки научиться "хоть как-то лабать" на AVR. Пусть при этом и "дарит" вывих мозга с затруднёнными прогнозами по переходу на "более человеческие" компиляторы.
Одним словом всё очень субъективно. Тут уж кому что важнее: "шашечки" или "ехать".

Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 12:47:13
Vov123
Я чего-то не пойму-начальный код с генерированный в CVAVR не будет скомпилирован в WinAVR или в IARe?.
Мне по барабану на чём писать CVAVR,WinAVR или IAR.Одни и те-же программы для пробы пишу во всех этих средах.Если программа довольно пространна,то в размере кода в выигрыше по компактности за CVAVR,конечно-же это не значит,что лучше.В WinAVR размер кода очень сильно зависит от степени оптимизации,а вот в IARе разница в коде в зависимости от степени оптимизации не сильно велика.
У меня как радиолюбителя-программиста-любителя,полностью отсутствуют комплексы по поводу процев и их сред разработки.
А в промышленности в основном используются промышленные контроллеры,где в основном используется язык лд-диаграмм,который у местных программистов вызывает рвотный рефлекс.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 12:57:09
Совесть
ELcat писал(а):Сам неоднократно слыхал о пародийности CVAVR.
А кроме слухов есть что-то еще? Сам в этой среде не работал, а кроме претензий к "PORTA.0" ничего не встречал.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 13:03:31
Vov123
Ну "PORTA.0" в CVAVR можно заменить фразой на классическом С, и CVAVR переварит легко.
Я хотел добавить про другое.Сейчас максимально заработать можно работая программистом в среде 1С(Предприятие,бухгалтерия и т.д)А вы видели на каком языке она пишется?Классики С пришли бы в ужас.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 16:21:00
Marchello
Подскажите пожалуйста в CodevisionAVR я смогу прошить МК только программаторами типа STK200+/300, AVR910 или есть какие еще альтернативные варианты! Может под USB есть вариант программатора! требуется прошить Atmega16 в CodevisionAVR а LPT у меня нет на компе!
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 08, 2013 22:51:28
ELcat
Marchello писал(а):Подскажите пожалуйста в CodevisionAVR я смогу прошить МК только программаторами типа STK200+/300, AVR910 или есть какие еще альтернативные варианты! Может под USB есть вариант программатора! требуется прошить Atmega16 в CodevisionAVR а LPT у меня нет на компе!
А AVR910 чем не USB??? Ещё есть AT STK-500. Ещё есть "дудка", но она шьёт из под своей проги.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб фев 09, 2013 13:19:32
Apparatchik
Совесть писал(а):Да человек сам не понимает о чем говорит.
Я нехочу вступать в споры, всеравно каждый останется при своем мнении. Скажу лишь, что с другого компилятора на CVAVR портировать оч. легко и быстро, а вот наоборот нада помучиться.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб фев 09, 2013 19:38:38
vitalik_1984
оч. легко и быстро, а вот наоборот нада помучиться.
Это смотря как программа написана, если есть такое
Код: Выделить всё
#define LED_ON PORTB.1=1
//и везде в программе этот фрагмент использован только так
if(anything) LED_ON;
то вполне легко сменить лишь одну строчку во всей программе.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Сб фев 09, 2013 19:49:19
Apparatchik
Согласен, но так бывает далеко не всегда.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс фев 10, 2013 00:06:00
vitalik_1984
Я бы даже сказал, что среди любителей так бывает очень и очень редко.Поэтому при переносе код из одного компилятора в другой возникают такие утычки.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс фев 10, 2013 03:40:09
Vov123
Применение всем известных макросов может свести переделку даже сложных программ к минимуму
Код: Выделить всё
#define SB(reg, bit) reg |= (1<<bit) //установить бит
#define CB(reg, bit) reg &= (~(1<<bit)) //сбросить бит
#define IB(reg, bit) reg ^= (1<<bit) //инвертировать бит
#define BIS(reg, bit) ((reg & (1<<bit)) != 0) //если бит установлен
#define BIC(reg, bit) ((reg & (1<<bit)) == 0) //если бит очищен
Кстати и для переделки,например,с AVR на PIC.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт фев 14, 2013 08:32:02
pokk
Делаю двоично-десятичное преобразования дробных чисел (123.456778) тип float
Для целых чисел сделал а вот с дробными проблема.
И тут нашёл два варианте решения разделить число на целую часть 123 и остаток 456778 вот в таком виде не как не получается.
И второе решение посчитать количество чисел после запятой и потом умножить на 10*n что бы получить число 123456778 вот это как-то не особо выходит.
Как будет правильнее ?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт фев 14, 2013 12:03:04
ELcat
Я просто умнжал на то количество разрядов, сколько мне нужно. То есть 1 - х10, 2 - х100 и т.д.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Чт фев 14, 2013 18:22:03
vitalik_1984
Vov123 писал(а):Применение всем известных макросов может свести переделку даже сложных программ к минимуму
--------------
Кстати и для переделки,например,с AVR на PIC.
Ага только пользоваться ими в таком виде :
Код: Выделить всё
#define CLEAR(reg, bit) reg &= (~(1<<bit))
#define LED1 {(PORTB,1)}
CLEAR LED1;
Тогда надпись CLEAR LED1; в любом месте будет обозначать одно и то же.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 15, 2013 07:22:54
Совесть
Что? Ошибку компиляции?
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пт фев 15, 2013 08:18:53
unalex
Код: Выделить всё
#define LED PORTB
#define RED 0
#define TOGGLE(reg, bit) reg ^= (1<<bit)
int main()
{
TOGGLE(LED, RED);
}
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс фев 17, 2013 23:26:11
Valek3306
Добрый вечер! Помогите пожалуйста! Мне надо организовать прием по UART с PC трех чисел от 0 до 255 и распихать эти три числа в три переменные. Передача может произойти в любое время. Контролер Мега8535.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Вс фев 17, 2013 23:35:36
Аlex
Пожелания Вы свои высказали, а вот чем помочь - не сказали
PS: И причём тут CVAVR ? Или эта тема была самой первой в области видимости ?

Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн фев 18, 2013 00:30:29
ELcat
Включи прерывание по факту приёма посылки UART. В обработчике прерываний отправляй принятый байт в одну из трёх промежуточных временных переменных и делай запуск таймера (если пришёл первый байт) или перезапуск (если второй). По прерыванию таймера (таймаут истёк, а очередная посылка UART так и не пришла) выполни отключение таймера и сброс временных переменных - так сказать переход в исходное состояние на случай обрыва/сбоя передачи. Если все три посылки пришли без сбоя (таймер ни разу не сработал), тогда выключай таймер, значения трёх временных переменных присваивай тем, которые надо установить в случае успешного сеанса приёма данных и переходи в режим ожидания нового сеанса приёма.
Re: CodeVision AVR в вопросах и ответах
Добавлено: Пн фев 18, 2013 18:44:33
Valek3306
Подскажите, почему такой способ не работает.
Код: Выделить всё
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
if(temp == 0){temp = 1; ru = UDR; };
if(temp == 1){temp = 2; gu = UDR; };
if(temp == 2){temp = 0; bu = UDR; };
}
Переменные все объявлены. Я посылаю по очередно три числа и по моей логике они должны заносится в три разных переменных, но каждая посылка заносятся в переменную ru. Я что то не правильно понимаю?
Извините за глупый вопрос.