CodeVision AVR в вопросах и ответах
Re: CodeVision AVR в вопросах и ответах
Кейл... хотя без разницы...
Не знаю что такое Протеус... только железо и логический анализатор...
Не знаю что такое Протеус... только железо и логический анализатор...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: CodeVision AVR в вопросах и ответах
HHIMERA писал(а):Не знаю что такое Протеус...
Как такое может быть что вы не знаете.
Proteus (система автоматизированного проектирования)
Отличительной чертой пакета PROTEUS VSM является возможность моделирования работы программируемых устройств: микроконтроллеров, микропроцессоров, DSP и проч.
- oleg110592
- Друг Кота
- Сообщения: 3832
- Зарегистрирован: Сб сен 10, 2011 17:46:25
Re: CodeVision AVR в вопросах и ответах
Для STM32 абсолютно не нужен, очень дорогой или криво сломанный Протеус. Для них существует дешёвый покупной или самодельный программатор/отладчик, позволяющий вести отладку программы непосредственно в железе, а не в виртуальной среде - это, поверьте, переносит процесс работы на совсем другой уровень.
Re: CodeVision AVR в вопросах и ответах
Отсюда пожалуйста поподробней.
Дайте пару ссылок на эти устройства.
Дайте пару ссылок на эти устройства.
Re: CodeVision AVR в вопросах и ответах
Не... ну... "Нужно иметь свою совесть, чтобы не иметь совесть других!"(С)...
Тема то про другое... для STM есть другие разделы и ветки...
Поиском... клон ST-Link... На ИзыйдиЭлектороник у ДиАхтунга точно есть... там же на Вики тоже было...
http://forum.easyelectronics.ru/viewtop ... 27aa8337b5
Обходится в копейки... и делается за один вечер...
=========
Сегодня с утра ещё одна мысль стрельнула по поводу семисегиентников на 74HC595... но озвучивать здесь не буду... во избежание...
Тема то про другое... для STM есть другие разделы и ветки...
Поиском... клон ST-Link... На ИзыйдиЭлектороник у ДиАхтунга точно есть... там же на Вики тоже было...
http://forum.easyelectronics.ru/viewtop ... 27aa8337b5
Обходится в копейки... и делается за один вечер...
=========
Сегодня с утра ещё одна мысль стрельнула по поводу семисегиентников на 74HC595... но озвучивать здесь не буду... во избежание...
"Я не даю готовых решений, я заставляю думать!"(С)
Re: CodeVision AVR в вопросах и ответах
Подскажите пожалуйста , как мне вставить еще одно условие в код. Сейчас если Dat1 ==0 то весь код выполняется , а мне нужно чтобы он выполнялся на половину , и затем ждал следующего условия
Код: Выделить всё
if(dat1==0)
{
delay_ms(50);
if (effect==1)
{
if (EditMode ) return;
for (mask = x; mask; mask >>= 1)
led_on(mask);
wait();
}
delay_ms(1000); // ВОТ тут вставить еще одно условие, например if(dat2==0)
for (mask = x; mask; mask >>= 1)
{
led_off(mask);
wait();
}
}
Re: CodeVision AVR в вопросах и ответах
думаю так пойдет
delay_ms(1000);
while(dat2!=0) ;
мк на while(dat2!=0) ; будет висеть пока dat2 не станет 0
delay_ms(1000);
while(dat2!=0) ;
мк на while(dat2!=0) ; будет висеть пока dat2 не станет 0
Фонтаны на Outlet Village Белая Дача, г Наро- Фоминск
Цех упаковки стройматериалов
Цех пиролиза покрышек с крекингом и ректификацией
Серийные приборы "Умный Дом" Uniel
Премия первой степени "Больше чем профессия" 2016 г
Цех упаковки стройматериалов
Цех пиролиза покрышек с крекингом и ректификацией
Серийные приборы "Умный Дом" Uniel
Премия первой степени "Больше чем профессия" 2016 г
Re: CodeVision AVR в вопросах и ответах
Onkel писал(а):думаю так пойдет
delay_ms(1000);
while(dat2!=0) ;
мк на while(dat2!=0) ; будет висеть пока dat2 не станет 0
Спасибо огромное. Работает
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: CodeVision AVR в вопросах и ответах
на atmega16 чета не получается ацп запустить
Задача померить напряжение на PA3, он же ADC3
AREF и AVCC +5вольт
Задача померить напряжение на PA3, он же ADC3
AREF и AVCC +5вольт
Код: Выделить всё
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd4x40.h>
#include <stdio.h> //Библиотека ввода-вывода
char lcd_buffer[35];
float result;
// Declare your global variables here
#define FIRST_ADC_INPUT 3
#define LAST_ADC_INPUT 3
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
// Voltage Reference: AREF pin
#define ADC_VREF_TYPE ((0<<REFS1) | (0<<REFS0) | (0<<ADLAR))
// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
// Read the AD conversion result
adc_data[input_index]=ADCW;
// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | ADC_VREF_TYPE)+input_index;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
}
void main(void)
{
// Declare your local variables here
// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AREF pin
// ADC Auto Trigger Source: ADC Stopped
ADMUX=FIRST_ADC_INPUT | ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (1<<ADSC) | (0<<ADATE) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
// SPI initialization
// SPI disabled
SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
lcd_init();
// Global enable interrupts
#asm("sei")
while (1)
{
lcd_gotoxy(0,0);
result=((5.00*adc_data[0])/1024.00);
sprintf(lcd_buffer,"U=%.2fV",result);
lcd_puts(lcd_buffer);
}
}- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
В целом ход мыслей понятный, но как-то не совсем красиво это, на мой взгляд, - в обработчике прерывания делать задержку в 10мкс и стартовать новое измерение. Возможно, где-то тут всё виснет (правда, симптомы "не работает" не описаны). Лучше периодически запускать преобразование по прерыванию от таймера.
- levaclaus
- Потрогал лапой паяльник
- Сообщения: 302
- Зарегистрирован: Пн янв 07, 2008 16:56:28
- Откуда: Минск
Re: CodeVision AVR в вопросах и ответах
Честно говоря, не понял что произошло - но заработало
А нет, понял, в настройках проекта изменил (s)printf Features: int, width на float, width, precision
только вот памяти отхапало это многовато, есть другие варианты?
А нет, понял, в настройках проекта изменил (s)printf Features: int, width на float, width, precision
только вот памяти отхапало это многовато, есть другие варианты?
Код: Выделить всё
float result;
char lcd_buffer[5];
***
#define FIRST_ADC_INPUT 3
#define LAST_ADC_INPUT 3
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
// Voltage Reference: AVCC pin
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))
// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
// Read the AD conversion result
adc_data[input_index]=ADCW;
// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
input_index=0;
ADMUX=(FIRST_ADC_INPUT | ADC_VREF_TYPE)+input_index;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=(1<<ADSC);
}
****
// ADC initialization
// ADC Clock frequency: 125,000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: ADC Stopped
ADMUX=FIRST_ADC_INPUT | ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (1<<ADSC) | (0<<ADATE) | (0<<ADIF) | (1<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
SFIOR=(0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
****
result=((5.00*adc_data[0])/1024.00); //пересчитываем значение АЦП в вольты
sprintf(lcd_buffer,"U=%.2fV",result); //помещаем во временную переменную результат
lcd_puts(lcd_buffer); //выводим на экран
Последний раз редактировалось ibiza11 Пт авг 22, 2014 15:10:42, всего редактировалось 1 раз.
Причина: для оформления кода используйте тег [code]
Причина: для оформления кода используйте тег [code]
-
misterkuk
- Мучитель микросхем
- Сообщения: 400
- Зарегистрирован: Сб апр 17, 2010 10:30:13
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
Подскажите. В codevision avr для меги8 Объявляю:
В процессе работы программы туда помещается число, после чего мне нужно сохранить эти переменные в EEPROM.
После включения проца нужно их считать. и продолжить с ними работу.
Библиотеки не нашол. На форумах Для этой среды ничего вразумительного тоже. Объясните как это организовать.
Код: Выделить всё
int peremennaya1;
char peremennaya2;
В процессе работы программы туда помещается число, после чего мне нужно сохранить эти переменные в EEPROM.
После включения проца нужно их считать. и продолжить с ними работу.
Библиотеки не нашол. На форумах Для этой среды ничего вразумительного тоже. Объясните как это организовать.
Re: CodeVision AVR в вопросах и ответах
Добрый день, у меня такой вопрос:
есть структура
мне необходимо записать в eeprom массив из 100 таких структур(причем инициилизировав их сразу одинаковыми значениями), с возможностью их чтения и перезаписи
не получается даже объявить массив
есть структура
Код: Выделить всё
struct st
{
unsigned char A[8];
unsigned char B[8];
unsigned char C[8];
} state;мне необходимо записать в eeprom массив из 100 таких структур(причем инициилизировав их сразу одинаковыми значениями), с возможностью их чтения и перезаписи
не получается даже объявить массив
Код: Выделить всё
__eeprom struct st structProg[100];Re: CodeVision AVR в вопросах и ответах
А что за AVR контроллер с 2400 байт EEPROM? 
- Аlex
- Модератор
- Сообщения: 4614
- Зарегистрирован: Чт мар 18, 2010 23:09:57
- Откуда: Планета Земля
- Контактная информация:
Re: CodeVision AVR в вопросах и ответах
1. Что значит "не получается" ? По-подробнее нельзя расписать ? 
2. Хватит ли в Вашем камне памяти EEPROM ? В Вашем случае, её нужно 2.4 Кб.
3. Попробуйте через typedef.
2. Хватит ли в Вашем камне памяти EEPROM ? В Вашем случае, её нужно 2.4 Кб.
3. Попробуйте через typedef.
Re: CodeVision AVR в вопросах и ответах
AT90CAN128
тем не менее компилятор ругается
пишет
structure must be stored in the same memory class as defined
тем не менее компилятор ругается
пишет
structure must be stored in the same memory class as defined
Re: CodeVision AVR в вопросах и ответах
a_skr
у меня версия cvavr 1.25
Аlex
прошу прощения но я плохо представляю как это, в инете примеров со структурами под cvavr не нашёл...
с обычными переменными всё компилируется, а со структурой хочет #define но как-то я не понимаю что он хочет ...
у меня версия cvavr 1.25
Аlex
прошу прощения но я плохо представляю как это, в инете примеров со структурами под cvavr не нашёл...
с обычными переменными всё компилируется, а со структурой хочет #define но как-то я не понимаю что он хочет ...