ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
25 апреля
610892 Топик полностью
maik-vs (24.07.2015 11:00, просмотров: 397) ответил Bill на Тоже все просто.
Извините, что встреваю. Вот инициализация порта для ассемблера: INITPORT PORTA, PULL, INP,PULL, INP,PULL,OUTH,OUTL,OUTL чтобы не помнить про DDR, PORT и PIN. макросом /// port = @0 DDR = @0 - 1 PIN = @0-2 /// define IN=00 PULL=01 OUTL=10 OUTH=11 ( 0,1,2,3) <1><2><3> used /// bit 7 6 5 4 3 2 1 0 /// example: INITPORT PORTA, OUTL,OUTL,OUTL,OUTH, PULL, IN, IN, IN /// @0 @1 @2 @3 @4 @5 @6 @7 @8 #define INP 0 #define PULL 1 #define OUTL 2 #define OUTH 3 #define PIN 2 /// for "portb-PIN" = pinb #define DDR 1 #define PORT 0 .MACRO INITPORT /// def: INITPORT Id,K2,K2,K2,K2,K2,K2,K2,K2 push2y X ldi Xh,(@1&1)<<7|(@2&1)<<6|(@3&1)<<5|(@4&1)<<4|(@5&1)<<3|(@6&1)<<2|(@7&1)<<1|(@8&1) /// PORT ldi Xl,(@1&2)<<6|(@2&2)<<5|(@3&2)<<4|(@4&2)<<3|(@5&2)<<2|(@6&2)<<1|(@7&2)|(@8&2)>>1 /// DDR out @0-1,Xl out @0,Xh /// быстро. pop2y X .ENDMACRO Дальше в программе sbi LEDPORT,REDLED. Если DDR то sbi LEDPORT-DDR,INOUT. Ну и тест пина: sbic BUTTONPORT-PIN,BU2. Макрос предполагает, что адреса регистров pin-ddr-port идут подряд, для АВР-ок это соблюдается.