EC_MS51_ARGB_RainBow_Wave_Effect_V1.00.zip
(1.46 MB, 下载次数: 2)
程序中设定系统时钟HIRC 为24 MHz 以及SPI 时钟除频值为8,由此可计算出SPI 时钟速率为 3 MHz,这代表一个SPI 时钟为 0.333 us。换句话说,逻辑’0’ 映像为SPI 位样式为‘1000’; 逻辑’1’ 映像为SPI 位样式为‘1110’,亦即3 个字节的RGB 数据格式可转化成12 个字节的SPI 数据格式。
- /*---------------------------------------------------------------------------------------------------------*/
- /* */
- /* Copyright(c) 2020 Nuvoton Technology Corp. All rights reserved. */
- /* */
- /*---------------------------------------------------------------------------------------------------------*/
- //***********************************************************************************************************
- // Website: http://www.nuvoton.com
- // E-Mail : MicroC-8bit@nuvoton.com
- //***********************************************************************************************************
- #include "MS51_32K.h"
- #include "Nuvoton_Stripe.h"
- /* Data Flash */
- #define Addr_DataFlash 0x3F80
- void Timer3_ISR(void) interrupt 16 // Vector [url=home.php?mod=space&uid=72445]@[/url] 0x83
- {
- _push_(SFRS);
- clr_T3CON_TF3;
- /* Add time counter */
- TOPDOWNTimeCounter++;
- _pop_(SFRS);
- }
- void Timer3_1ms_initial(void)
- {
- SFRS = 0x00;
- T3CON &= 0xF8;
- clr_T3CON_TF3;
- RL3 = 0x40;
- RH3 = 0xA2;
- // RH3 = 0x82;
- set_T3CON_TR3;
- set_EIE1_ET3;
- set_IE_EA;
- }
- void SPI_Init()
- {
- set_SPSR_DISMODF; // SS General purpose I/O ( No Mode Fault )
- clr_SPCR_SSOE;
- clr_SPCR_LSBFE; // MSB first
- clr_SPCR_CPOL; // The SPI clock is low in idle mode
- clr_SPCR_CPHA; // The data is sample on the first edge of SPI clock
- set_SPCR_MSTR; // SPI in Master mode
- SPICLK_FSYS_DIV8; // Select SPI clock
- set_SPCR_SPIEN; // Enable SPI function
- clr_SPSR_SPIF;
- }
- void main(void)
- {
- MODIFY_HIRC(HIRC_24);
- /* Set LED output */
- P00 = 1;
- P00_INPUT_MODE;
- ENABLE_P00_PULLDOWN;
- SPI_Init();
- /* Enable Timer3 to add time counter */
- Timer3_1ms_initial();
- /* Init LED to all disable */
- Disable_TOPDOWN();
- SPI_Send();
- while (1)
- {
- /* Control LED */
- {
- RainbowWave_TOPDOWN();
- SPI_Send();
- }
- }
- }
|