- Код: Выделить всё
void main(void)
{
DDRB=0x20;
while(1)
{
PORTB.5 = 1;
PORTB.5 = 0;
}
}
установил частоту тактирования мк 16МГц. В proteusе подключил oscilloskope посмотрел период 400 пикосекунд. получилась частота 2.5 МГц. Почему так мало?
void main(void)
{
DDRB=0x20;
while(1)
{
PORTB.5 = 1;
PORTB.5 = 0;
}
}
MAIN
LDI WDT, 0FFH ; Watchdog refresh
CALL SUB_1 ;
INC VAR_1
DEC VAR_2 ; Some doing-nothing stuff
LD A, VAR_1
LD PA, A ; Just transfer the VAR_1 to port
JP MAIN
SUB_1
CALL SUB_2
RET
SUB_2
NOP
RET
; NMI service routine: produce 4 pulses in PB0
; --------------------------------------------
;
NMI_SERV
LD A_SAVE, A ; Save accumulator
LDI X, 4 ; Load nr. of pulses
LOOP
RES 0, PB_COPY
LD A, PB_COPY ; Loop to generate the pulses
LD PB, A ; Use the SET/RES on copy register
SET 0, PB_COPY ; and transfer later
LD A, PB_COPY
LD PB, A
DEC X
JRNZ LOOP
LD A, A_SAVE ; Restore accumulator
RETIРинатик писал(а): 1) Что означает выражение 1<<n ?

Ринатик писал(а): 2) В VMLAB в STEP03 после инициализации код такой:
avr123.nm.ru писал(а):Ринатик писал(а): 1) Что означает выражение 1<<n ?
Сдвиг на n позиций влево
avr123.nm.ru писал(а):Ринатик писал(а): 2) В VMLAB в STEP03 после инициализации код такой:
Эти примеры в VMLAB для микроконтроллера ST6210 от
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0