roboforum.ru

Технический форум по робототехнике.

МикроКонтроллер AVR начинающим - общие вопросы

Re: МикроКонтроллер AVR начинающим - общие вопросы

Korbofos » 09 апр 2018, 21:16

Может кто сталкивался? Функция по уарту оправляет строку
Код: Выделить всёРазвернуть
static uint8_t sendCmd(const char *str)
{
u1.sendStr(str, strlen(str));
u1.sendStr("\r\n", 2);   
rt.setTimeOut(TIME_OUT_CMD);
while(!rt.timeOut())
      {
      if(STRING_DATA == u1.readStr())
        {
        return readAnsver();
        }
     }
return TIME_OUT;
}

если так то всё в порядке
Код: Выделить всёРазвернуть
sendCmd("AT+CWMODE_CUR=1");

а так
Код: Выделить всёРазвернуть
if(OK == sendCmd("AT+CWMODE_CUR=1"))
   {
   }

в терминале приходит какая-то ерунда.
в чём прикол с if()?

Добавлено спустя 56 секунд:
среда atmel studio 7

Re: МикроКонтроллер AVR начинающим - общие вопросы

nml » 09 июл 2018, 17:54

к561ЛА7 писал(а):в атмеге 2560
в выражениях ADCSRA.6=1;
и while(ADCSRA.4==0);//
пишет что левая сторона после точки требует страк\юнион


Лучше поздно чем никогда :)
У Меги8 АЦП находится в нижних адресах ввода-вывода, в них работает
побитная адресация. А у меги2560 АЦП находится в старших...

Re: МикроКонтроллер AVR начинающим - общие вопросы

mikolka6 » 17 сен 2018, 14:22

Ребят может кто поможет. В инете есть схема RGB контролера для внедрения в приборную панель автомобиля, вот и я решил её внедрить. https://radioparty.ru/forum/topic?p=2433#p2433 (не реклама) там и схема и исходники. Траванув и собрав плату, оттестив на RGB ленте, но доскональна не проанализировав все нюансы в процессе переделки столкнулся с проблемой. По 3 каналу в силу обстоятельств, мне нужно использовать имеющиеся у меня мини светодиоды с общим КАТОДОМ. Варианта в этом случае я так понимаю два, или поменять в прошивке
Код: Выделить всёРазвернуть
  
if (tick < red_pwm_3)
    PORTC |= (1 << LED_RED_3);
  else
    PORTC &= ~(1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC |= (1 << LED_GREEN_3);
  else
    PORTC &= ~(1 << LED_GREEN_3);

  if (tick < blue_pwm_3)
    PORTC |= (1 << LED_BLUE_3);
  else
    PORTC &= ~(1 << LED_BLUE_3);

на
Код: Выделить всёРазвернуть
if (tick < red_pwm_3)
    PORTC &= ~(1 << LED_RED_3);
  else
    PORTC |= (1 << LED_RED_3);

  if (tick < green_pwm_3)
    PORTC &= ~(1 << LED_GREEN_3);
  else
    PORTC |= (1 << LED_GREEN_3);   

  if (tick < blue_pwm_3)
    PORTC &= ~(1 << LED_BLUE_3);
  else
     PORTC |= (1 << LED_BLUE_3);
и поставить в схему в место N - канального, P- канальный полевик, либо воспользоваться инвертором на биполярнике и полевике, Что я испробовал, ну уже умудрился спалить мегу пока пробовал инвертировать канал. В общем, с начала я не смог переделать прошивку ибо в AVR Studio 7 задолбали две ошибки @echo Building file: $< и #include "hsv_to_rgb.h" пока экспериментировал с P-канальным полевиком (ибо протеус эмуляцию отказывается запускать) спалил выход меги. Испробовал такие вариации https://drive.google.com/file/d/1RZ-j0_ ... qIdFG/view - верхняя правая это штатная, верхняя левая это я пробовал без изменения прошивки, а нижняя правая это для переделанной прошивки. Но чет не пошло, МК по третьему каналу "испустил сизый дым". В общем выручайте, афтомобил без приборки, может кто соберёт прошивку и нарисует схему с правильным конечным ключом. Плизз. Выручайте парни. :RTFM:

Re: МикроКонтроллер AVR начинающим - общие вопросы

Fischer2024 » 15 май 2024, 12:20

можно мегу выкинуть и на рассыпухе сделать.


Rambler\'s Top100 Mail.ru counter