asm
"Daniel Young" <Danny-xMhm9eWaPqTpPX/iJGFgnvd9D2ou9A/[email protected]> Thu, 17 Jun 2004 16:38:57 +0200
| Newsgroups | gmane.comp.hardware.microcontrollers.tini |
|---|---|
| Message-ID | <[email protected]> |
Hi all could anyone take a look at this asm code for an ISR and tell me what I am doing wrong? If so, much appreciated! (code below) Thank you Daniel $include(tini_400.inc) $include(ds80c400.inc) $include(tinimacro.inc) $include(apiequ.inc) ;INIT init: clr a ; ret ; ;END INIT ;ISR SETUP Native_SetupISR: ; clr a ; clr ea ; clr EIE.3 ; setb EIP.3 ; PUSH_DPTR2 ; push dps ; inc dps ; mov dptr, #ISR_Weigand ; mov a, #5Bh ; lcall System_InstallInterrupt ; pop dps ; POP_DPTR2 ; setb ea ; ret ; ; END SetupISR ;ISR ROUTINE ISR_Weigand: clr EIE.1 ; FEEDDOG ;do read weigand data into TagData somehow RETI ; ;END ISR ;IO_POLL AWAKEN THREAD Weigand_Poll: PUSH_DPTR1 ; mov dptr,#ThreadID_Buffer ; GETX ; mov R0,a ; inc dptr ; GETX ; lcall System_ThreadResume ; mov dptr,#Weigand_Poll ; lcall System_RemovePoll ; POP_DPTR1 ; ret ; ;END POLL ROUTINE ;NATIVE GET WEIGAND TAG DATA Native_ReadWeigand: ; INPUT == Java Byte Array mov dptr,#ThreadID_Buffer ; lcall System_GetCurrentProcessID; PUTX ; inc dptr ; lcall System_GetCurrentThreadID; PUTX ; mov dptr,#Weigand_Poll ; lcall System_RegisterPoll ; setb EIP.1 ; setb EIE.1 ; clr a ; lcall Natlib_LoadJavaByteArray; jnz exit_poll ; lcall System_SaveJavaThreadState; PUSH_DPTR1 ; PUSH_BANK_0 ; mov a, #254 ; lcall System_ThreadSleep ; POP_BANK_0 ; POP_DPTR1 ; mov a, #128 ; PUTX ; inc dptr ; mov a, #128 ; PUTX ; inc dptr ; mov a, #128 ; PUTX ; inc dptr ; mov a, #128 ; PUTX ; mov dptr,#Weigand_Poll ; lcall System_RemovePoll ; exit_poll: lcall System_RestoreJavaThreadState; clr a ; ret ; ;END NATIVE READ WEIGAND ;DATA STORAGE TagData: DB 0,0,0,0 THREADID_BUFFER: DB 0,0 MyByteArray: DB 0,0,0 END _______________________________________________ TINI mailing list TINI-6tN4nzCoH/[email protected] To UNSUBSCRIBE, edit your profile, or see list archives: http://lists.dalsemi.com/mailman/listinfo/tini