Например TDA7294

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

Текущее время: Пн окт 06, 2025 00:07:13

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8366 ]     ... , , , 306, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 14, 2014 08:59:06 
Вымогатель припоя

Зарегистрирован: Вт ноя 02, 2010 17:46:37
Сообщений: 574
Рейтинг сообщения: 0
Подскажите как правильнее сделать. В прерывании по таймеру надо выдержать пару 1-2мк
делаю это нопами. Но так как оптимизация включена по скорости(и уровень максимальный) боюсь что бы СV их не с оптимизировал.
как #pragma optsize- загнать в define можно ?
функцию делать неохота (дополнительные задержки получаются)
Код:
#define delay_15us_nop   #pragma optsize-\
                         #asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");\
                         #asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");#asm("nop");\
                         #asm("nop");#asm("nop");#asm("nop");\
                         #pragma optsize+

Пока сделал без #pragma optsize работает. Но всё же хочу запретить оптимизацию их. Что бы неожиданно они не отвалились.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб апр 19, 2014 22:50:17 
Родился

Зарегистрирован: Вт янв 25, 2011 12:52:34
Сообщений: 16
Рейтинг сообщения: 0
Здравствуйте. Подскажите пожалуйста что означает эта ошибка: "Error: D:nespadusb\main.c(115): function argument #1 of type 'struct <unnamed> *' is incompatible with required parameter of type 'unsigned char *' ". Вот на эту строку: "usbSetInterrupt(&reportBuffer, sizeof(reportBuffer));". Спасибо.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб апр 19, 2014 23:51:12 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4583
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Не тот тип передаёте в функцию в первом аргументе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс апр 20, 2014 19:54:31 
Нашел транзистор. Понюхал.

Зарегистрирован: Пн мар 19, 2012 13:04:11
Сообщений: 172
Рейтинг сообщения: 0
X200881 писал(а):
Здравствуйте. Подскажите пожалуйста что означает эта ошибка: "Error: D:nespadusb\main.c(115): function argument #1 of type 'struct <unnamed> *' is incompatible with required parameter of type 'unsigned char *' ". Вот на эту строку: "usbSetInterrupt(&reportBuffer, sizeof(reportBuffer));". Спасибо.

Функция принимает ссылку на reportBuffer. Т.е нужно передать функции указатель на этот буфер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс апр 20, 2014 21:27:57 
Встал на лапы

Зарегистрирован: Сб ноя 06, 2010 19:17:02
Сообщений: 100
Откуда: Россия, Омск
Рейтинг сообщения: 0
делаю индикацию отрытых дверей, уровня воды в омывателе, уровень тосолаи конечно часы. со спецсимволами вроде разобрался, но вот с часами не очень. настройка ЧАСЫ и МИНУТЫ работает, но вот секунды не отсчитывает, т.е. что-то не так с прерываниями.
вот код программы
Спойлер
Код:
#include <mega8.h>  // Подключаем библиотеку микроконтроллера 
 #asm
 .equ __lcd_port=0x12 ;PORTD
 #endasm
 #include <lcd.h>   // Подключаем библиотеку дисплея
 #include <delay.h>  // Подключаем библиотеку реализации задержек   
 
 
 unsigned int sek;        // переменная сек.
 unsigned int min;        // пересенная мин.
 unsigned int hour;       // переменная часов
// Timer 1 output compare A interrupt service routine
interrupt [TIM1_COMPA] void timer1_compa_isr(void)  // таймер выставлен на частоту 1 Гц
{
// Place your code here
       TCNT1H=0;
       TCNT1L=0;
       sek++;            // инкрементируем секунду
       
}

 // Объявляем переменную pause, которая будет осуществлять задержку
 char i; // Переменная для счетчика для анимации
 typedef unsigned char byte; // Новый тип переменной для наших символов

 
 flash byte char0[8]={0, 0, 0, 0, 0, 0, 0, 0};

 flash byte char1[8]={0, 28, 18, 17, 31, 31, 31, 0}; // правая

 flash byte char2[8]={0, 7, 9, 17, 31, 31, 31, 31}; //левая

 flash byte char3[8]={0, 7, 9, 17, 17, 31, 31, 31}; //передние

 flash byte char4[8]={4, 20, 20, 4, 4, 4, 4, 4}; //передняя правая

 flash byte char5[8]={4, 5, 5, 4, 4, 4, 4, 4};//передняя левая
 
 flash byte char6[8]={0, 0, 0, 0, 0, 0, 0, 0};
 // Функция записи символа в контроллер дисплея
 void define_char(byte flash *pc,byte char_code)
 {
 byte i,a;
 a=(char_code<<3)|0x40;
 for (i=0; i<8; i++) lcd_write_byte(a++,*pc++);
 }
 // Функция инициализации микроконтроллера
 void avr_init(void)
 {
 
 PORTB=0x0F;
 DDRB=0x00;
 PORTC=0x03;
 DDRC=0x00;
 PORTD=0x00;
 DDRD=0x00;


 }
 // Основная программа
 void main(void)
 {   
 
 // Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: 7,813 kHz
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: On
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x05;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x1E;
OCR1AL=0x85;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x10;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
 
 avr_init();
 lcd_init(16); // Инициализация экрана
 // Запись символов char0 - char4 по адресам 0х00 - 0х04 соответственно
 define_char(char0,0);
 define_char(char1,1);
 define_char(char2,2);
 define_char(char3,3);
 define_char(char4,4);
 define_char(char5,5);
 define_char(char6,6);
 lcd_clear(); // Очищаем экран
 while (1)
 {  // код вывода анимации из новых символов на дисплей

 i=5;
   
       
   while(i)
  { 
        //работа с часами
    if (PINC.0==0)         // если нажата первая кнопка
        {
          delay_ms(250);      // задержка 1/4 сек. (для удобства) выбора
          min++;              // к значению минуты добавляем еденицу
        }
        if (PINC.1==0)        // если нажата вторая кнопка
        {
          delay_ms(250);      // задержка 1/4 сек. (для удобства) выбора
          hour++;             // к значению часов добавляем еденицу
        }
        ///// Условия часов.
       if(sek==60)          // если сек = 60
       {
       min++;              // добавляем 1 к переменной "минута"
       sek=0;              // зануляем переменную "секунда"
       }
       if(min==60)         // если мин = 60
       {
       hour++;             // добавляем 1 к переменной "час"
       min=0;              // зануляем переменную "минута"
       }
       if (hour==24)        // так как у нас часы имеют 24 часовый формат
       {                    // при достыжении 24 часов, онулируем все переменные.
       hour=0;
       min=0;
       sek=0;
       }
         // выводим переменные
        lcd_gotoxy(0,0);       
        lcd_putchar(hour/10+0x30);
        lcd_putchar(hour%10+0x30);
        lcd_putchar(':');
        lcd_putchar(min/10+0x30);
        lcd_putchar(min%10+0x30);
        lcd_putchar(':');
        lcd_putchar(sek/10+0x30);
        lcd_putchar(sek%10+0x30);
       
       
   if (PINB.0==0)// передняя левая
   {
      lcd_gotoxy(14,0);
      lcd_putchar(0x02);
    }
    else
    {
     lcd_gotoxy(14,0);
     lcd_putchar(0x00);
    }
       if (PINB.1==0) //передняя правая
      {
      lcd_gotoxy(15,0);
      lcd_putchar(0x01);
      }
      else
    {
     lcd_gotoxy(15,0);
    lcd_putchar(0x00);
    }
         if (PINB.2==0)//задняя левая
        {
         lcd_gotoxy(14,1);
         lcd_putchar(0x02);
        }
        else
    {
     lcd_gotoxy(14,1);
     lcd_putchar(0x00);
    }       
          if (PINB.3==0)//задняя правая
        {
         lcd_gotoxy(15,1);
         lcd_putchar(0x01);
        }
        else
    {
     lcd_gotoxy(15,1);
     lcd_putchar(0x00);
    }   
   
   
 };
 };
 }


Последний раз редактировалось Аlex Вс апр 20, 2014 21:57:21, всего редактировалось 2 раз(а).
теги


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 21, 2014 04:22:14 
Вымогатель припоя

Зарегистрирован: Вт ноя 02, 2010 17:46:37
Сообщений: 574
Рейтинг сообщения: 0
igumich, а где у вас разрешение прерывания ?
Код:
#asm("sei")


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 21, 2014 08:45:56 
Встал на лапы

Зарегистрирован: Сб ноя 06, 2010 19:17:02
Сообщений: 100
Откуда: Россия, Омск
Рейтинг сообщения: 0
pokk писал(а):
igumich, а где у вас разрешение прерывания ?
Код:
#asm("sei")

Благодарю,упустил момент, ступил немножко


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн апр 21, 2014 16:06:40 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 11
Рейтинг сообщений: 26
Зарегистрирован: Вс июн 26, 2011 20:03:21
Сообщений: 2316
Рейтинг сообщения: 0
Здравствуйте!
Подскажите пожалуйста, почему так пляшут показания при подсчёте импульсов и можно ли это как-то поправить?


Вложения:
Проект протеус.rar [48.2 KiB]
Скачиваний: 162
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 23, 2014 20:58:18 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 30, 2014 21:41:24
Сообщений: 170
Откуда: Украина
Рейтинг сообщения: 0
Здравствуйте. Не могу реализовать алгоритм включения нагрузки по нажатию кнопки дважды.
То есть выполнить такой-то код, если кнопка была нажата 2 раза.

Вот моя безуспешная попытка:
Код:
#include <mega8.h>
#include <delay.h>

void main(void)
{
PORTB=0x00;         // PORTB - выход
DDRB=0x01;                 
PORTC=0x01;         // PORTC - вход
DDRC=0x00;

while (1)

{     
unsigned char a=0; // переменной а присвоить 0
    if(PINC.0==0) // если кнопка нажата
    {
    a++;            // инкриминируем а
        if(a==2)    // если а равно 2 (кнопка нажата 2 раза)
        {
        PORTB.0=1;   // выводим 1
        a=0;         // обнуляем а
        }
        }
}
}     

Буду благодарен за любые советы.


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

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7014
Откуда: Ижевск
Рейтинг сообщения: 0
Вам нужно отследить именно нажатие. А вы этого не делаете. Переменная а, вообще говоря, при отпускании кнопки принимает случайное значение.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 23, 2014 21:15:59 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 30, 2014 21:41:24
Сообщений: 170
Откуда: Украина
Рейтинг сообщения: 0
pyzhman писал(а):
Вам нужно отследить именно нажатие.

Подскажите как это сделать, стоит ли для данной цели использовать внешние прерывания, или это тоже не то?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 23, 2014 21:55:04 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1432
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4583
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Аж 2 темы есть по кнопкам :
viewtopic.php?f=61&t=79801
viewtopic.php?f=61&t=39341
Почитайте, там найдёте ответы на свои вопросы. Даже примеры есть для CV. Там же, если что и пишите...
Ваши вопросы никакого отношения не имеют к CVAVR.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср апр 23, 2014 22:46:21 
Нашел транзистор. Понюхал.

Зарегистрирован: Вс мар 30, 2014 21:41:24
Сообщений: 170
Откуда: Украина
Рейтинг сообщения: 0
Большое спасибо, что направили.
Приношу извинения что не туда написал.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт апр 25, 2014 15:23:03 
Родился

Зарегистрирован: Сб окт 11, 2008 14:45:44
Сообщений: 16
Рейтинг сообщения: 0
Здравствуйте Уважаемые Коты пытаюсь подключить си файл к codevision подключил его в меню project и прописал в самой программе а при компиляции получаю вот такую ошибку


Вложения:
ошибка.png [126.54 KiB]
Скачиваний: 509
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт апр 25, 2014 15:25:56 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2119
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18409
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Fleshmax писал(а):
Здравствуйте Уважаемые Коты пытаюсь подключить си файл к codevision подключил его в меню project и прописал в самой программе а при компиляции получаю вот такую ошибку
никогда не "подключайте" Си-шный исходник директивой #include! этой директивой подключаются соответствующие заголовочные файлы.

исправьте и сделайте ReBuild All

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

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт апр 25, 2014 16:58:55 
Вымогатель припоя
Аватар пользователя

Карма: -2
Рейтинг сообщений: 105
Зарегистрирован: Ср июн 19, 2013 08:10:48
Сообщений: 577
Откуда: Москва, СПб, Липецк, Рязань
Рейтинг сообщения: 0
там еще может быть проблема с русскими буквами в путях к файлу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт апр 25, 2014 17:25:01 
Родился

Зарегистрирован: Сб окт 11, 2008 14:45:44
Сообщений: 16
Рейтинг сообщения: 0
Все исправил БОЛЬШОЕ СПАСИБО :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пн май 05, 2014 21:00:05 
Родился

Зарегистрирован: Вт апр 06, 2010 09:50:34
Сообщений: 19
Рейтинг сообщения: 0
Привет коты.
Кто видал программный USB под CVAVR.
Заделитесь ПЛЗ.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт май 20, 2014 17:12:28 
Встал на лапы

Зарегистрирован: Вт дек 28, 2010 18:25:31
Сообщений: 102
Рейтинг сообщения: 0
Всем привет! Помогите разобраться с ШИМом Аттини13 в CVAVR. На ногу В.0 (OCR0A) повесил через полевик( 10к между G и S, 100Om от ноги мк на G) светодиод , а он не хочет полностью тухнуть при значении OCR0A=0; !!! Что можно сделать чтоб убрать засветку??? Спасибо!
P.S. Если написал не в той ветке извините и направьте!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Сб май 24, 2014 20:02:04 
Первый раз сказал Мяу!

Зарегистрирован: Пт сен 07, 2007 22:13:42
Сообщений: 21
Откуда: Мариуполь
Рейтинг сообщения: 0
Добрый вечер.
В версии 2.05.3 есть штатная библиотека для работы с графическим экраном ks0108 (128*64).
Есть даже пять шрифтов. Но они без русских букв - вот в чём беда :cry:
Может попадались кому-то совместимые с CV русифицированные шрифты?

p.s. Пытался генерировать сам с помощью LCD Vision - их экран почему-то не отображает.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


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

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


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