1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-27 21:16:50 +03:00

true interrupt enable and disable

plus expose cycle count for bit bang timing
This commit is contained in:
Makuna 2015-05-06 08:42:38 -07:00
parent 7defe70d55
commit c328452651
2 changed files with 13 additions and 2 deletions

View File

@ -124,8 +124,11 @@ void timer1_write(uint32_t ticks); //maximum ticks 8388607
void ets_intr_lock();
void ets_intr_unlock();
#define interrupts() ets_intr_unlock();
#define noInterrupts() ets_intr_lock();
void xt_enable_interrupts();
void xt_disable_interrupts();
#define interrupts() xt_enable_interrupts();
#define noInterrupts() xt_disable_interrupts();
#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() )

View File

@ -95,8 +95,16 @@ class EspClass {
FlashMode_t getFlashChipMode(void);
uint32_t getFlashChipSizeByChipId(void);
inline uint32_t getCycleCount(void);
};
uint32_t EspClass::getCycleCount(void)
{
uint32_t ccount;
__asm__ __volatile__("rsr %0,ccount":"=a" (ccount));
return ccount;
}
extern EspClass ESP;
#endif //ESP_H