标签: avr

AVR JTAGICE mkII

原装Atmel jtag程序员售价300美元.

http://www.atmel.com/dyn/products/tools_card_v2.asp?tool_id=3353

http://search.digikey.com/scripts/DkSearch/dksus.dll?site=us&lang=en&mpart=ATJTAGICE2

你推荐我哪个克隆?他们是100%克隆?(与avr工作室合作,同样的fw等)

谢谢.

avr atmel jtag

2
推荐指数
1
解决办法
2075
查看次数

为什么avr-gcc在调用main()时会费心保存寄存器状态?

avr-gcc程序中的main()函数将寄存器状态保存在堆栈中,但是当运行时调用它时,我理解在微控制器上没有任何东西可以返回.这是浪费RAM吗?如何防止这种状态储蓄?

c microcontroller stack avr avr-gcc

2
推荐指数
1
解决办法
1180
查看次数

将char变量转换为unsigned int

我试图将char变量转换为Unsigned int.我的代码是

char spi(char data) 
{ 
    //Start transmision 
    SPDR = data; 
    //Wait for transmision complete 
    while(!(SPSR & 0x80)); 
    return SPDR; 
} 

unsigned int ReadAd(void) 
{ 
    unsigned int data; 

    ChipSelectAd(1); 
    //Read data 
    CheckStatus();                                            
    spi(0x58);                                                
    data = (spi(0xFF)<< 8);    
    data |= spi(0xFF);         

    return data; 
} 
Run Code Online (Sandbox Code Playgroud)

实际上我的问题是spi函数返回一个8位字符,所以上面的代码将char变量左移8bits然后将它分配给一个16位变量,结果总是为0.为了实际将数据移到左边我需要首先将它们转换为16位类型的变量.我试过这样的

char spi(char data) 
{ 
    //Start transmision 
    SPDR = data; 
    //Wait for transmision complete 
    while(!(SPSR & 0x80)); 
    return SPDR; 
} 

unsigned int ReadAd(void) 
{ 
    unsigned int data; 

    ChipSelectAd(1); 
    //Read data 
    CheckStatus();                                            
    spi(0x58);                                                
    data = (unsigned int)((unsigned char)spi(0xFF)<< …
Run Code Online (Sandbox Code Playgroud)

c embedded avr

2
推荐指数
1
解决办法
1121
查看次数

构建失败...未定义构建工具.AVR工作室4.19

当我尝试使用AVR studio 4调试一小段代码时出现此错误:

Build failed... No build tools defined. 
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些建议吗?

avr

2
推荐指数
1
解决办法
2万
查看次数

为什么带有对指针引用的输入的函数不能编译?

我在我的Linux机箱上测试了这个,它有gcc,编译得很好.

void myFunc(int* &input);
Run Code Online (Sandbox Code Playgroud)

编译没有错误.

在我的avr上,声明相同的功能:

void myFunc(int* &input);
Run Code Online (Sandbox Code Playgroud)

导致编译错误:

expected ';', ',' or ')' before '&' token
Run Code Online (Sandbox Code Playgroud)

linux上的gcc版本是4.6.3

avr(avr-gcc)的gcc版本是3.4.2

c c++ avr

2
推荐指数
1
解决办法
106
查看次数

avr-gcc从不返回主优化

我曾读到,如果我从来没有从回main()圈,我可以抽出〜66个字节,而在一些编译器开关avr-gcc,但我无法再找到该网站。

这是针对嵌入式的:

main() {
 while(1)
 {
   // do stuff
 }
}
Run Code Online (Sandbox Code Playgroud)

c gcc avr

2
推荐指数
1
解决办法
288
查看次数

AVR按位C操作

我对Atmel Studio 6.1中的ATMEGA328P编程有疑问.

将二进制文件分配给寄存器比进行移位操作更快吗?

如果我理解正确,但请更正此!!

让我们说:

DDRC = 0b11001100;
Run Code Online (Sandbox Code Playgroud)

我必须在进行按位操作之前检查初始位条件,然后才能将任何位置移位到位置?例如

DDRC |= (1<<DDRC0);
Run Code Online (Sandbox Code Playgroud)

我们得到:

11001100
10011001
Run Code Online (Sandbox Code Playgroud)

=

11011101
Run Code Online (Sandbox Code Playgroud)

这样对吗?如果我们知道一点点组合简单地写,也许它更快更简单?:

0b11001101
Run Code Online (Sandbox Code Playgroud)

c gcc avr bit-manipulation

2
推荐指数
1
解决办法
5522
查看次数

AVR定时器编程:CTC模式与正常模式

当比较优势劣势CTC模式普通模式的AVR定时器编程,你觉得哪一个更好?为什么?你能为我解释一下吗?

谢谢你的帮助.

comparison avr timer

2
推荐指数
1
解决办法
9503
查看次数

如何在C中为AVR-Studio编写自定义reset()函数?

所以我被分配了为AVR编译编写自定义reset()函数的任务.

我得到了这个信息 - "Atmega128和Pic24e在程序地址0x0处有复位中断.写一个函数reset()来复位程序.我也听说过强制系统重启的一种简单方法就是发送它进入无限循环.

叫我疯了,但这就像写作一样简单:

function reset(){
  goto 0x00000000;
}
Run Code Online (Sandbox Code Playgroud)

不确定你是否可以这样做,而不是寻找复杂的解释,因为我很确定这是一个通用的问题.简短而甜蜜,如果你能:)

c gcc avr avr-gcc

2
推荐指数
1
解决办法
4432
查看次数

做while循环退出前成熟

我已经编写了用于读取开关状态的代码,如果按下#是3次则退出.

void allkeypadTest(void)
{
    static uint8_t modeKeyCount=0;

    do
    {
        uint8_t key=getKeyStatus();
        if(key)
        {
            if(key=='#')
            {
                modeKeyCount++;
                //pulseIODevice(LED1,1,500,200);
            }
            else
            {
                pulseIODevice(LED1,key-0x30,500,200);
            }
        }
     }while(modeKeyCount<3);
}
Run Code Online (Sandbox Code Playgroud)

但是一旦我输入#key一次,循环就会退出.如果按其他键,行为就可以了.但是,如果我pulseIODeviceif(key=='#')部分下取消注释,行为是正常的.pulseIODevice将在特定时间段内将LED切换一定时间并将PWM传递给它.我很困惑我的代码出了什么问题.请注意,如果未检测到任何键,getKeyStatus则返回'\0'(null)并返回1x4键盘键的ASCII值(ASCII值为3,6,9和#)

c avr do-while

2
推荐指数
1
解决办法
76
查看次数

标签 统计

avr ×10

c ×7

gcc ×3

avr-gcc ×2

atmel ×1

bit-manipulation ×1

c++ ×1

comparison ×1

do-while ×1

embedded ×1

jtag ×1

microcontroller ×1

stack ×1

timer ×1