Заметки электроника
Простое - надёжнее!
Меню
  • Главная
  • Погода
  • Заметки
  • Календарь
  • Фотогалерея
  • Песни
  • Чтиво
  • Программы
  • Скачать
  • Связь и ссылки
  • Чехия
  • Lavka

Живёшь в Чехии?

The Ultimate DIY Microphone (super low self-noise!) with Zoom H1 linear input recording

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Электроника / cхемотехника
Создано: 26 октября 2024
Обновлено: 26 октября 2024
Просмотров: 804
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Open source LoRaWan stack

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование микроконтроллеров
Создано: 21 октября 2024
Обновлено: 21 октября 2024
Просмотров: 843

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
Looking for an open source LoRaWan stack... : r/embedded

ANTIRTOS: новая версия доступна

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование микроконтроллеров
Создано: 17 октября 2024
Обновлено: 17 октября 2024
Просмотров: 801
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

AntiRTOS обновилась и теперь поддерживает oдзыв функций в очередях с задержками! Очень удобно, вот живой пример. 

ANTIRTOS - это сверхлегкая, универсальная библиотека C++, предназначенная для управления задачами в IoT и встраиваемых приложениях. Она написана в одном небольшом файле, что делает ее невероятно простой для интеграции в ваши проекты. Цель ANTIRTOS - создать надежную, безопасную и эффективную библиотеку для управления задачами. Ориентируясь на модульность и масштабируемость, ANTIRTOS подходит для различных устройств, от простых микроконтроллеров до сложных встраиваемых систем. Она разработана специально для встраиваемых систем, где сложность и накладные расходы на RTOS не оправданы.
 

Unionpay Газпромбанка за границей. Чехия.

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Чехия
Создано: 31 августа 2024
Обновлено: 09 октября 2024
Просмотров: 1119

Рейтинг: 5 / 5

Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна
1. Брно. Ваньковка. Flying Tiger
2. Брно. Masarikova, Rossman . Вложением с пинкодом. Unikredit брана.Руб.Даймонд
3. Brno, Chut Asii . Olomoucka Uškoli, юаневая голд ГБП, KB brana
4. Poe-Poe, Brno Masarikova, KB brana
5. Brno, Kralovo Pole nakupni centrum, OXALIS, KB brana
6. Brno, McDonalds, Masarykova, UnionCredit brana
7. Brno, Kralovo Pole nakupni centrum, A-Mart, UnionCredit brana
8. Brno, OnlineLekarna (Kralovo pole, Kounicova), UnionCredit brana
9. Brno, GM Electronic (Uzka), Ingenico iPP280, Global Payments
10. Brno, Lisen Jirova, Hracky Papir Hopik (hrackyhopik.cz),  Kommercni banka Brana
11. Brno. Ovoce Zelenina - Lisen Jirova, Global Payments
12. Brno. Lisen. Zmrzlinová kavárna - cukrárna. Kotlanova 2521/1b. Kommercni banka brana
13. Brno. Lisen. Kavárna v Rokli
В общем, в терминал UnionCredit нужно вставлять карту и набирать пин. Kommercni Banka терминал - достаточно приложить.
Нужные терминалы, которые в 80-90 процентов случаев берут ЮнионПэй выглядят так. globalpayments терминалы тоже часто берут.




 

Тест библиотеки ANTIRTOS: отложенные функции с параметрами

  • Печать
  • E-mail
Информация о материале
Автор: Super User
Родительская категория: Заметки
Категория: Программирование микроконтроллеров
Создано: 27 сентября 2024
Обновлено: 05 октября 2024
Просмотров: 942
Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
Ниже приведен простой для повторения тест светодиодов, использующий один из классов библиотеки ANTIRTOS, классы находятся в зависимости, поэтому вы можете использовать тот, который вам нужен. Симуляцию можно посмотреть здесь: Симуляция в wokwi.com 
ANTIRTOS - это библиотека широкого применения, не только для Arduino, используйте ее везде, где хотите! Это нативный C++.
Пример запуска на Arduino Nano (включая все, без необходимости включения каких-либо внешних библиотек):
// HERE IS ONE OF ANTIRTOS CLASSes below : del_fQP (see the rest desc. on https://github.com/WeSpeakEnglish/ANTIRTOS )
/// @brief delayed functional pointers queue with parameters
template <typename T>
class del_fQP {
private:
    int first;
    volatile int last;
    int length;
    unsigned int time;
    typedef void (*fP)(T);
    fP * FP_Queue;
    fP * del_FP_Queue;                  // delayed functions
    bool * execArr;                     //is need to be executed?
    unsigned int * execTime;            //execution time arr 
    T* PARAMS_array;
    T* delayed_PARAMS_array;
    int push(void (*pointerQ)(T), T parameterQ);
    
public:
    del_fQP(int sizeQ);
    ~del_fQP();
    int push_delayed(void (*pointerQ)(T), T parameterQ, unsigned int delayTime);
    void tick(void);
    int pull();
};

template <typename T>
del_fQP::del_fQP(int sizeQ) {
    FP_Queue = new fP[sizeQ];
    del_FP_Queue = new fP[sizeQ];
    execArr = new bool[sizeQ];
    PARAMS_array = new T[sizeQ];
    delayed_PARAMS_array = new T[sizeQ];
    execTime = new unsigned int[sizeQ];
    last = 0;
    first = 0;
    time = 0;
    for(unsigned int i = 0; i < sizeQ; i++){
      execArr[i] = false;
    }
    length = sizeQ;
}

template <typename T>
del_fQP::~del_fQP() {
    delete[] FP_Queue;
    delete[] del_FP_Queue;
    delete[] PARAMS_array;
    delete[] delayed_PARAMS_array;
    delete [] execArr;
    delete [] execTime;
}

template <typename T>
int del_fQP::push(void (*pointerQ)(T), T parameterQ) {
    if ((last + 1) % length == first) return 1;
    FP_Queue[last] = pointerQ;
    PARAMS_array[last] = parameterQ;
    last = (last + 1) % length;
    return 0;
}

template <typename T>
int del_fQP::push_delayed(void (*pointerQ)(T), T parameterQ, unsigned int delayTime) {
bool fullQ = true;                                              // is Queue full?
     for(unsigned int i = 0; i < length; i++){
      if (!execArr[i] ){
       del_FP_Queue[i] = pointerQ;                              // put function pointer into exec queue 
       delayed_PARAMS_array[i] = parameterQ;                    // put parameter into exec queue    
       execArr[i] = true;                                       // true flag for execution
       execTime[i] = time + delayTime;                          //calc execution time, no worry if overload
       fullQ = false;
       break;
       }
  }
  if (fullQ) return 1;
  return 0;
}

template <typename T>
void del_fQP::tick(void){
  static unsigned int i = 0 ;  //uses in search cycle every tick
   for(i=0; i < length; i++){
     if(execTime[i] == time)
      if(execArr[i]){
       push(del_FP_Queue[i],delayed_PARAMS_array[i]);  // bump into normal queue part of delayed Queue
       execArr[i] = false;
     }
   }
  time++;
}

template <typename T>
int del_fQP::pull() {
    fP pullVar;
    if (last != first) {
        T Params = PARAMS_array[first];
        pullVar = FP_Queue[first];
        first = (first + 1) % length;
        pullVar(Params);
        return 0;
    }
    else {
        return 1;
    }
}
//////////////////////////////////////////// HERE THE SIMLE TEST BELOW//////////////////////////////////
typedef 
struct pinOut{ // structure (index - pin number, logic - 1/0 = ON/OFF)
  int index;
  bool logic;
} pinout ;

del_fQP<pinout> Q1(8); // maximum 8 function pointers with parameters in queue

void writePin(pinout cmd){ // write a pin true =- ON
  
  digitalWrite(cmd.index, cmd.logic);

}

void setup() {
  // put your setup code here, to run once:
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);

  TCCR1A = 0x00;  //Normal Mode
  TCCR1B = 0x00;  //TC1 is OFF
  TCNT1 = 0;
  OCR1A = 6250;  //0.1s delay; prescaler 256
  bitSet(TIMSK1, OCIE1A);   //local intterupt is active
  TCCR1B |= bit(CS12);   //Start TC1 with prescale 256
  
  // here putting 8 pointers to functions, parameters and delays needed

  Q1.push_delayed(writePin,{12,true},20); //yellow led ON after 2 sec. (0.1*20 = 2 seconds)
  Q1.push_delayed(writePin,{12,false},30); //yellow led OFF after 3 sec.
  Q1.push_delayed(writePin,{13,true},50); //red led ON after 5 sec.
  Q1.push_delayed(writePin,{13,false},80); //red led OFF after 8 sec.
 
}

void loop() {
  // put your main code here, to run repeatedly:
  Q1.pull(); // pull from the queue

}

ISR(TIMER1_COMPA_vect) // timer interrupt ticks one per 0.1 sec
{
  TCNT1 = 0;
  OCR1A = 6250;
  Q1.tick(); // execute tick method for make delayed functionality works
}
  1. Wasp 3D-prints eco-homes from local raw earth for $1K
  2. IAR 9.30.01 download . direct link
  3. install NoMachine installation via terminal ssh
  4. Ampleforth

Страница 18 из 197

  • 13
  • 14
  • ...
  • 16
  • 17
  • 18
  • 19
  • ...
  • 21
  • 22

Back to Top

© 2026 Заметки электроника

Top.Mail.Ru