查看: 7652|回复: 2

【PSOC4】入门学习笔记9——flash读写

[复制链接]
  • TA的每日心情
    开心
    2019-7-11 11:26
  • 签到天数: 1982 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2013-11-24 14:24:16 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 feiante 于 2013-11-24 14:37 编辑

    试验目的:本试验主要完成flash的读写工作,基于原来的PWM-LED灯的试验,通过一个输入按键SW2来调节PWM的比较值控制LED灯的亮度,同时把PWM的比较值存储在flash中,如果系统上电或复位,读出flash里存储的PWM比较值的值并控制LED灯的显示。
    试验步骤:
    1、在原理图中放置一个PWM组件,一个时钟组件,一个数字量输入和一个数字量输出组件。(如图1.JPG所示)
    2、配置PWM组件的初始周期为1000,比较值为500。配置输入管脚的初始状态为高电平。
    3、在主程序中进行程序编写:
    (1)、定义flash数组的字节大小,进行flash相关的定义。
           #define FLASH_ROW_SIZE_BYTES            128       #define FLASH_ALIGNED __attribute__ ((aligned (FLASH_ROW_SIZE_BYTES)))

           static const uint8 FLASH_ALIGNED flashRowDataFLASH[FLASH_ROW_SIZE_BYTES]={0};
           #define FLASH_DATA_BASE_ADDRESS_BYTE    (uint32) (&flashRowDataFLASH)
           #define FLASH_DATA_BASE_ADDRESS_ROW     FLASH_DATA_BASE_ADDRESS_BYTE / FLASH_ROW_SIZE_BYTES

           然后读flash里面的值(这个在for循环外面,主要是上电或复位时只执行一次)
            flashRowDataSRAM[0] = flashRowDataFLASH[0];
            flashRowDataSRAM[1] = flashRowDataFLASH[1];   
            PWMCompare=(flashRowDataSRAM[0]<<8) + flashRowDataSRAM[1];
            PWM_R_WriteCompare(PWMCompare);

           在for循环中进行按键检测同时将PWM的值写入flash中进行保存:
            if(!Pin_SW2_Read())                       /*按键检测*/
            {
                while(!Pin_SW2_Read())
                {              
                   PWMCompare += 1;
                    if (PWMCompare >=1000)
                    {
                        PWMCompare = 0;
                    }
                    PWM_R_WriteCompare(PWMCompare);
                    CyDelay(1);
                }
               flashRowDataSRAM[0] = PWMCompare>>8;               /*将PWM比较值存入flash中 */            flashRowDataSRAM[1] = PWMCompare&0x00ff;
                flashWriteResult = CySysFlashWriteRow(FLASH_DATA_BASE_ADDRESS_ROW, flashRowDataSRAM);

    4、配置相应的管脚(LED配置为P1.6,SW2配置为P0.7)
    5、程序下载后,通过按SW2,当LED灯显示很暗时,按复位或重新上电,LED灯显示会很暗,通过按SW2将LED灯调亮,按复位或程序上电时,LED灯显示会亮。

















    1.JPG
    回复

    使用道具 举报

  • TA的每日心情

    2023-7-25 22:49
  • 签到天数: 385 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2016-11-23 12:15:35 | 显示全部楼层
    学习了学习了学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2017-12-17 18:53:09 | 显示全部楼层
    做个标记,有空学下
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 23:38 , Processed in 0.127524 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.