Например TDA7294

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



Текущее время: Пт окт 20, 2017 07:57:02



Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 7841 ]  На страницу Пред.  1 ... 385, 386, 387, 388, 389, 390, 391 ... 393  След.
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт апр 21, 2017 16:09:03 
Открыл глаза
Аватар пользователя

Зарегистрирован: Сб янв 07, 2017 11:14:29
Сообщений: 53
Откуда: Н-Новгород
Рейтинг сообщения: 0
Аlex писал(а):
Такую фигню :
даже самый глупый компилятор должен вырезать не глядя.

я для примера написал, что с bit результат при компиляции меньше, при чем при объявлении переменных в bit код не растет совсем.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт апр 25, 2017 22:19:56 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
всем привет. написал я такой код но не идет обнуление переменной se. (переменная se глобальная)

interrupt [TIM1_COMPA] void sec (void) //вызов прерывания по совпадению счетного таймера
{
se++;
if (se==43199)
{se=0;};
if (PIND.6==0)
{delay_ms (10);
se=se+600;
};
PORTB.0=~PORTB.0;
}


не правильно что ли?

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 
От идеи до готового устройства! Нужен только EasyEDA!

Бесплатный инструмент для проектирования печатных плат - нарисуй свою плату прямо сейчас!

JLCPCB for PCB Prototyping, всего $2 за 10 печатных плат 10×10см. Доставка 2-3 дня.

LCSC Parts: Экономия до 50%, большой выбор компонентов в наличии, отправка заказа в день оплаты.

Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт апр 25, 2017 22:25:06 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10737
Откуда: Новочеркасск
Рейтинг сообщения: 1
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
когда уже начинающие научатся приводить свой код целиком, чтобы не приходилось задавать наводящие вопросы? вопрос риторический отвечать не надо. и я не буду отвечать на ваш вопрос.

_________________
я свою работу за вас делать не буду!


Вернуться наверх
 Профиль WWW  
 

Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт апр 25, 2017 22:27:42 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
не хочу полностью. будете смотреть мой бред. и выговаривать потом :))
что я не правильно сделал. точку с запятой не правильно поставил?

вот и занимайся программированием. пока сам не сделаешь фиг кто подскажет

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 

Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт апр 25, 2017 23:42:53 
Друг Кота
Аватар пользователя

Карма: 43
Зарегистрирован: Вт апр 24, 2007 08:45:40
Сообщений: 3915
Откуда: Minsk
Рейтинг сообщения: 1
ARV, не такой уж он начинающий...
Я для МК на Си не пишу, но в глаза бросается: в одном месте se инкрементируется, в другом - увеличивается на 600, а поскольку проверка строго на равенство, то может перескочить это значение и дальше крутиться до посинения. И se, надеюсь, объявлена не однобайтовой переменной ? Еще сишники говорят - volatile помогает в подобном случае, им виднее.
Чем мог...

_________________
Изображение


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 26, 2017 07:32:15 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2898
Откуда: Минск
Рейтинг сообщения: 0
mixon46: Проделайте простые вычисления - с какой частотой вызывается таймер, далее, каков интервал времени между двумя прерываниями и, наконец, влезает ли 10мс задержка в этот интервал.

Это я к тому, что задержки в прерывании недопустимы вообще.

Ну и да, тип se неизвестен. Возможно, 43199 вообще невозможное значение.

P.S. И я упорно не понимаю желание людей писать код без форматирования. Словно сочинение какое-то. Ведь так нереально ошибки искать, когда даже логика кода глазами не видна. Когда, всего лишь добавление нескольких отступов делают всё гораздо читабельнее и понятнее.
Код:
interrupt [TIM1_COMPA] void sec(void)
{
    se++;
    if (se == 43199)
        se = 0;
    if (PIND.6 == 0) {
        delay_ms (10);
        se = se + 600;
    }
    PORTB.0 = ~PORTB.0;
}


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 26, 2017 11:24:46 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
Jack_A вы несомненно правы. Я прибавлял значение по 600 и поэтому произошел перескок. Дело было не в том почему переменная не обнулилась. Она бы обнулилась если бы значение было ровно 42199 но я же его перескочил. И соответственно это и привело к непоняткам. Я знаю что делать дальше. Спасибо ))

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 26, 2017 11:26:42 
Друг Кота
Аватар пользователя

Карма: 43
Зарегистрирован: Вт апр 24, 2007 08:45:40
Сообщений: 3915
Откуда: Minsk
Рейтинг сообщения: 1
Ну дык оно ж ... :)


---------------------------------------
Ставим плюсы :shock:

_________________
Изображение


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 26, 2017 12:57:46 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
я бы поставил + только почему то не ставится. глюк какой что ли

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт май 04, 2017 18:24:58 
Родился

Зарегистрирован: Ср апр 12, 2017 17:30:29
Сообщений: 4
Рейтинг сообщения: 0
Ребят хелп,укажите на ошибку пожалуйста. Если даже в пустой программе включить Ацп и прерывания то начинает на постоянку работать порт B0,в чем проблема?


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт май 04, 2017 22:49:03 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
скажите. вот у меня есть переменная. она равна 0. но при каждом прерывании если есть на ножке порта положительное напряжение прибавляется по 1. мне нужно сделать так что бы в другую переменную в зависимости от числа в той переменной к которой прибавляется единица прибавлялось разное число. так например если

от 1 до 5 то прибавим 1
от 6 до 10 то прибавим 5
от 11 до 15 то прибавим 10

задача получается примерно такой


unsigned int a=0;
unsigned int b=0;


interrupt [_____] void sec (void)
{if (PORTB.0==0)
{a++;}
else
{a=0;};


if (a>=1&&a<=5) \\если а в диапазоне от 1 до 5 то прибавим к b 1
{b=b+1;}
if (a>=6&&a<=10)
{b=b+5;}
if (a>=11&&a<=15)
{b=b+10;}
if (a>15)
{b=b+10;} \\если больше 15 то прибавим к b так же 10




правильно ли я написал?

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 08:37:03 
Модератор
Аватар пользователя

Карма: 59
Зарегистрирован: Пт мар 19, 2010 00:09:57
Сообщений: 3575
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
mixon46 писал(а):
правильно ли я написал?
Если работает, значит правильно.

_________________
Я мненью вашему вращенье придавал, а осью был - мой детородный орган.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 10:05:02 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10737
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
но можно и чуть украсить :) если использовать else:
Код:
int d = 0;

if ((a>=1) && (a<=5)) d = 1;
else if ((a>=6) && (a<=10)) d = 5;
else if (a>=11) d = 10;

b += d;

_________________
я свою работу за вас делать не буду!


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 10:48:57 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2898
Откуда: Минск
Рейтинг сообщения: 0
или так:
Код:
if (a > 10)
  b += 10;
else if (a > 5)
  b += 5;
else if (a > 0)
  b++;


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 12:45:08 
Поставщик валерьянки для Кота

Карма: 19
Зарегистрирован: Вт мар 13, 2012 13:16:13
Сообщений: 2121
Откуда: Россия
Рейтинг сообщения: 0
mixon46 писал(а):
при каждом прерывании если есть на ножке порта положительное напряжение прибавляется по 1.

interrupt [_____] void sec (void)
{if (PORTB.0==1) // на ножке порта положительное напряжение
{a++;}
else
{a=0;};


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 12:49:00 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 91
Зарегистрирован: Чт дек 28, 2006 09:19:56
Сообщений: 10737
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
roman.com писал(а):
на ножке порта положительное напряжение
вы имели ввиду, что надо PINB.0? это да, проглядел

_________________
я свою работу за вас делать не буду!


Вернуться наверх
 Профиль WWW  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт май 05, 2017 17:46:32 
Держит паяльник хвостом
Аватар пользователя

Карма: 8
Зарегистрирован: Чт июн 10, 2010 21:11:19
Сообщений: 970
Рейтинг сообщения: 0
Фигурные скобки расставлены "своеобразно". Стоит сделать по-человечески, чтобы отражали структуру программы.
Переменные, используемые и в прерываниях, и в основном цикле стоит объявить как volatile.


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс май 07, 2017 21:52:42 
Это не хвост, это антенна
Аватар пользователя

Карма: 10
Зарегистрирован: Сб фев 18, 2012 16:42:29
Сообщений: 1363
Откуда: Курск
Рейтинг сообщения: 0
как много всяких вариантов предложили. я их просмотрел и даже не представляю какой выбрать :)

на ножке когда 0 тогда + (я сам не правильно написал) обычно же ножку порта через кнопку к минусу питания

_________________
Электроника это что то просто необыкновенное. Это увлечение для меня. Если я что то делаю то погружаюсь с головой ))


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб май 13, 2017 02:01:20 
Родился

Зарегистрирован: Сб май 13, 2017 01:52:35
Сообщений: 2
Рейтинг сообщения: 0
Здравствуйте, только начал изучать работу с atmega8 и CodeVision AVR
подскажите пожалуйста как реализовать вот такое.
на ногу 23 подаю например 1HZ а на 24 ноге нужно на выходе получить 1HZ * 2 то есть получается 2. Как реализовать умножение?

Изображение


Вернуться наверх
 Профиль  
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб май 13, 2017 08:34:17 
Собутыльник Кота
Аватар пользователя

Карма: 63
Зарегистрирован: Чт апр 11, 2013 12:19:59
Сообщений: 2898
Откуда: Минск
Рейтинг сообщения: 0
Имхо, напрямую - никак. Если частоты невелики, можно фронты входного сигнала по прерыванию детектировать, измерять время и выдавать импульсы вдвое меньшей частоты на другом выводе.


Вернуться наверх
 Профиль WWW  
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7841 ]  На страницу Пред.  1 ... 385, 386, 387, 388, 389, 390, 391 ... 393  След.



Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на форуме

Сейчас этот форум просматривают: krash_artem и гости: 7


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

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


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