|
Koutek AVR -
|
|
Napsal uživatel Michal, OK1WMR
|
|
Středa, 14 Březen 2012 09:03 |
|
.
.
Untitled
#define setb(bajt,bit) bajt |= 1<<(bit) #define clrb(bajt,bit) bajt &= ~(1<<(bit)) #define negb(bajt,bit) bajt ^= 1<<(bit) void wait_ms (unsigned int c); void wait_us (unsigned int c); unsigned char reg21 = F_CPU / 60000; void wait_ms (unsigned int c)
{
asm("push r20");
asm("push r21");
asm("_Wms0:");
asm("ldi r20,0x14");
asm("_Wms1:");
asm("lds r21,reg21");
asm("_Wms2:");
asm("dec r21");
asm("brne _Wms2");
asm("dec r20");
asm("brne _Wms1");
asm("dec r24");
asm("brne _Wms0");
asm("dec r25");
asm("brpl _Wms0");
asm("pop r21");
asm("pop r20");
}
unsigned char reg20 = F_CPU / 6000000 + 1;
void wait_us(unsigned int c)
{
asm("push r20");
asm("_wus0:");
asm("lds r20,reg20"); asm("_wus1:");
asm("dec r20");
asm("brne _wus1");
asm("dec r24");
asm("brne _wus0");
asm("dec r25");
asm("brpl _wus0");
asm("pop r20");
}
|