ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
7 мая
1246097 Топик полностью
Costic (03.10.2022 17:09, просмотров: 235) ответил VladislavS. на Или вот пример обработчиков с шаблонным классом. В контроллере два USB, класс один, объектов два, обработчиков прерываний два.
А я бы привёл другой пример. Да, с лишним сгенерённым кодом, но может быть он понятнее "бедуинам"? 
class TUsbDevice
{
protected:
  TUsbDevice(){}
public:
  virtual void IrqHandler()=0;
  void Reset();
};

class TUsbHSDevice: public TUsbDevice
{
public:
  virtual void IrqHandler(){ /* High-speed handler */ }
};

class TUsbFSDevice: public TUsbDevice
{
public:
  virtual void IrqHandler(){ /* Full-speed handler */ }
};

TUsbDevice *pDevice;

int main()
{
  // Assagn available HS/FS hardware object.
  pDevice = new TUsbHSDevice();
}

extern "C"
void USB_IRQ_HAndler()
{
  pDevice->IrqHandler();
}


https://godbolt.org/z/je84rzz9K