ATtiny85 >> C/C++
Button
從官方的PDF文件可以找到如下對應的GPIO暫存器設定說明:
PUD寫入1會關閉提升電阻的功能
PORTB可以做讀寫的動作
DDRB設定輸入或者輸出方向
PINB用以讀取輸入數值,但是比較特別的是,當設定成輸出時,對該暫存器寫入1時,會Toggle相對應的Bit,這一點倒是蠻貼心的設計
接著使用如下測試電路:
main.c
#include <avr/io.h> #include <util/delay.h> int main(void) { DDRB = 0x02; PORTB = 0x03; while(1){ PORTB = (PINB & 0x01) ? 0x01 : 0x03; } return 0; }
Makefile
all: avr-gcc -Wall -Os -DF_CPU=1000000 -mmcu=attiny85 -o main.o main.c avr-objcopy -j .text -j .data -O ihex main.o main.hex flash: avrdude -vv -c usbasp -p t85 -U flash:w:main.hex:i clean: rm -rf main.o main.hex
編譯和燒錄
$ make $ sudo make flash
完成