打印
[AVR单片机]

ATMEGA128 开启AD转换后程序从头执行

[复制链接]
1775|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wqm879|  楼主 | 2013-8-9 23:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

#include <avr/io.h>
#include <avr/interrupt.h>
#include "LCD.h"

#pragma interrupt_handler adc_isr:iv_ADC

void adc_isr(void)
{
//        ADCSRA|=(1<<ADIF);
//        reti();
        Write_String(0,0,"test8");
        _delay_ms(1000);
       
       
}



void main(void)
{
        WDTCR=(1<<WDCE)|(1<<WDE);
        WDTCR=0X00;
        LCD_Init();
        LCD_Clear();
        Write_String(0,0,"test1");
        _delay_ms(1000);
        DDRF=0xFE;
        PORTF=0xFE;
        ADCSRA=0x00;
        Write_String(0,0,"test2");
        _delay_ms(1000);
        ADMUX=0xC0;
        Write_String(0,0,"test3");
        _delay_ms(1000);
        ADCSRA=0xBF;
        Write_String(0,0,"test4");
        _delay_ms(1000);
        sei();
        Write_String(0,0,"test5");
        _delay_ms(1000);
        ADCSRA|=(1<<6);
        Write_String(0,0,"test6");
        _delay_ms(1000);
        while(1)
        {
                Write_String(0,0,"test7");
        }
}

没有好的调试工具 只好用test检测 反复刷新显示test1~5 不往下走了 不知道是哪里写错了 求大神指教!

相关帖子

沙发
airwill| | 2013-8-11 18:17 | 只看该作者
会不会是还没有执行到下面, 看门狗复位了呢?

使用特权

评论回复
板凳
qin552011373| | 2013-8-12 08:46 | 只看该作者
有可能是看门狗复位了,直接在熔丝位里关闭看门狗,试试,如果可以你的程序里面及时喂狗,然后在熔丝位再次打开看门狗就可以了

使用特权

评论回复
地板
wqm879|  楼主 | 2013-8-12 19:39 | 只看该作者
airwill 发表于 2013-8-11 18:17
会不会是还没有执行到下面, 看门狗复位了呢?

看门狗应该已经是禁用了的

使用特权

评论回复
5
wqm879|  楼主 | 2013-8-12 19:40 | 只看该作者
qin552011373 发表于 2013-8-12 08:46
有可能是看门狗复位了,直接在熔丝位里关闭看门狗,试试,如果可以你的程序里面及时喂狗,然后在熔丝位再次 ...

熔丝位里是关了的,我也在程序开头特地写了句禁用看门狗的

使用特权

评论回复
6
qin552011373| | 2013-8-12 20:35 | 只看该作者
wqm879 发表于 2013-8-12 19:40
熔丝位里是关了的,我也在程序开头特地写了句禁用看门狗的

恩  你后面的程序思路是要做什么?

使用特权

评论回复
7
wqm879|  楼主 | 2013-8-12 23:57 | 只看该作者
qin552011373 发表于 2013-8-12 20:35
恩  你后面的程序思路是要做什么?

AD转换 但是一开始转换就复位了 不开中断就可以 开了中断就复位

使用特权

评论回复
8
ningling_21| | 2013-8-13 20:59 | 只看该作者
wqm879 发表于 2013-8-12 23:57
AD转换 但是一开始转换就复位了 不开中断就可以 开了中断就复位

是不是没有中断服务函数导致复位了?

使用特权

评论回复
9
wqm879|  楼主 | 2013-8-14 01:43 | 只看该作者
ningling_21 发表于 2013-8-13 20:59
是不是没有中断服务函数导致复位了?

确实是中断服务函数声明的有问题 网上给的例程写法不太适用 谢谢啦~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

5

帖子

0

粉丝