سلام - کلاس من ( داخل فایل usb.h ) به صورت زیر هستش :
class USB {
public :
void isr();
private :
volatile uint8_t CCEMPTY_status = 1;
} static usb;
در فایل usb.cpp، تو تابع وقفه، اومدم یه تابع از کلاس فوق رو فراخوندم :
extern "C" {
void USB_IRQHandler() {
usb.isr();
}
}
داخل تابع isr از متغیر CCEMPTY_status استفاده کردم ولی تغییرات داخل این متغییر ثبت نمیشه ولی وقتی تعریف متغییر CCEMPTY_status رو، اول فایل usb.cpp قرار میدم مشکل حل میشه - چرا؟
کد زیر داخل کلاس به صورت private باشه یا اول فایل usb.cpp باشه - چه فرقی داره - چرا باید تو یکیش تغییرات تو متغییر ثبت نشه؟
volatile uint8_t CCEMPTY_status = 1;