Например TDA7294

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

Текущее время: Сб авг 23, 2025 18:58:53

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


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



Начать новую тему Ответить на тему  [ Сообщений: 333 ]     ... , , , 12, , , ...  
Автор Сообщение
В сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт июл 18, 2024 10:33:58 
Потрогал лапой паяльник
Аватар пользователя

Карма: -9
Рейтинг сообщений: -9
Зарегистрирован: Чт май 20, 2021 13:33:05
Сообщений: 316
Рейтинг сообщения: 2
Martian, на Алике от 16 килорублей плюс доставка 1,5 тыс. Нерационально на мой взгляд. За эти деньги можно купить новый современный смартфон и засунуть его в Кешу)) Да и Кеша тогда не особо нужен :))

https://aliexpress.ru/item/1005007088208938.html
https://aliexpress.ru/item/32668119796.html


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт июл 18, 2024 23:10:47 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 12
Рейтинг сообщений: 148
Зарегистрирован: Пт фев 27, 2015 20:57:08
Сообщений: 1910
Откуда: Курск
Рейтинг сообщения: 0
muravei_, похоже это то что нужно. :beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт июл 18, 2024 23:25:57 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
но это похоже на подделку...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Ср сен 18, 2024 22:21:32 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Товарисчи, а просветите меня плиз, насчёт такого вопроса: начинал изучение программирования с Ардуины, соответственно писал код в Arduino IDE. Прошло время, полностью отучился от библиотек, языка Wiring, и перешел на чистый C. Однако привычка писать в Arduino IDE так и осталась, хотя сейчас она используется как блокнот с встроенным компилятором. Вопрос такой, трудно ли будет с нее перелезть на ту же AVR studio. При написании программ использую исключительно стандартные функции C а так же прямое обращение к регистрам МК, минуя ардуиновские функции типа диджиталврайтов, ридов и делеев. Или забить и пользоваться тем, к чему привык? Камни использую голые, без загрузчиков и всякой мути.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 08:04:52 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1235
Рейтинг сообщения: 0
Свой, тебе удобный ввод/вывод пишется отдельно, в хедере. И оформляется в виде define или online. Тогда исходный текст будет один и тот же, что в Ардуино, что в Студии. И просто переносится на другие платформы, тот же ПИК хотя бы, без какого либо изменения в исходнике.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 15:33:04 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
OKF писал(а):
Свой, тебе удобный ввод/вывод пишется отдельно, в хедере. И оформляется в виде define или online. Тогда исходный текст будет один и тот же, что в Ардуино, что в Студии. И просто переносится на другие платформы, тот же ПИК хотя бы, без какого либо изменения в исходнике.

Ну это в принципе понятно. Тогда вопрос развернутый более: Вот сейчас я пишу программу для 84-й тини. Можно ли с таким кодом заехать в ту же Студио, естественно прописав необходимые моменты в хедере и убрав ардуиновские Setup и Loop? Понятно, что Setup в Avr Studio вообще не будет, это по сути просто то, что однократно выполнится при запуске контроллера, а дальше основной циклт ипа While(1){} Который в ардуино иде заменен на функцию Loop(). Пример кода ниже, здесь чарлиплексинг 12-ти светодиодов на Port A и опрос 1 кнопки на Port B. Все крутится на прерывании Таймера 1, цикл Loop() не используется, это пока только заготовка, хотя код в железе работает отлично и без нареканий:
Спойлер
Код:
byte blue_dat[6] = { 0x02, 0x02, 0x01, 0x04, 0x02, 0x01 };
byte green_dat[6] = { 0x01, 0x04, 0x04, 0x08, 0x08, 0x08 };
byte led_mask[12] = { 0x03, 0x06, 0x05, 0x0C, 0x0a, 0x09, 0x03, 0x06, 0x05, 0x0C, 0x0a, 0x09 };
byte ledbuff[12];
byte maskbuff[12];
volatile byte time_val = 1;
volatile byte led_clk = 0;
volatile byte buff_step = 0;
volatile byte keylock = 0;
volatile byte deb_tmr = 0;
void setup() {
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
  OCR1A = 124;
  TCCR1B |= (1 << WGM12);
  TCCR1B |= (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
}
ISR(TIMER1_COMPA_vect) {
  PORTA &= 0xF0;
  DDRA &= 0xF0;
  PORTA |= ledbuff[buff_step];
  DDRA |= led_mask[buff_step];
  buff_step += 1;
  if (buff_step >= 12) {
    buff_step = 0;
    for (byte i = 0; i < time_val; i++) {
      ledbuff[i] = blue_dat[i];
    }
    for (byte i = time_val; i < 6; i++) {
      ledbuff[i] = 0x00;
    }
    for (byte i = 6; i < 6 + time_val; i++) {
      ledbuff[i] = 0x00;
    }
    for (byte i = time_val + 6; i < 12; i++) {
      ledbuff[i] = green_dat[i - 6];
    }
    if ((PINB & 0x04) == 0) {
      if (deb_tmr <= 9) {
        deb_tmr += 1;
      }
    }
    if ((PINB & 0x04) != 0) {
      deb_tmr = 0;
      keylock = 0;
    }
    if (deb_tmr >= 9 && keylock != 0x01) {
      keylock = 0x03;
    }
    if (keylock == 0x03) {
      time_val += 1;
      keylock = 0x01;
      if (time_val > 6) {
        time_val = 1;
      }
    }
  }
}
void loop() {
}

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 16:05:22 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1235
Рейтинг сообщения: 0
Можно. Для студии только нужно дописать инклюды, которые уже прописаны в Ардуино.
Код:
#include <avr/io.h>
#include <avr/interrupt.h>

void setup() {
  // тут твой сетап
}

void loop() {
  // тут твой луп
}


int main(void) {
  setup();
  while(true)
    loop();
}

И будет выполняться хоть в Студио, хоть в Ардуино IDE.
А можешь и в Ардуино писать с main-ом, без setup() и loop().


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 16:24:35 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
абдурина не дает убрать из кода свои функции.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 16:43:17 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15138
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Setup не убирает, но Loop вполне можно убрать.
Да и смысл переводить в АВР студио?
Тот же GCC...
(Это ежли не ту студио, что после проглатывания мелкощипом пошла, использовать).
Плюс необходимость полностью выполнить предварительную инициализацию аппаратных средств МК (что в ардуиноIDE скрыто - выполняется "по умолчанию", а при работе с авр студио надо самому ручками вписывать).
:roll:
Кстати...
никто не запрещает в рамках Ардуино IDE обходить "встроенные функции" референса, работая под "чистым Си" для конкретного семейства МК (в случае Viper_Snake это АВР).
Расширенный функционал для той же АВР студии смотрим тут:
https://alexgyver.ru/lessons/
:wink:


Последний раз редактировалось BOB51 Чт сен 19, 2024 17:09:15, всего редактировалось 2 раз(а).

Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 16:53:33 
Сверлит текстолит когтями

Карма: 12
Рейтинг сообщений: 124
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1235
Рейтинг сообщения: 0
абдурина не дает убрать из кода свои функции.

Если хотите помощи, то говорите не общими фразами, а давайте конкретный пример с распечаткой ошибок.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 17:57:08 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 452
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1648
Откуда: KN34PC, Болгария
Рейтинг сообщения: 1
... Можно ли ...

Можно.

Самое интересное, что Arduino IDE тоже "понимает" етот код, скомпилирует его, генерирует .hex и может записать его в МК, с управлением одной кнопкой. Только в EEPROM не записывает (легко) и не управляет фюзов МК.

Ниже как пример: blink на ATtiny13A с Timer0, который также компилируется и в Arduino IDE:
Код:
#include <avr/io.h>
#include <avr/interrupt.h>

ISR(TIM0_OVF_vect) {
  PORTB ^= _BV(LED_PIN);  // toggle LED pin
}

int main(void) {
  DDRB = 0b00000001;                // set LED pin as OUTPUT
  PORTB = 0b00000000;               // set all pins to LOW
  TCCR0B |= _BV(CS02) | _BV(CS00);  // set prescaler to 1024 (CLK = 1200000Hz / 1024 / 256 = 4Hz, 0.25s)
  TIMSK0 |= _BV(TOIE0);             // enable Timer Overflow interrupt
  sei();

  while (1);
}


Последний раз редактировалось veso74 Чт сен 19, 2024 18:36:37, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 18:16:31 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Если убрать из кода функцию Loop , компилятор начинает жаловаться, что она неопределена.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 18:23:47 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 452
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1648
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Если убрать из кода функцию Loop , компилятор начинает жаловаться, что она неопределена.

Код:
int main(void) {
  pinMode(LED_BUILTIN, OUTPUT);

  while (1) {
    digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
    delay(1000);                       // wait for a second
    digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
    delay(1000);                       // wait for a second
  }
}

Viper_Snake, замените необходимыми командами. Если не понятно чем, посмотрите в папках Arduino IDE.

Изображение


Последний раз редактировалось veso74 Чт сен 19, 2024 18:25:52, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 18:24:05 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
veso74, Некоторое подобие управления фьюзами находится во вкладке "Инструменты" там можно для тини 84 например, BOD выставить, настроить тактирование. Устанавливаются эти фьюзы криво с помощью кнопки "записать загрузчик". Я предпочитаю свой код в hex компилировать, а потом с помощью Avrdudess его зашивать. У него удобный очень калькулятор фьюзов приаттачен, даже баран разберется без привлечения новых ворот.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 18:29:16 
Говорящий с текстолитом

Карма: 25
Рейтинг сообщений: 452
Зарегистрирован: Сб май 05, 2012 20:24:52
Сообщений: 1648
Откуда: KN34PC, Болгария
Рейтинг сообщения: 0
Да, некоторое. А было бы полезно все фюзы.
Ничего. Программатор всегда включен и вместе с его и AVRDUDESS (любимой, пользуюсь для AVR).
---
Да, это для AVR. А в Arduino IDE пишу и за STM8/32, CH32 и за Teensy и ESP ...
(Для второго и третего MK больше не использую Arduino IDE и, считаю, это "правильный путь" :) ).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт сен 19, 2024 18:50:51 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
veso74, О, да, это работает!

Спойлер
Код:
#include <avr/io.h>
#include <avr/interrupt.h>
byte blue_dat[7] = { 0x02, 0x02, 0x01, 0x04, 0x02, 0x01 };
byte green_dat[6] = { 0x01, 0x04, 0x04, 0x08, 0x08, 0x08 };
byte led_mask[12] = { 0x03, 0x06, 0x05, 0x0C, 0x0a, 0x09, 0x03, 0x06, 0x05, 0x0C, 0x0a, 0x09 };
byte ledbuff[12];
byte maskbuff[12];
volatile byte time_val = 1;
volatile byte led_clk = 0;
volatile byte buff_step = 0;
volatile byte keylock = 0;
volatile byte deb_tmr = 0;
ISR(TIMER1_COMPA_vect) {
  PORTA &= 0xF0;
  DDRA &= 0xF0;
  PORTA |= ledbuff[buff_step];
  DDRA |= led_mask[buff_step];
  buff_step += 1;
  if (buff_step >= 12) {
    buff_step = 0;
    for (byte i = 0; i < time_val; i++) {
      ledbuff[i] = blue_dat[i];
    }
    for (byte i = time_val; i < 6; i++) {
      ledbuff[i] = 0x00;
    }
    for (byte i = 6; i < 6 + time_val; i++) {
      ledbuff[i] = 0x00;
    }
    for (byte i = time_val + 6; i < 12; i++) {
      ledbuff[i] = green_dat[i - 6];
    }
    if ((PINB & 0x04) == 0) {
      if (deb_tmr <= 100) {
        deb_tmr += 1;
      }
    }
    if (deb_tmr >= 5 && deb_tmr < 100 && ((PINB & 0x04) != 0)) {
      keylock = 0x01;
    }
    if (deb_tmr >= 100 && keylock == 0x00) {
      keylock = 0x02;
    }
    if (keylock == 0x01) {
      time_val += 1;
      if (time_val > 6) {
        time_val = 1;
      }
    }
    if (keylock == 0x02) {
      time_val -= 1;
      keylock = 0x03;
      if (time_val < 1) {
        time_val = 6;
      }
    }
    if ((PINB & 0x04) != 0) {
      deb_tmr = 0;
      keylock = 0;
    }
  }
}
int main(void) {
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
  OCR1A = 124;
  TCCR1B |= (1 << WGM12);
  TCCR1B |= (1 << CS11) | (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
  while (1)
    ;
}

А зачем нужен пустой цикл While в конце Main-a? Процессор не может просто ничего не делать после выполнения Main? И можно ли считать мой код полностью отвязанным от Wiring и ардуиновской платформы?

Добавлено after 10 minutes 5 seconds:
CH32 тоже взял пощупать, вместе с программаторами. Его рекомендуется вместе с MoonRiver Studio употреблять вроде. Пока нет особо времени на вникание, это для меня абсолютно новые ворота.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Сб сен 21, 2024 22:38:47 
Друг Кота

Карма: 67
Рейтинг сообщений: 1961
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
А зачем нужен пустой цикл While в конце Main-a?
main - это же функция. Просто самая главная, первая. Иными словами, точка входа в пользовательскую программу. Допустим, мы завершили эту функцию. Тогда, получается, мы завершили пользовательскую программу.
Процессор не может просто ничего не делать после выполнения Main?
Может. Но реализуется это иначе, например, входом в один из ждущих-спящих режимов.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Вт сен 24, 2024 19:24:41 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15138
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Если не сделать явную остановку МК в конце главного цикла (или не "закольцевать" программу) МК будет продолжать выборку команд из неиспользуемой части ПЗУ.
По умолчанию это код 0xFF "чистая ячейка".
И так до переполнения счётчика РС.
А затем снова с адреса 0x0000.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт окт 24, 2024 13:47:31 
Встал на лапы

Зарегистрирован: Вс сен 28, 2014 07:54:21
Сообщений: 137
Рейтинг сообщения: 0
Пару месяцев ничего не прошивал. Сегодня прошивается только один раз, для повтора требуется перезагрузка компа.
Тестю все на "блинке", на разных Нанках. Пробую и OLD Boot и настройку и просто 328.
Базовая IDE 1.8, но сегодня ставил и последние. Примерно тот же печальный эффект. Кабели тоже менял, хотя часто из их качества так и было.
Только у меня так? Что-то с обновлением Винды / драйверов видимо за эти пару месяцев.

П.С. Вопрос решился. 2 партии нанок и обе были с багами. Надо сразу тестить и китайцам выставлять счета, а не ждать 2 месяца(((


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Arduino IDE в вопросах и ответах
СообщениеДобавлено: Чт окт 24, 2024 16:39:49 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1472
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15138
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
:sleep:


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 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