123456789101112131415161718192021222324 |
- #pragma once
- #include <stdint.h>
- #ifdef __AVR_ATmega2560__
- // return the current PC (on AVRs with 22bit PC)
- static inline void GETPC(uint32_t* v)
- {
- uint8_t a, b, c;
- asm
- (
- "rcall .\n"
- "pop %2\n"
- "pop %1\n"
- "pop %0\n"
- : "=r" (a), "=r" (b), "=r" (c)
- );
- ((uint8_t*)v)[0] = a;
- ((uint8_t*)v)[1] = b;
- ((uint8_t*)v)[2] = c;
- ((uint8_t*)v)[3] = 0;
- }
- #endif
|