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

完成


返回上一頁