CodeVision AVR в вопросах и ответах
- kimi112
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Ср окт 30, 2013 16:05:54
- Откуда: ХМАО. Когалым
Re: CodeVision AVR в вопросах и ответах
Pink-Pank, спасибо теперь работает
- Pink-Pank
- Опытный кот
- Сообщения: 721
- Зарегистрирован: Ср июн 11, 2014 09:43:13
- Откуда: США
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
В знак благодарности дашь на Бехе погонять? 
Fucking static initialization order fiasco
- kimi112
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Ср окт 30, 2013 16:05:54
- Откуда: ХМАО. Когалым
Re: CodeVision AVR в вопросах и ответах
Pink-Pank писал(а):В знак благодарности дашь на Бехе погонять?
как буду на ней проездом у Вас в США, ну или вы к нам в ХМАО
- kimi112
- Встал на лапы
- Сообщения: 122
- Зарегистрирован: Ср окт 30, 2013 16:05:54
- Откуда: ХМАО. Когалым
Re: CodeVision AVR в вопросах и ответах
Ув. коты помогите еще с одной проблемой, расширил возможности данной программы для подключений трех разрядного индикатора и теперь возникла проблема, при выводе трех разрядного числа десятки пропадают, т. е. в переменной 123 на индикатор выводится 1-3.
- Вложения
-
- счетчик.rar
- (18.78 КБ) 125 скачиваний
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Код: Выделить всё
/*выводим на индикаторы количество оборотов(витков)*/
number3=vitok%10; //выводим единицы
number2=vitok/10; //выводим десятки
number1=vitok/100; //выводим сотниВопрос на засыпку: если vitok, например, равно 123, чему равен number2 и что будет выведено в этой позиции?
- Pink-Pank
- Опытный кот
- Сообщения: 721
- Зарегистрирован: Ср июн 11, 2014 09:43:13
- Откуда: США
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Засыпать не будем.
Обновил архив. Протеус как-то некорректно отрабатывал (-1). Заменил на 0xFF. Стало норм работать
Обновил архив. Протеус как-то некорректно отрабатывал (-1). Заменил на 0xFF. Стало норм работать
- Вложения
-
- счетчик.rar
- (95.91 КБ) 151 скачивание
Последний раз редактировалось Pink-Pank Чт окт 30, 2014 09:16:15, всего редактировалось 1 раз.
Fucking static initialization order fiasco
- yur4ik
- Вымогатель припоя
- Сообщения: 613
- Зарегистрирован: Сб окт 17, 2009 18:56:05
- Откуда: РФ, Башкортостан г.Сибай
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Здравствуйте, такой вопрос надо массив типа char преобразовать к типу int. Знаю что есть atoi() вроде в стандартной библиотеке лежит но чет не находит ее компилятор, в какой библиотеке искать ее?
Все нашел в #include <stdlib.h>
Все нашел в #include <stdlib.h>
Нельзя всё знать, достаточно понимать.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Нет, тут человек, похоже, сформулировал некорректно. Похоже, ему нужно массив char-ов (строку типа "1234") привести к int (числу 1234).
Можно и atoi использовать, но часто использование функций из stdlib сильно увеличивает размер прошивки, поэтому, если размер прошивки критичен, то, возможно, лучшим вариантом было бы написать что-то своё для преобразования.
Можно и atoi использовать, но часто использование функций из stdlib сильно увеличивает размер прошивки, поэтому, если размер прошивки критичен, то, возможно, лучшим вариантом было бы написать что-то своё для преобразования.
- Vanes
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Вт июл 08, 2014 14:27:38
- Откуда: Славянск-на-Кубани
Re: CodeVision AVR в вопросах и ответах
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: CodeVision AVR в вопросах и ответах
Attiny2313 USI
Связывался с SPI чипом памяти.
Может чем поможет:
Связывался с SPI чипом памяти.
Может чем поможет:
Код: Выделить всё
#define SHIFT (1<<USIWM0)|(0<<USICS0)|(1<<USITC)|(1<<USICLK)
#define STROB (1<<USIWM0)|(0<<USICS0)|(1<<USITC)
// Universal Serial Interface initialization
// Mode: Three Wire (SPI)
// Clock source: Register & Counter=USICLK
// USI Counter Overflow Interrupt: Off
USICR=0x12;
char SPI_rx(unsigned char data)
{
char i;
USIDR=data;
for(i=0;i<8;i++)
{
USICR=STROB;
USICR=SHIFT;
};
return USIDR;
}Re: CodeVision AVR в вопросах и ответах
Подскажите пожалуйста пример для для записи-чтения еепром. А то примеры в книге Лебедева как-то не вызывают доверия. Я читал
где-то,что надо сначала дождаться готовности еепром а потом произвести запись с указанием адресов ячеек.
где-то,что надо сначала дождаться готовности еепром а потом произвести запись с указанием адресов ячеек.
Re: CodeVision AVR в вопросах и ответах
eeprom unsigned char Volume=5;
Вот вам пример объявления переменной, размещённой в EEPROM. Каждый раз, когда вы будете осуществлять с ней какие-либо действия, код, сгенерированный компилятором, автоматически будет извлекать и сохранять значение. Поаккуратнее с EEPROM, количество циклов записи в эту память конечно и реально составляет около 150 тыс. циклов (даташит гарантирует 100 тыс.). Так что для любых манипуляций используйте промежуточные переменные, например:
unsigned char Temp;
Temp=Volume; //Чтение из EEPROM
...//Какие-то действия с переменной Temp
Volume=Temp; //Сохранение в EEPROM
Вот вам пример объявления переменной, размещённой в EEPROM. Каждый раз, когда вы будете осуществлять с ней какие-либо действия, код, сгенерированный компилятором, автоматически будет извлекать и сохранять значение. Поаккуратнее с EEPROM, количество циклов записи в эту память конечно и реально составляет около 150 тыс. циклов (даташит гарантирует 100 тыс.). Так что для любых манипуляций используйте промежуточные переменные, например:
unsigned char Temp;
Temp=Volume; //Чтение из EEPROM
...//Какие-то действия с переменной Temp
Volume=Temp; //Сохранение в EEPROM
- Vanes
- Первый раз сказал Мяу!
- Сообщения: 27
- Зарегистрирован: Вт июл 08, 2014 14:27:38
- Откуда: Славянск-на-Кубани
Re: CodeVision AVR в вопросах и ответах
ТЫ заголовочный файл <spi.h> подключал? Я так понимаю что бы отправить данные нужно нужно их поместить в USIDR ???uk8amk писал(а):Attiny2313 USI
Связывался с SPI чипом памяти.
Может чем поможет:
Код: Выделить всё
#define SHIFT (1<<USIWM0)|(0<<USICS0)|(1<<USITC)|(1<<USICLK)
#define STROB (1<<USIWM0)|(0<<USICS0)|(1<<USITC)
// Universal Serial Interface initialization
// Mode: Three Wire (SPI)
// Clock source: Register & Counter=USICLK
// USI Counter Overflow Interrupt: Off
USICR=0x12;
char SPI_rx(unsigned char data)
{
char i;
USIDR=data;
for(i=0;i<8;i++)
{
USICR=STROB;
USICR=SHIFT;
};
return USIDR;
}
-
uk8amk
- Поставщик валерьянки для Кота
- Сообщения: 2222
- Зарегистрирован: Вт ноя 27, 2007 11:32:06
- Откуда: Tashkent
Re: CodeVision AVR в вопросах и ответах
Смотрим внимательно на реализацию функции
char SPI_rx(unsigned char data)
и думаем нафига там spi.h.
Чтобы отправить данные, надо поместить байт в USIDR, затем 8 раз дёрнуть биты USITC,USICLK и забрать полученный байт из USIDR(если это нужно).
char SPI_rx(unsigned char data)
и думаем нафига там spi.h.
Чтобы отправить данные, надо поместить байт в USIDR, затем 8 раз дёрнуть биты USITC,USICLK и забрать полученный байт из USIDR(если это нужно).
Re: CodeVision AVR в вопросах и ответах
Приветствую!
Вопрос, возможно, немного не по теме.
Нужна следящая функция управления некой физической величиной. На входе две величины типа unsigned int (заданное и измеренное значения параметра), на выходе значение типа unsigned char (скважность), которое будет преобразовываться в ШИМ и подаваться на объект управления. Время отклика объекта управления будет порядка 20мс (аналоговый интегратор сигнала ШИМ) + около 0,6мс - время измерения параметра. Дайте, пожалуйста, пример реализации чего-нибудь подобного для CV AVR.
Вопрос, возможно, немного не по теме.
Нужна следящая функция управления некой физической величиной. На входе две величины типа unsigned int (заданное и измеренное значения параметра), на выходе значение типа unsigned char (скважность), которое будет преобразовываться в ШИМ и подаваться на объект управления. Время отклика объекта управления будет порядка 20мс (аналоговый интегратор сигнала ШИМ) + около 0,6мс - время измерения параметра. Дайте, пожалуйста, пример реализации чего-нибудь подобного для CV AVR.
Re: CodeVision AVR в вопросах и ответах
Вопрос нуля и абсолютного новичка-идиота - имеется ME EasyAVR5a - какой компилятор лучше подобрать под эту плату и как сконнектить комп. с платой?
Понимаю, что вопрос очень очевидный, но ввиду первой платы в жизни плохо понимаю сам процесс коннетинга платы с компом.
Имеется Win7 и MacOS, приоритет в сторону последнего.
Понимаю, что вопрос очень очевидный, но ввиду первой платы в жизни плохо понимаю сам процесс коннетинга платы с компом.
Имеется Win7 и MacOS, приоритет в сторону последнего.
Re: CodeVision AVR в вопросах и ответах
Спасибо radiokot, компилятор скачан, плата подключена. Теперь вопрос - как запускать на плате программы? Мной был скачан компилятор С-ный и Паскаль, готовые примеры программ на Паскале в формате .hex, но при выборе соответствующего кристалла (Аtmega164P) в AVRFlash и попытках воспроизвести программу ничего не происходит. Только процесс идет: от 0% до ста, на самой же плате ничего. В чем может быть дело? Пытался сделать сброс - не помогло. Помогите пожалуйста.
Re: CodeVision AVR в вопросах и ответах
В данной теме рассматривается работа в CV AVR, его и качайте. Что есть что и для чего на вашей плате прочитаете в документации, которую найдёте по ссылке, сброшенной вам в ЛС. Весь необходимый софт найдёте там же. Если хотите узнать как написать свою первую программу - начните читать книжку А.В.Белова. Судя по вашему первому сообщению, данная книга вам подойдёт идеально. Многие из здесь присутствующих стартовали именно с неё. Если в ходе прочтения будут возникать какие-то вопросы - задавайте их здесь. На данный момент у вас пока нет понимания, что к вам попало в руки и вы даже не можете сформулировать конкретный вопрос.