Например TDA7294

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



Текущее время: Вт окт 20, 2020 12:31:59

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


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



Начать новую тему Ответить на тему  [ Сообщений: 8154 ]     ... , , , 395, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вс июн 10, 2018 18:54:05 
Вымогатель припоя
Аватар пользователя

Карма: 11
Рейтинг сообщений: 9
Зарегистрирован: Пт фев 22, 2013 18:00:43
Сообщений: 508
Откуда: Беларусь, г. Гомель
Рейтинг сообщения: 0
Я полностью забил на тип переменных, я не записываю в eeprom. Просто выполняю чтение (оно быстрое)
И опять в протеусе работает на железяки нет!!!


unsigned char EEPROM_read(unsigned int uiAddress)
{
while(EECR & (1<<EEWE)); // Жду пока закончится последняя запись
EEAR = uiAddress; // Устанавливаю адрес
EECR |= (1<<EERE); // Запуск чтения из регистра EERE
return EEDR;
}


.........

while (1)
{
if (EEPROM_read(0)==0xFF) {PORTD.0=1;PORTD.6=1;}
}
В программаторе я могу записать значение и считать его. Порты работают проверил. В чем может быть косяк?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 12, 2018 09:23:04 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Пн янв 24, 2011 01:51:48
Сообщений: 188
Откуда: Украина, Киев
Рейтинг сообщения: 0
А есть какой нибудь способ программно определить на каком контроллера выполняется программа?
И какой объем eeprom доступен?


Вернуться наверх
 
JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/quote

Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 12, 2018 10:39:48 
Вымогатель припоя
Аватар пользователя

Карма: 11
Рейтинг сообщений: 9
Зарегистрирован: Пт фев 22, 2013 18:00:43
Сообщений: 508
Откуда: Беларусь, г. Гомель
Рейтинг сообщения: 0
Спасибо нашел косяк, дело было в настройках регистра прерываний, сейчас все ОК.


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Шестое юбилейное мероприятие в процессе
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 10:58:02 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Всем привет! Пытаюсь победить oled 0.96 по spi. Контроллер ssd1306. Скоммуниздил шрифты, чтобы самому не рисовать. Проблема: При выводе через функцию LCD_Printf, на дисплее выписывается только последняя цифра (буква). Если писать через функцию LCD_Char посимвольно, то все работает. Кому не сложно, гляньте пожалуйста, несколько дней побороть не могу.
SSD_SPI - функции;
PC - main;
fonts - шрифты и картинки.
Спасибо!


Вложения:
fonts.c [31.69 KiB]
Скачиваний: 331
PC.c [3.25 KiB]
Скачиваний: 342
SSD_SPI.c [10.11 KiB]
Скачиваний: 372
Вернуться наверх
 
Как сократить время вычислений и освободить ресурсы центрального процессора?

Цифровые фильтры применяются в системах цифровой обработки сигналов (ЦОС) для решения двух основных задач: разделения и восстановления сигналов. Такие задачи могут решаться программными и аппаратными методами. Для их решения удобно использовать аппаратный цифровой фильтр FMAC, входящий в состав микроконтроллеров семейства STM32G4.

Читать статью>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 11:26:16 
Друг Кота
Аватар пользователя

Карма: 83
Рейтинг сообщений: 920
Зарегистрирован: Чт апр 11, 2013 11:19:59
Сообщений: 4519
Откуда: Минск
Рейтинг сообщения: 0
В код не заглядывал, но первый вопрос - позиция по X после вывода буквы меняется?


Вернуться наверх
 
STM32L562E-DK – первая отладочная платформа ST на ядре ARM Cortex-M33

STMicroelectronics представляет демонстрационно-отладочную платформу на базе ядра Cortex-M33 – STM32L562E-DK. Данная платформа основана на микроконтроллере нового семейства – STM32L5. STM32L562E-DK позволяет разработчику в полной мере раскрыть и опробовать новые возможности микроконтроллеров STM32L5 с тщательно проработанным функционалом для обеспечения высокого уровня безопасности и защиты.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 21:34:25 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Да, позиция прибавляется по иксу.


Вернуться наверх
 


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

Карма: 73
Рейтинг сообщений: 1248
Зарегистрирован: Пн май 11, 2009 14:15:00
Сообщений: 2978
Откуда: СПб
Рейтинг сообщения: 1
Медали: 1
Мявтор 3-й степени (1)
Почему размер buff[] не указан?
Код:
char buff[];  //буфер дисплея

Компилятор не знает, сколько байт в RAM выделить под этот массив, и, в итоге, sprintf может записать мусор в какую-нибудь переменную в RAM недалеко от этого "массива". Это может вызвать самые неожиданные глюки.

_________________
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7 и подобные.


Вернуться наверх
 


Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 23:35:29 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
*Trigger* писал(а):
Почему размер buff[] не указан?
Код:
char buff[];  //буфер дисплея

Компилятор не знает, сколько байт в RAM выделить под этот массив, и, в итоге, sprintf может записать мусор в какую-нибудь переменную в RAM недалеко от этого "массива". Это может вызвать самые неожиданные глюки.

Определил его размерность в 40, это ситуацию не поправило.
вывожу инфу:
Код:
LCD_Goto(0,0);
       sprintf(buff,"ПРИВЕТ");
       LCD_Printf(buff,0);
       
       LCD_Goto(0,3);
        sprintf(buff,"ПРИВЕТ");
       LCD_Printf(buff,1);

На экране получаю:
т

Т
Т.е. опять же только последний символ. Голову уже сломал, явно sprintfу что-то не нравится :))


Вернуться наверх
 
Бытовой пирометр АКИП-9312 – просто удобно!

Диапазон 35 °С ...42°С (температура тела) погрешность 0,3 °С
Диапазон 0 °С ...100°С (бытовая сфера) погрешность 1,0 °С
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 23:41:00 
Собутыльник Кота
Аватар пользователя

Карма: 73
Рейтинг сообщений: 1248
Зарегистрирован: Пн май 11, 2009 14:15:00
Сообщений: 2978
Откуда: СПб
Рейтинг сообщения: 1
Медали: 1
Мявтор 3-й степени (1)
Теперь хоть можно быть уверенным, что всяких "странностей" не возникнет.
Тут точно нужно именно команду, а не данные отправлять?
Код:
SSD_command(0x00);  //пробел в одну точку между символами


sprintf() тут, я думаю, не при чём, можно для проверки и так написать:
Код:
LCD_Goto(0,0);
LCD_Printf("ПРИВЕТ",0);

_________________
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7 и подобные.


Последний раз редактировалось *Trigger* Вт июн 19, 2018 23:45:16, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 23:44:21 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 3
Ай да *Trigger*, Ай да красавчик, спасибо огромное это и правда данные. :beer:
P.S. Пойду карму поправлю тебе в плюс, да и посты пролайкаю :)))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 23:50:06 
Собутыльник Кота
Аватар пользователя

Карма: 73
Рейтинг сообщений: 1248
Зарегистрирован: Пн май 11, 2009 14:15:00
Сообщений: 2978
Откуда: СПб
Рейтинг сообщения: 0
Медали: 1
Мявтор 3-й степени (1)
Да не за что, я тоже следую правилу из твоей подписи. :)))

На всякий случай рекомендую почитать где-нибудь про структуру программы на Си, про *.c и *.h файлы, чтобы не возникало больше желания #include'ить первые из них. Это к обсуждаемой проблеме не относится, но лучше делать как принято.

_________________
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7 и подобные.


Последний раз редактировалось *Trigger* Вт июн 19, 2018 23:51:47, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 19, 2018 23:51:31 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Спасибо, почитаемс!
Но так вроде удобно, собираешь все, что нужно и в путь.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Пт июн 22, 2018 21:58:23 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 33
Зарегистрирован: Сб фев 04, 2017 12:16:42
Сообщений: 1041
Откуда: Украина
Рейтинг сообщения: 0
CVAVR выдает три файла: *.eep , *.hex , *.rom .
В программе для прошивки только два пункта: Write Flash и Write EEprom.
С *.eep более-менее понятно, это Write EEprom.
Как шить *.rom?
Или это то же, что и *.hex, только в другом формате?
И в какой последовательности шить *.eep , *.hex , *.rom ?

_________________
... ардубино и наебиэкспресс убивают творчество в зародыше.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 26, 2018 18:54:08 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Мужики, снова я! Ломаю WS2812B, не поддается приручению! Прошу глянуть код, с таймингами похоже косячу, тактовая частота 8 мгц.
Код:
#define DIN_out DDRD.2
#define DIN PORTD.2


unsigned char i;

void CLEAR_ALL (void){
DIN_out = 1;
DIN = 1;
DIN = 0;
delay_us(60);
DIN = 1;
}


void SET_COLOR_1_LED (unsigned char R,unsigned char G, unsigned char B){
unsigned char i;
int z;
DIN_out = 1;
    DIN = 0;
    for (i=0;i<8;i++) {
    if (B & 0x80) { DIN = 1; for(z=0; z<6; z++){#asm("nop")} DIN = 0; for(z=0; z<4; z++){#asm("nop")}  }
    else {DIN = 1; for(z=0; z<3; z++){#asm("nop")} DIN = 0; for(z=0; z<7; z++){#asm("nop")}}
    B<<=1;   
    }
    for (i=0;i<8;i++) {
    if (B & 0x80) { DIN = 1; for(z=0; z<6; z++){#asm("nop")} DIN = 0; for(z=0; z<4; z++){#asm("nop")}  }
    else {DIN = 1; for(z=0; z<3; z++){#asm("nop")} DIN = 0; for(z=0; z<7; z++){#asm("nop")}}
    R<<=1;   
    }
    for (i=0;i<8;i++) {
    if (B & 0x80) { DIN = 1; for(z=0; z<6; z++){#asm("nop")} DIN = 0; for(z=0; z<4; z++){#asm("nop")}  }
    else {DIN = 1; for(z=0; z<3; z++){#asm("nop")} DIN = 0; for(z=0; z<7; z++){#asm("nop")}}
    G<<=1;   
    }
    DIN = 0; delay_us(120);
}
 

в мэйне:
Код:
CLEAR_ALL();
      delay_ms(1000);
      SET_COLOR_1_LED(1,1,0);
      delay_ms(1000);
      SET_COLOR_1_LED(0,1,1);
      delay_ms(1000);     
      SET_COLOR_1_LED(1,0,1);
      delay_ms(1000);

В цепи три диода, загораются только два, на 100% и белым...
Задержки высчитывал исходя из одного тактового импульса (125 наносек).
Благодарю!
P.S. ссылка на датащи http://www.seeedstudio.com/document/pdf ... asheet.pdf


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Вт июн 26, 2018 22:28:43 
Собутыльник Кота
Аватар пользователя

Карма: 73
Рейтинг сообщений: 1248
Зарегистрирован: Пн май 11, 2009 14:15:00
Сообщений: 2978
Откуда: СПб
Рейтинг сообщения: 2
Медали: 1
Мявтор 3-й степени (1)
Открой файл *.asm после компиляции и посмотри, во что разворачивается, например, это:
Код:
for(z=0; z<6; z++){#asm("nop")}

Ты увидишь, что этот кусок исполняется куда дольше 6 тактов, т.к. есть ещё проверка условия, инкремент, условный переход. В этом случае правильно будет написать 6 nop'ов подряд, без цикла.
Код:
#asm("nop")
#asm("nop")
#asm("nop")
#asm("nop")
#asm("nop")
#asm("nop")


Далее, остальные циклы и проверки битов тоже вносят задержки, но теперь уже между битами. Вообще, такой критичный к таймингам кусок правильней было бы полностью на ассемблере написать.

В этой статье есть исходники, но там всё полностью на ASM'е.

_________________
Этот пост оказался полезен? Не поленись, нажми Изображение слева!
:) :)) :)))
Куплю индикаторы ИТС-1А, ИТС-1Б, ИГВ1-8х5Л, ИГПС1-222/7 и подобные.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср июн 27, 2018 10:01:45 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1764
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15428
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
вообще-то, для WS2812B вряд ли можно придумать что-то лучше, чем управление через аппаратный SPI.
Код:
#if (F_CPU < 16000000UL) || !defined(F_CPU)
#error "F_CPU must be defined and must be greather or equal 16MHz"
#endif

/// Константа для формирования импульса "0" для WS2812
#define WS_BIT_0   0xE0
/// Константа для формирования импульса "1" для WS2812
#define WS_BIT_1   0xF8

/** Побитовая выдача 1 байта данных в WS2812
 *
 * @param byte выводимый байт
 */
__inline static void send_byte(uint8_t byte){
   for(uint8_t mask=0x80; mask; mask >>=1){
      SPDR = byte & mask ? WS_BIT_1 : WS_BIT_0;
      while(bit_is_clear(SPSR, SPIF));
   }
}

/** Обновление содержимого цепочки светодиодов WS2812
 *
 */
void ws2812_show(void){
   for(uint8_t i=0; i<PIXEL_CNT; i++){
         // для чипа WS2812 порядок цветовых составляющих должен быть таким:
         send_byte(pixels[i].g);   // сначала ЗЕЛЕНЫЙ
         send_byte(pixels[i].r);   // затем КРАСНЫЙ
         send_byte(pixels[i].b);   // в конце - СИНИЙ
   }
}

/** Инициализация аппаратного SPI
 *
 */
INIT(7){
   DDR(PORT_SPI) |= _BV(PIN_MOSI) | _BV(PIN_SS) | _BV(PIN_SCK);

   SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPHA);//fosc/2 16MHz/2
   SPSR = _BV(SPI2X);
   SPSR; SPDR;
}
используется только линия MOSI

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср июн 27, 2018 10:46:29 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Trigger спасибо, вечером опробую.
ARV да не хочется использовать для таких целей spi, слишком много ресурсов требуется... Хотел сколотить минимальную функцию, которая позволила бы работать с этими диодами.
Опробовал нупы, что-то сдвинулось, однако все равно не работает корректно. Пробовал уменьшить количество нупов - бестолку :?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Ср июн 27, 2018 21:46:19 
Это не хвост, это антенна
Аватар пользователя

Карма: 11
Рейтинг сообщений: 1
Зарегистрирован: Пт фев 19, 2010 19:39:28
Сообщений: 1451
Откуда: Москва
Рейтинг сообщения: 0
Я уже думаю микроконтроллер переводить на 16 МГц, но это, похоже, не факт, что исправит ситуацию. Уже и так и сяк пробовал уменьшать задержки. Есть мысль написать все в тупую, просто подряд отправку 8 бит для каждого цвета, без цикла сдвига на один...


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

Карма: 90
Рейтинг сообщений: 1764
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 15428
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Сериг писал(а):
не хочется использовать для таких целей spi
ну и зря

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: CodeVision AVR в вопросах и ответах
СообщениеДобавлено: Чт июн 28, 2018 07:19:02 
Мучитель микросхем

Карма: 2
Рейтинг сообщений: -4
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 413
Рейтинг сообщения: 0
Конечно зря. Как раз таки при SPI используется минимум ресурсов контроллера. Вообще, если возможно аппаратное решение, на кой использовать программное!


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

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


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

Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 6


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

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


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