This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于触摸屏的校正和定时器使用求助



#ifdef LANDSCAPE_FLIP
        -104576,        // M0
        -384,           // M1
        99041888,       // M2
        24,             // M3
        93216,          // M4
        -6681312,       // M5
        288475,         // M6
#endif

触摸屏校正获得了M0-6的值之后,是不是应该要替换touch.c中下面代码对应的值呢?

关于定时还有点问题:
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                       SYSCTL_XTAL_16MHZ);//这句话的意思是不是设置系统的频率为4MHz呢?
TimerLoadSet(TIMER0_BASE, TIMER_A, 4000000UL);//那这句话不应该是获取1s的间隔时间么?


谢谢!

  • wind

    1. 获得的校正系数是需要在编译之前修改的。

    2. SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |
                           SYSCTL_XTAL_16MHZ);

    使用PLL,所以时钟频率为400MHz/2/4=50MHz

    3. 如果在50MHZ的主频下计时1s,首先需要配置Timer0工作在32位模式下。然后,

    TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet());

  • 谢谢您的回复!

    1.我在编译之前修改了校正系数,但是下载到板子上后,发现不管点击触摸屏哪里都不能触发按钮控件了。修改参数之前,要触发按钮,要按下按钮控件上方1CM左右。

    2.请问为什么还除以了2呢?以及同时使用SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ , 优先使用PLL么?

    3.请问TimerLoadSet的第三个参数是什么意义呢?

  • Wind,

    1, 你是使用的DK-TM4C129开发板还是自己做的板子?有没有修改预编译的PORTRAIT,LANDSCAPE等选项?你校正系数是如何获取的?

    2.阅读datasheet的clock tree,400MHz PLL 默认分频成200HMZ。SYSCTL_USE_PLL参数的意思就是启用PLL。

    3.SysCtlClockGet()函数的作用是Gets the processor clock rate. 即获取当前处理器的主频,并返回相应的主频值。


    关于API函数的作用以及相关参数的意义及选择,请参考TivaWare™ Peripheral Driver Library use guide

    具体位置在..\TivaWare_C_Series-xxxx\docs\SW-TM4C-DRL-UG-xxxx, xxxx为相应的TIVAWARE的版本号。

  • 谢谢您的回复!

    1.我使用的是青风电子制作的Hanker TM4C开发板,赠送的资料中有触摸屏校正的示例程序,可以获得校正系数。关于这个问题我也问了老板,老板解释说需要多次获得校正系数,有的校正系数不准的。