菜鸟求助:关于GCC编译的中断程序没有反应,

菜鸟求助:关于GCC编译的中断程序没有反应,,第1张

首先你的程序逻辑上是没错的,但是主要是你对中断程序不是很了解

1. ISR()里面应加一条延时程序,排除按键抖动抖动产生的影响,不要忘了加延时程序了

2.DDRD=0xFF这个应改为DDRD=0xF0,如果我们使用前两个端口做输入的,所以要置为输入状态。

3.MCUCR = 0x00这个中的0x00要改为0x0A,才用下降沿触发

#include<avr/io.h>

#include <avr/interrupt.h>

#include <util/delay.h>

unsigned char counter

unsigned char led_7[16]=

{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}

ISR(INT0_vect)

{

if(++counter>=16) counter=0

_delay_ms(500)

}

ISR(INT1_vect)

{

if(counter) --counter

else counter=15

_delay_ms(500)

}

int main()

{ PORTB=0xFF

DDRB=0xFF

PORTD=0x0F

DDRD=0xF0

counter=15

cli()

GICR |= 0xC0

MCUCR = 0x0A

GIFR |= 0xC0

sei()

while(1)

{

PORTB=led_7[counter]

}

}

要么写成 .exec("gcc E:\\hello.c -o E:\\hello.exe")

要么用你的写法,但 gcc 要写上完整路径

或者尝试 new String[] {"C:\\windows\\cmd.exe", "/c", "gcc", "E:\\hello.c", "-o", "E:\\hello.exe"}

反正打散成数组参数后,第一个参数必须是完整路径,不能只写短名。

在命令行运行 java 时加上 java -Duser.language=en_US 就可以看到那些问号到底是什么错误消息了,有利于找出问题。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12189993.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存