Например TDA7294

Форум РадиоКот • Просмотр темы - CodeVision AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб фев 28, 2026 13:20:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 8371 ]     ... , , , 347, , , ...  
Автор Сообщение
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 11, 2015 08:53:37 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср янв 26, 2011 13:43:30
Сообщений: 414
Откуда: С того берега моря
Рейтинг сообщения: 0
Все верно, внешнее прерывание при переходе через ноль - INT0. Попробую изменять тики таймера, после чего попробую завязать это все на кнопки UP-DOWN.. По сути это будет регулятор мощности на МК + Симистор, в нете как-то не густо примеров реализации... Особенно в CV.

_________________
- Бежит этот подлец-электрон, а вокруг его масса (аж 10 в 23й) штук ионов кремния и 10 в 15й ионов примеси и он, подлец, взаимодействует!


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 11, 2015 12:57:26 
Грызет канифоль

Карма: 1
Рейтинг сообщений: -3
Зарегистрирован: Ср авг 01, 2012 10:45:42
Сообщений: 261
Рейтинг сообщения: 0
Добрый день!
В интернете нашел что существуют уже аналог atmega128 (1887ВЕ7Т, 1887ВЕ8Т) непонятно код написанный для atmega128 нужно переделывать под аналог или нет?
Приношу извинение за глупые вопросы.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 11, 2015 14:27:58 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 1
Jman писал(а):
... в нете как-то не густо примеров реализации...

Да уж...
viewtopic.php?f=57&p=2353634
viewtopic.php?f=21&t=13259
http://megashemes.appspot.com/shemy-pay ... iy-na.html
http://prosje.be/CO/Schemas/slides/ATtiny13Dimmer.html
http://forum.easyelectronics.ru/viewtopic.php?t=9865
http://forum.easyelectronics.ru/viewtop ... ектор+нуля
http://electronix.ru/forum/index.php?sh ... ntry261548

Jman писал(а):
... Особенно в CV.

Да, туда ему и дорога.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 11, 2015 15:24:30 
Мучитель микросхем
Аватар пользователя

Карма: 4
Рейтинг сообщений: 15
Зарегистрирован: Ср янв 26, 2011 13:43:30
Сообщений: 414
Откуда: С того берега моря
Рейтинг сообщения: 0
Цитата:
Да, туда ему и дорога

Ну это ваше личное мнение....

_________________
- Бежит этот подлец-электрон, а вокруг его масса (аж 10 в 23й) штук ионов кремния и 10 в 15й ионов примеси и он, подлец, взаимодействует!


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 12, 2015 00:38:01 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 1
Jman писал(а):
Ну это ваше личное мнение....
О, сколько вам открытий чудных готовит... © ну, и далее по тексту. :)))
Штука в том, что это да-ле-ко не только мое мнение. :dont_know:


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 13, 2015 13:12:51 
Грызет канифоль

Карма: 1
Рейтинг сообщений: -3
Зарегистрирован: Ср авг 01, 2012 10:45:42
Сообщений: 261
Рейтинг сообщения: 0
Добрый день!
Подскажите есть код, работает все как надо, но иногда бывает сбой, программа перегрузится и начинает сначала. В чем причина в коде дела, может с таймером что-то, нужно его сбрасывать (не силен в этом) или из-за питания, микроконтроллер управляет двумя моторами мощными.
Даже когда кнопка включена
Код:
if(PINC.2==0)
{
TCCR2=0x00;         
OCR1BL=0xC0;       
blinkFlag = 0;       
blinkFlag1 = 0; 
blinkFlag2 = 0;
}

Код во вложениях
Заранее спасибо


Вложения:
123.rar [33.2 KiB]
Скачиваний: 111
Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 08:46:52 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт фев 24, 2011 13:00:49
Сообщений: 190
Рейтинг сообщения: 0
Привет котам!
Пытаюсь посчитать CRC структуры в EEPROME (мега 128, КодВижн 2.05.3) но не выходит взять указатель на структуру. Лебедева смотрел - не помогло.
попробуйте кто нить у себя плз
Код:
typedef struct
{
    float Pol_min;                   
    float Pol_max;                   
    float Stop;
    float Start;
    float Min;                   
    float Max;                   
    float correct_1;               
    float correct_2;               
    float correct_3;                     
    unsigned int u16_Bit_Cfg_2; 
    unsigned int u16_Bit_Cfg_1; 
    unsigned int u16_TimerValue;     
    unsigned int u16_TempInterval; 
    signed int  i16_TempAlarm;       
    unsigned char u8_Path_point_1;     
    unsigned char u8_Path_point_2;     
    unsigned char u8_TimeRoute;   
    unsigned char u8_DTemper;       
    unsigned char u8_Start_Speed;       
    unsigned char u8_TimePOL;       
   
}ConfStr;

eeprom ConfStr CfgDev;

eeprom ConfStr *pCfgDev;
//int eeprom *CfgDev; //так тоже не работает, ошибка та же, когда пытаешься взять адрес структуры.
pCfgDev = &CfgDev; //<<---матюкается на эту строку "Error: G:\111.c(23): '(' expected"
//pCfgDev = &CfgDev.Pol_min; //и так не хочет работать


Что делаю не так? Спасибо.

_________________
:solder: 32-х ядерный процессор из П213В


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 11:08:37 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4609
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
typedef struct{
...............     
...............   
...............   
}ConfStr;

ConfStr    CfgDev, *pCfgDev;

.................
.................

pCfgDev=&CfgDev;


Только зачем вам для чтения памяти указатель на структуру ? Наверное, нужен указатель на char (или int, если CRC16).
Тогда так :
Код:
ConfStr    CfgDev;
int*       pCfgDev;

.................
.................

pCfgDev = (int*)&CfgDev;


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 11:31:06 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт фев 24, 2011 13:00:49
Сообщений: 190
Рейтинг сообщения: 0
Аlex писал(а):

Только зачем вам для чтения памяти указатель на структуру ? Наверное, нужен указатель на char (или int, если CRC16).
Тогда так :
Код:
ConfStr    CfgDev;
int*       pCfgDev;

.................
.................

pCfgDev = (int*)&CfgDev;


Да, хочу подсчитать CRC16 (код взят из вики) для расположенной в еепроме структуры.
по вашему коду тоже не работает - ошибка та же, ругается на строку взятия адреса. Обновился до CV версии 3, думал поможет. :(

Код:

eeprom ConfStr CfgDev;// @0x10;
int  *pCfgDev;
//int eeprom *pCfgDev; //с таким обьявлением тоже самое
pCfgDev = (*int)&CfgDev; //---------- на эту строку и ругается. "Error: G:\Proekt\Proekts\crc16\111.c(24): '(' expected"


unsigned int Crc16(unsigned char *pcBlock, int len)
{
    unsigned int crc = 0xFFFF;
    unsigned char i;

    while (len--)
    {
        crc ^= *pcBlock++ << 8;

        for (i = 0; i < 8; i++)
            crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
    }

    return crc;
}

придется наверное держать эту структуру и в оперативке, что бы посчитать СRC

...Заработало вот так. Мой косяк, я пытался инициализировать указатель не в теле ф-ции майн (двоешник я :oops: )
Код:
eeprom ConfStr CfgDev;// @0x10;
ConfStr eeprom *pCfgDev;
main
{
 pCfgDev = &CfgDev;
 ...
}

осталось теперь его привести к 16 битному (если он не такой вдруг).

_________________
:solder: 32-х ядерный процессор из П213В


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 12:15:16 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4609
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
wellcom писал(а):
осталось теперь его привести к 16 битному (если он не такой вдруг).

Код:
eeprom ConfStr CfgDev;// @0x10;
int eeprom *pCfgDev;
main
{
 pCfgDev = (int eeprom *)&CfgDev;
 ...
 for(i=0;i<sizeof(CfgDev)/2;i++){
   data = pCfgDev[i];
 }
}



Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 14:41:58 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт фев 24, 2011 13:00:49
Сообщений: 190
Рейтинг сообщения: 0
подскажите плз еще по указателям...что то туго ко мне доходит

ф-ция CRC16 принимает char указатель, однако указатель на EEPROM int -овый, когда ставлю преобразование на входе в ф-цию при компилляции есть 3 предупреждения
Код:

unsigned int Crc16(unsigned char *pcBlock, int len)
{
    unsigned int crc = 0xFFFF;
    unsigned char i;

    while (len--)
    {
        crc ^= *pcBlock++ << 8; // здесь говорит что результат здвига будет 0 или переполнение "Warning: ......c(22): shift result will be 0" и "....CRC16.c(22): overflow is possible in 8 bit shift left, casting shifted  operand to 'int' may be required"

        for (i = 0; i < 8; i++)
            crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
    }

    return crc;
}


unsigned int u16_CRC_CFG;

eeprom ConfStr CfgDev;// @0x10;
ConfStr eeprom *pCfgDev;
main
{

 pCfgDev = &CfgDev; //указ на ст-ру в еепроме, книги говорят что указ на еепром только 16 бит могут быть
 u16_CRC_CFG= Crc16((unsigned char*)pCfgDev, sizeof(CfgDev)); //здесь компилятору не нравиться преобразование "Warning: G:.......111.c: suspicious pointer conversion"
}

думал заменить на 16 битные указатель pcBlock, но размер структуры равен 61 байт.
как быть в таком случае?

_________________
:solder: 32-х ядерный процессор из П213В


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 15:43:45 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
1) crc ^= *pcBlock++ << 8; // здесь говорит что результат здвига будет 0 или переполнение
Однозначно переполнение т.к. операнды 8-разрядные. Сделайте так:
crc ^= ((uint16_t)*pcBlock++) << 8;

2)u16_CRC_CFG= Crc16((unsigned char*)pCfgDev, sizeof(CfgDev)); //здесь компилятору не нравиться
Странно что не ошибка. Нельзя приводить тип указателя на другой сегмент памяти(не путать RAM-EEPROM).

Цитата:
думал заменить на 16 битные указатель pcBlock, но размер структуры равен 61 байт.

Указателю грубо говоря фиолетово на какой размер данных он указывает. В CVAVR его разрядность 16 бит, ни больше, ни меньше.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 16:06:30 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт фев 24, 2011 13:00:49
Сообщений: 190
Рейтинг сообщения: 0
uk8amk писал(а):
1) crc ^= *pcBlock++ << 8; // здесь говорит что результат здвига будет 0 или переполнение
Однозначно переполнение т.к. операнды 8-разрядные. Сделайте так:
crc ^= ((uint16_t)*pcBlock++) << 8;

2)u16_CRC_CFG= Crc16((unsigned char*)pCfgDev, sizeof(CfgDev)); //здесь компилятору не нравиться
Странно что не ошибка. Нельзя приводить тип указателя на другой сегмент памяти(не путать RAM-EEPROM).

Цитата:
думал заменить на 16 битные указатель pcBlock, но размер структуры равен 61 байт.

Указателю грубо говоря фиолетово на какой размер данных он указывает. В CVAVR его разрядность 16 бит, ни больше, ни меньше.

не проходит ваш вариант, т.к. оперирование идет с 8 разр указателем, и CV ето не по душе как то. Пробовал и ставить интовые указатели в параметрах ф-ции со спецификатором eeprom, всеравно не идет. На сколько я понимаю нет состыковки указатель на структуру в еепром, сам указатель в озу и он 16 бит, а операции я пытаюсь проводить как с 8 битным указателем.... в общем я уже сам запутался окончательно. :shock:
СпойлерИзображение
Изображение


Вложения:
2.jpg [115.25 KiB]
Скачиваний: 731
1.jpg [40.07 KiB]
Скачиваний: 457

_________________
:solder: 32-х ядерный процессор из П213В
Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 16:40:05 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт фев 24, 2011 13:00:49
Сообщений: 190
Рейтинг сообщения: 0
В общем подсказали мне так
Код:
eeprom ConfStr CfgDev;// @0x10;
ConfStr eeprom *pCfgDev;

unsigned int Crc16(unsigned char eeprom  *pcBlock, int len)
{
    unsigned int crc = 0xFFFF;
    unsigned short i;

    while (len--)
    {     
        i=(unsigned short)*pcBlock;
        i<<=8;
        crc ^= i;
        pcBlock++;

        for (i = 0; i < 8; i++)
            crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
    }

    return crc;
}

main{

 pCfgDev = &CfgDev; //указ на ст-ру в еепроме

u16_CRC_CFG_AFS = Crc16((unsigned char eeprom*)pCfgDev, sizeof(CfgDev));
}

ошибок и предупреждений нету, CRC вроде вычисляет, но не уверен правильно ли.

_________________
:solder: 32-х ядерный процессор из П213В


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 16, 2015 17:46:01 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4609
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Мой Вам совет - откажитесь от этого дурацкого квалификатора. Он не стоит того, чтобы из-за него наживать такой геморрой.
Создайте нормальные функции чтения/записи ЕЕПРОМ и работайте с ними.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 23, 2015 06:28:13 
Родился

Зарегистрирован: Пт ноя 07, 2014 20:34:56
Сообщений: 16
Рейтинг сообщения: 0
Подскажите, пожалуйста, cvavr v3 не понимает, когда я записываю букву в кавычках в переменную char. Судя по обучалкам на ранних версиях он воспринимал это как ascii код. Может есть какая настройка в его компиляторе, или как-то по другому надо записать, чтоб он работал как мне надо?


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 23, 2015 07:08:23 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1443
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4609
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Может, для начала, покажите код и ругательство компилятора ?
Зы: А вообще, в кавычках пишется строка, а не символ.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 23, 2015 07:17:33 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2121
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18476
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
символ в апострофах, в кавычках - строка.
'c' - символ
"c" - строка

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 23, 2015 07:51:40 
Мучитель микросхем

Карма: 3
Рейтинг сообщений: 44
Зарегистрирован: Вс авг 30, 2015 03:52:59
Сообщений: 469
Рейтинг сообщения: 1
gis писал(а):
... букву в кавычках в переменную char. Судя по обучалкам на ранних версиях он воспринимал это как ascii код.
Неизвестно, кто тут более матери ценен - обучалки или ЦВ - однако, лишний раз подтверждает, что ЦВ одинаково непригоден и 'пироги печь', и 'сапоги тачать'. В дополнение к вышепосоветованному, предложу такое:
Код:
char *s="Строка, мля.", c;

    c = *s;

Иногда и так бывает полезно. Хотя, это не общий случай.


Вернуться наверх
 
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт ноя 24, 2015 21:20:12 
Говорящий с текстолитом
Аватар пользователя

Карма: 8
Рейтинг сообщений: 212
Зарегистрирован: Чт июн 10, 2010 20:11:19
Сообщений: 1525
Рейтинг сообщения: 0
А разве сработает? Указатель не выделяет себе память при создании. Лучше так
Код:
char str[]="Вот это строка", *p;
p=str;


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 8371 ]     ... , , , 347, , , ...  

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y