chottoshitahanashi’s diary

基本的に間違ったことばかり書いてるブログ。検索ひっかかるな

ATTiny13Aでどうしてもメモリオーバーになってしまう(とIOアクセスマクロ&FUSEビット参考リンク)

と思ったら
Arduino IDE wont compile a simple Attiny13 program - #4 by lfreddi - Installation & Troubleshooting - Arduino Forum

A tiny13 doesn’t have enough memory to do floating point.

floatが原因だったのか。intに直したらメモリ節約できた。
たぶんコンパイラ最適化のために全然違うとこでメモリ消費してるように見えてた。
追記:あーそっか浮動小数点プロセッサを持ってなくてソフトウェア処理してるのか。


IOポート、Cのマクロ | 始めるAVR。_BV(PB1)マクロとかPINBとかについて
AVR入門(3) ピン入力と割り込み | stastaka's Blog。今回使ってないけど外部割込みについて。ピン入力方法についても。
sfr_defs.h。AVR-GCCについて非常に詳しい。ほぼリファレンス的
AVR の RSTDISBL について。ヒューズ設定でISP書き込めなくなる話
ArduinoISPを汎用AVRライタとして使う(2) - しなぷすのハード製作記。例の詳しい解説サイト。下の方にヒューズビットについて詳細
AVR Fuse Calculator for ATtiny13A。便利なFUSEビット自動計算。知らなかったけど機能の有効化が0、無効化が1なのか。よくない名前のつけかた、超ややこしい。
https://avr.jp/user/DS/PDF/tiny13A.pdf。39ページがPORTBとか I/Oレジスタ


PORTBに書き込む時はそのまま書き込むのにbit_is_set()のマクロ見るとPINBから読みだすときはPINBがアドレスでそれが指す先を1バイト読み込んでるみたい。なぜ?