; *************************************************************************** ; copyright : (C) 2025 by Martin Preuss ; email : martin@libchipcard.de ; ; *************************************************************************** ; * This file is part of the project "AqHome". * ; * Please see toplevel file COPYING of that project for license details. * ; *************************************************************************** #ifndef AQH_AVR_XPT2046_MAIN_ASM #define AQH_AVR_XPT2046_MAIN_ASM ; *************************************************************************** ; Module implementing DISPLAY_INPUT using displays with XPT2046 touch ; controllers. ; ; Implements: ; - Display_InputGetState ; Defines: ; - DISPLAY_IFLAGS_PRESSED_BIT ; - DISPLAY_IFLAGS_CHGCOORD_BIT ; - DISPLAY_IFLAGS_CHGPRESS_BIT ; Needs: ; - DISPLAY_WIDTH ; - DISPLAY_HEIGHT ; *************************************************************************** ; *************************************************************************** ; defines .equ DISPLAY_IFLAGS_PRESSED_BIT = 7 .equ DISPLAY_IFLAGS_CHGCOORD_BIT = 6 .equ DISPLAY_IFLAGS_CHGPRESS_BIT = 5 .equ XPT2046_SPIMODE = (0<>1 ror r18 lsr r19 ; >>2 ror r18 lsr r19 ; >>3 ror r18 lsr r19 ; >>4 ror r18 ret ; @end ; --------------------------------------------------------------------------- ; @routine xpt2046SendCommandRecv16Bit ; ; @param r16 command ; @return r19:18 data ; @clobbers r16 xpt2046SendCommandRecv16Bit: cbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS low rcall SPIHW_MasterTransfer ; (R16) clr r16 rcall SPIHW_MasterTransfer ; (R16) mov r19, r16 clr r16 rcall SPIHW_MasterTransfer ; (R16) mov r18, r16 sbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS high ret ; @end ; --------------------------------------------------------------------------- ; @routine xpt2046SendCommandRecv8Bit ; ; @param r16 command ; @return r16 data ; @clobbers r16 xpt2046SendCommandRecv8Bit: cbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS low rcall SPIHW_MasterTransfer ; (R16) mov r18, r16 sbi SPIHW_SS_OUTPUT, SPIHW_SS_PIN ; SS high ret ; @end #endif ; AQH_AVR_XPT2046_MAIN_ASM