avr-gcc

    1热度

    1回答

    我开始再次编程AVR。我能够在我的Linux计算机和Atmega8之间建立UART通信。不幸的是,当我发送大于0x1f的字节时,Atmega8似乎收到错误的字节。 UART使用9600 BAUD和数据格式8N1运行。 // clock frequency 1Mhz #define F_CPU 1000000UL // baud rate #define BAUD 9600 #define

    2热度

    1回答

    我刚刚发现我已经编译和编程AT32UC3B0512项目,使用AT32UC3B0256作为目标设备。 我的应用程序接缝工作没有问题。那可能吗? AT32UC3B0512和AT32UC3B0256之间有什么区别(闪存和内存大小不同)?

    0热度

    1回答

    #define F_CPU 8000000UL #include <avr/io.h> /* * main -- Main program */ int main(void) { /* Set OC1A pin to be an output */ DDRD|=(1<<5); /* Set output compare register value *

    1热度

    1回答

    我正在使用GCC arm-none-eabi-g++(4.8.3)编译ARM Cortex-M0单片机的代码。 一切都很好,但我注意到,当我包含并使用cstdlib中的任何功能时,该文件中的所有功能也都包含在内。如何摆脱它们? 我只打电话malloc()和free(),但生成的ELF也有system()和isatty()机器码。 这个单片机只有32kB的闪存,所以〜0.7kB的镇流器很重要,特别是

    0热度

    2回答

    我有一个中断服务程序,其中包含变量count和变量state,当count达到某个值时会变化。 我希望自己的代码是在ISR中的if语句中更改并保持state一段时间,其值由count确定。 例如我希望变量state为10计数等于1; 我想要state等于0 5次。 有点类似于改变PWM的占空比。 我遇到的问题是变量state在ISR结束或if语句结束时重置为零,我不确定。 在搜索答案后,我发现它可

    1热度

    1回答

    我想编译一个简单的汇编程序,用avr-gcc在Attiny85上运行。不幸的是,该程序根本无法工作。我在上传和编译时没有遇到任何错误。我知道程序本身应该工作,因为它使用C工作。那么我错过了什么? 编译和上传: avr-gcc blinky.S -mmcu=attiny85 -Os -g -o blinky.out avr-objcopy -O ihex blinky.out blinky.hex

    0热度

    1回答

    当编译如下代码: #define F_CPU 1000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { DDRC = 255; while(1){ PORTC=255; _delay_ms(200); PORTC=0; _delay_ms(200); } return 0; }

    1热度

    1回答

    我想测量脉冲持续时间,但我需要测量4个信号,所以我不能使用定时器捕获中断,因为只有1个引脚ICP1提供该选项(或可以)。所以我尝试实现像arduino pulseIn这样的区别,我使用定时器(arduino有一些其他实现,但非常相似)。 实际的问题是pulseIn没有返回任何东西,只是继续在无限循环中工作。 使用ATmega16。 现在只在PB2上测试。 unsigned long pulseIn

    5热度

    4回答

    我平时做这样的事情 array.sort{|a,b| a.something <=> b.something} 我如何应该干这个吗?

    5热度

    5回答

    并发是很多技术播客中的热门话题之一。然而,我找不到专门用于并发编程基础知识,技术等的播客。如果没有专门针对并发的播客,哪些技术播客突出强调了这个主题?