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 就可以看到那些问号到底是什么错误消息了,有利于找出问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)