hjklhu

    1. 上传一个显示图片的例子 tft测试+图片显示.rar (78.82 KB) 下载次数: 1 2011-3-8 18:05 下面是效果图
    2.                                  4层板好像就是这个价了
    3. 关于程序执行 11/3837 stm32/stm8 2010-08-18
                                       STM8我还从来没有仿真过。调试都是看串口打印信息的
    4. 为什么stm32cpu老烧啊 30/8700 stm32/stm8 2010-06-21
                                       看来得小心点了
    5. A/D转换器的原理是什么? 6/4528 嵌入式系统 2010-06-04
      这个老师上课的时候讲的好详细撒,不过现在都忘光了
    6. 中断 声明一个中断向量,说明如下: #pragma vector=0x02 __interrupt void interrupt_handler(void) 说明: #pragma vector: 是IAR中断向量指令 =0x02 : 其数字代表中断向量编号。STM8的地址是从0x00800开始,IAR的中断编号从0开始。中断向量号依次按照中断地址递增。如: 复位向量是0x008000,中断向量号是0x00 TRAP的中断地址是0x008004中断向量号是0x01 SPI中断号是0x0C;详细见下表 __interrupt void interrupt_handler (void): 是声明一个中断函数,注意interrupt是两个下划线,interrupt_handler是中断函数名字,可自己定义。 下载 (98.93 KB) 2010-5-15 12:00
    7. static void PddpTouchPanelEvaluateSamples(     TOUCH_PANEL_SAMPLE_FLAGS        *pSampleFlags, //@PARM Pointer to where the tip state information will be returned.     INT                                                        *pUncalX,      //@PARM Pointer to where the x coordinate will be returned.         INT                                                        *pUncalY       //@PARM Pointer to where the y coordinate will be returned.     ) {     LONG    dlXDiff0;     LONG    dlXDiff1;     LONG    dlXDiff2;     LONG    dlYDiff0;     LONG    dlYDiff1;     LONG    dlYDiff2;     TOUCHPANEL_POINT_SAMPLES rgPointSamples;     //     // Get the sample.     //     PddpTouchPanelGetSamples( rgPointSamples );     //     // Calcuate the differences for the X samples and insure that     // the resulting number is positive.     //     dlXDiff0 = rgPointSamples[ 0 ].XSample - rgPointSamples[ 1 ].XSample;     dlXDiff1 = rgPointSamples[ 1 ].XSample - rgPointSamples[ 2 ].XSample;     dlXDiff2 = rgPointSamples[ 2 ].XSample - rgPointSamples[ 0 ].XSample;     dlXDiff0 = dlXDiff0 > 0  ? dlXDiff0 : -dlXDiff0;     dlXDiff1 = dlXDiff1 > 0  ? dlXDiff1 : -dlXDiff1;     dlXDiff2 = dlXDiff2 > 0  ? dlXDiff2 : -dlXDiff2;     //     // Calcuate the differences for the Y samples and insure that     // the resulting number is positive.     //     dlYDiff0 = rgPointSamples[ 0 ].YSample - rgPointSamples[ 1 ].YSample;     dlYDiff1 = rgPointSamples[ 1 ].YSample - rgPointSamples[ 2 ].YSample;     dlYDiff2 = rgPointSamples[ 2 ].YSample - rgPointSamples[ 0 ].YSample;     dlYDiff0 = dlYDiff0 > 0  ? dlYDiff0 : -dlYDiff0;     dlYDiff1 = dlYDiff1 > 0  ? dlYDiff1 : -dlYDiff1;     dlYDiff2 = dlYDiff2 > 0  ? dlYDiff2 : -dlYDiff2;     //     // The final X coordinate is the average of coordinates of     // the two MIN of the differences.     //     if ( dlXDiff0 < dlXDiff1 )     {         if ( dlXDiff2 < dlXDiff0 )         {             *pUncalX = (ULONG)( ( ( rgPointSamples[ 0 ].XSample + rgPointSamples[ 2 ].XSample ) >> 1 ) );         }         else         {             *pUncalX = (ULONG)( ( ( rgPointSamples[ 0 ].XSample + rgPointSamples[ 1 ].XSample ) >> 1 ) );         }     }     else if ( dlXDiff2 < dlXDiff1 )     {             *pUncalX = (ULONG)( ( ( rgPointSamples[ 0 ].XSample + rgPointSamples[ 2 ].XSample ) >> 1 ) );     }     else     {             *pUncalX = (ULONG)( ( ( rgPointSamples[ 1 ].XSample + rgPointSamples[ 2 ].XSample ) >> 1 ) );     }     //     //     // The final Y coordinate is the average of coordinates of     // the two MIN of the differences.     //     if ( dlYDiff0 < dlYDiff1 )     {         if ( dlYDiff2 < dlYDiff0 )         {             *pUncalY = (ULONG)( ( ( rgPointSamples[ 0 ].YSample + rgPointSamples[ 2 ].YSample ) >> 1 ) );         }         else         {             *pUncalY = (ULONG)( ( ( rgPointSamples[ 0 ].YSample + rgPointSamples[ 1 ].YSample ) >> 1 ) );         }     }     else if ( dlYDiff2 < dlYDiff1 )     {             *pUncalY = (ULONG)( ( ( rgPointSamples[ 0 ].YSample + rgPointSamples[ 2 ].YSample ) >> 1 ) );     }     else     {             *pUncalY = (ULONG)( ( ( rgPointSamples[ 1 ].YSample + rgPointSamples[ 2 ].YSample ) >> 1 ) );     }     //     // Validate the coordinates and set the tip state accordingly.     //     if ( dlXDiff0 > DELTA_X_COORD_VARIANCE ||          dlXDiff1 > DELTA_X_COORD_VARIANCE ||          dlXDiff2 > DELTA_X_COORD_VARIANCE ||          dlYDiff0 > DELTA_Y_COORD_VARIANCE ||          dlYDiff1 > DELTA_Y_COORD_VARIANCE ||          dlYDiff2 > DELTA_Y_COORD_VARIANCE )     { //#ifdef DBGPOINTS1         DEBUGMSG( ZONE_SAMPLES, (TEXT("Sample 0: X 0x%x Y 0x%x\r\n"),                rgPointSamples[ 0 ].XSample, rgPointSamples[ 0 ].YSample) );         DEBUGMSG( ZONE_SAMPLES, (TEXT("Sample 1: X 0x%x Y 0x%x\r\n"),                rgPointSamples[ 1 ].XSample, rgPointSamples[ 1 ].YSample) );         DEBUGMSG( ZONE_SAMPLES, (TEXT("Sample 2: X 0x%x Y 0x%x\r\n"),                rgPointSamples[ 2 ].XSample, rgPointSamples[ 2 ].YSample) );         if ( dlXDiff0 > DELTA_X_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("XDiff0 too large 0x%x\r\n"), dlXDiff0) );         if ( dlXDiff1 > DELTA_X_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("XDiff1 too large 0x%x\r\n"), dlXDiff1) );         if ( dlXDiff2 > DELTA_X_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("XDiff2 too large 0x%x\r\n"), dlXDiff2) );         if ( dlYDiff0 > DELTA_Y_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("YDiff0 too large 0x%x\r\n"), dlYDiff0) );         if ( dlYDiff1 > DELTA_Y_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("YDiff1 too large 0x%x\r\n"), dlYDiff1) );         if ( dlYDiff2 > DELTA_Y_COORD_VARIANCE )             DEBUGMSG( ZONE_SAMPLES, (TEXT("YDiff2 too large 0x%x\r\n"), dlYDiff2) ); //#endif // DBGPOINTS1     }     else     {         //         // Sample is valid. Set tip state accordingly.         //                 *pSampleFlags = TouchSampleValidFlag | TouchSampleDownFlag;     }     DEBUGMSG( ZONE_SAMPLES, (TEXT("Filtered - SampleFlags: 0x%x X: 0x%x Y: 0x%x\r\n"),            *pSampleFlags, *pUncalX, *pUncalY) ); } // // PddpSetupPenDownIntr() // // Set up the UCB to give pen down interrupts.  If EnableIntr flag is set, enable // the interrupt, otherwise, leave it disabled.  Note: - Caller must hold semaphore // when this function is called to protect access to the shared UCB registers. // BOOL PddpSetupPenDownIntr(BOOL EnableIntr) {         // USHORT intrMask;     // I don't know why we enable the interrupt here.             //     // Setup ADC register     //         // kang code     // Enable Prescaler,Prescaler,AIN5/7 fix,Normal,Disable read start,No operation     // Down,YM:GND,YP:AIN5,XM:Hi-z,XP:AIN7,XP pullup En,Normal,Waiting for interrupt mode         // kang code end     // Down Int, YMON:0, nYPON:1, XMON:0;nXPON:1, Pullup:1, Auto Conv.,Waiting.     v_pADCregs->rADCTSC =(0 CalibrationY));         return TRUE; }
    8. 关于wince下OPENGL ES纹理贴图! 8/5878 WindowsCE 2010-05-04
      另外,需要拷贝GLES的DLL到什么位置吗?我就链接它的LIB。
    9. uboot移植不进开发板,不知是何问题 4/3411 嵌入式系统 2010-04-01
      看看,真得不错.没搞过DSP.
    10. STM32专用复位电路问题? 11/15826 stm32/stm8 2010-03-24
                                       楼主。我很真诚的介绍你一款芯片。 STM810-811. 一般人我是不告诉他ST公司的产品的
    11. 引用 5 楼 peter_bian 的回复: 偶遇Veabol
      哈哈
    12. Avr STUDIO 4的一些问题 3/2581 嵌入式系统 2010-02-20
      引用 1 楼 schlafenhamster 的回复: for(interrupt>9) interrupt=0;//?? if(interrupt>9) interrupt=0;
      语法错误!
    13. Networking - General     -Universal Plug and Play (UPnP)
    14. 我心中的ST,不是做广告 31/9320 stm32/stm8 2010-01-12
                                        同意楼上
    15. pdu usc-2 中文编码 5/3260 嵌入式系统 2010-01-11
      uns2就是utf16-big endian
    16. STM32F101VC(大容量100pin)有FSMC,请看STM32F101xC/D/E数据手册: STM32F101VC_DS.GIF (20.19 KB) 下载次数:1 2010-1-8 16:26
    17. 电流检测有零漂问题 13/9497 嵌入式系统 2009-12-30
      互感器受到空间电磁场干扰,加个零位修正电路,或者直接数字修正
    18. STM32不能用11.0592的晶振? 16/8686 stm32/stm8 2009-11-23
                                       如果有两个不同的产品用了不同的硬件配置,比如使用了不同的晶振或芯片配置,为避免混淆,最好的办法是把用到的系统文件拷贝到字节的项目下,这样不同的项目都使用自己专用的头文件。
    19. 关于wince中断处理的问题 28/9984 WindowsCE 2009-10-27
      一定要保证 中断号对应 中断事件对应
    20. 按照能转的那个例程来接线,既然那个程序能转你就用那个程序就行了吗,而且人家那个程序比你写的好,非得要自己在那瞎弄

最近访客

< 1/1 >

统计信息

已有107人来访过

  • 芯积分:--
  • 好友:--
  • 主题:19
  • 回复:63

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言