Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*************************************************************/
- /* Работа с циклами */
- /*************************************************************/
- #include "def21060.h"
- #define F 4
- //------------------------------------------------------
- // Source Vector 2 and Result Vector
- .SECTION/DM dm_data;
- .VAR buffer[F]; // буфер
- .ENDSEG;
- .SECTION/PM my_irq;
- bit clr IRPTL SFT0I;
- bit clr MODE2 TIMEN;
- I1 = B1;
- LCNTR = R6, DO qqq UNTIl LCE;
- R0 = DM(I1,M1);
- qqq: DM(OutPort) = R0;
- I1 = B1;
- bit set IRPTL SFT0I;
- bit set MODE2 TIMEN;
- TPeriod = 3;
- TCount = 3;
- R3 = 0;
- rti;
- .ENDSEG;
- .SECTION/PM timer_hi;
- R1 = DM(InPort);
- R0 = R1 - R0;
- rti(DB);
- DM(OutPort) = R0;
- NOP;
- .ENDSEG;
- //----------------
- .SECTION/DM ext_data; // важно, чтобы эти переменные были именно в DM
- .VAR InPort; // переменная для входных данных
- .VAR OutPort;// переменная для выходных данных
- //------------------------------------------------------
- //------------------------------------------------------
- .SECTION/PM pm_irq_svc;
- nop;
- jump start;
- nop;
- nop;
- .ENDSEG;
- //------------------------------------------------------
- //------------------------------------------------------
- .SECTION/PM pm_code;
- start:
- R0 = 0;
- B1 = buffer;
- L1 = @buffer;
- M1 = 1;
- TPeriod = 4;
- TCount = 4;
- bit set IMASK TMZHI; //! разрешить прерывания от таймера
- bit set MODE2 TIMEN; //! включить таймер
- bit set MODE1 IRPTEN;// ! разрешить прерывания
- wait: IDLE;
- jump wait;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement