OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5823|回复: 1

Keil调试问题

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2013-7-24
在线时间
9 小时
发表于 2013-7-27 12:31:21 | 显示全部楼层 |阅读模式
检测了程序多遍,没有问题,编译也没有错误和警告。但调试时出现了这些错误
*** error 65: access violation at 0x40028080 : no 'read' permission
*** error 65: access violation at 0x40028080 : no 'write' permission
*** error 65: access violation at 0x400280A0 : no 'write' permission
*** error 65: access violation at 0x400280A4 : no 'write' permission............



程序如下:
#include<lm3sxxx.h>

/*********************************************************************************************************
    LM3S328系列PWM例程:递增递减计数产生PWM方波,在Zero处触发中断,在中断里逐周期改变PWM周期。
*********************************************************************************************************/

/*
#include "hw_memmap.h"
#include "hw_types.h"
#include "hw_ints.h"
#include "interrupt.h"
#include "sysctl.h"
#include "gpio.h"
#include "pwm.h"
*/

#define PH0_PWM2  GPIO_PIN_1
#define PH1_PWM3  GPIO_PIN_6

int  main (void)
{
    SysCtlClockSet(SYSCTL_SYSDIV_1 |SYSCTL_USE_OSC  |SYSCTL_OSC_MAIN | SYSCTL_XTAL_8MHZ);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB|SYSCTL_PERIPH_GPIOC);      /*  使能PWM2和PWM3输出所在GPIO  */
    SysCtlPeripheralEnable(SYSCTL_PERIPH_PWM);                          /*  使能PWM模块                 */
    SysCtlPWMClockSet(SYSCTL_PWMDIV_1);                                 /*  WM时钟配置:不分频         */
    
    GPIOPinTypePWM(GPIO_PORTB_BASE,GPIO_PIN_1);                         /*  B1和PC6配置为PWM功能       */
    GPIOPinTypePWM(GPIO_PORTC_BASE,GPIO_PIN_6);
    
    PWMGenConfigure(PWM_BASE, PWM_GEN_1,                                /*  配置PWM发生器1:加减计数    */
                    PWM_GEN_MODE_UP_DOWN | PWM_GEN_MODE_NO_SYNC);      /*立即更新*/
    PWMGenPeriodSet(PWM_BASE, PWM_GEN_1, 60000);                        /*  设置PWM发生器1的周期        */
    PWMPulseWidthSet(PWM_BASE, PWM_OUT_2,30000);                        /*  设置PWM2输出的脉冲宽度      */
    PWMPulseWidthSet(PWM_BASE, PWM_OUT_3,30000);                        /*  设置PWM3输出的脉冲宽度      */
    
    PWMSyncUpdate(PWM_BASE,PWM_GEN_1_BIT);       //同步等待
    PWMOutputState(PWM_BASE, PWM_OUT_2_BIT | PWM_OUT_3_BIT, true);   /* 读取模块的使输出控制寄存器,并设置或清除请求的比特*/
    PWMGenEnable(PWM_BASE, PWM_GEN_1);                                  /*  使能PWM发生器1,开始产生    */
                                                                        /*  WM方波                     */
    PWMGenIntTrigEnable(PWM_BASE, PWM_GEN_1,PWM_INT_CNT_ZERO);            /*使能中断*/
    PWMIntEnable(PWM_BASE, PWM_INT_GEN_1);                                  /*  使能PWM发生器1中断          */
    IntEnable(INT_PWM1);                                                /*  使能PWM1中断                */
    IntMasterEnable();                                                  /*  使能总中断                  */
    for (;;) 
{
    }
}

//   PWM发生器1中断服务函数

void  WM_Generator_1_ISR (void)
{
    const unsigned long ulTab[10] =
    {
         3000,  9000, 15000, 21000, 27000,
        33000, 39000, 45000, 51000, 57000
    };
    static unsigned long n = 0;
    PWMGenIntClear(PWM_BASE, PWM_GEN_1, PWM_INT_CNT_ZERO);
    PWMPulseWidthSet(PWM_BASE, PWM_OUT_2, ulTab[n]);                    /*  设置PWM2输出的周期          */
    PWMPulseWidthSet(PWM_BASE, PWM_OUT_3, ulTab[9-n]);                  /*  设置PWM3输出的周期          */
    n++;
    if ( n >= 10 ) 
{
        n = 0;
    }
}



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-7-27 14:13:40 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-16 10:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表