Microchip AVR8 用のライブラリを自作する。(TCA)

Tcaクラスは、PWMと引数を省略したbegin()呼び出し(標準動作モード)時のみ起動時からの経過時間取得(read)と任意時間による割込み(interrupt)に対応している。
TcaPWM8クラスはPWM(8bit)のみ。

HW割込みを使うには、
[avr8_config.h] #define CONFIG_TCA_ISR 1
の設定が必要となる。

【サンプルコード (Microchip Studio)】

【修正履歴】
2025-11-25
TcaPWM8をTca8にクラス名を変更。Tca8クラスのbegin()呼び出しにより起動時からの経過時間の取得と任意時間による割込みに対応。但し、カウンターが8bitであるため4us(250KHz)毎にカウントするものとし誤差がでないシステムクロック(1/2/4/16MHz)のみの対応となる。あとPWM0側をタイマーとして利用するためPWM出力はPWM1側のみとなる。

2025-11-24
今後の改良のためにTca/TcaPWM8クラスに共通の基底クラスを追加。AVR-G++はvirtualが使えないことを失念してて少しハマッてしまった。(-_-;) virtualなしでのダウンキャストは手間がかかるからやりたくはないがしょうがない...のかな?

2025-11-22
バグ修正とTcaPWM8クラスの追加。TcaPWM8は分周器を共有する3つの出力をもつ2つのカウンターで計6個の出力が可能となる。同じTCAnを指定するTcaクラスとTcaPWM8クラスは排他的に利用すること。

【ライブラリ】

【関連投稿】
Microchip AVR8 用のライブラリを自作する。(GPIO)
Microchip AVR8 用のライブラリを自作する。(FUSE)
Microchip AVR8 用のライブラリを自作する。(CLOCK)
Microchip AVR8 用のライブラリを自作する。(RESET)
Microchip AVR8 用のライブラリを自作する。(PORTMUX)
Microchip AVR8 用のライブラリを自作する。(USART)
Microchip AVR8 用のライブラリを自作する。(RTC)
Microchip AVR8 用のライブラリを自作する。(TCA)
Microchip AVR8 用のライブラリを自作する。(TCB)
Microchip AVR8 用のライブラリを自作する。(VREF)
Microchip AVR8 用のライブラリを自作する。(DAC)
Microchip AVR8 用のライブラリを自作する。(AC)
Microchip AVR8 用のライブラリを自作する。(ADC)
Microchip AVR8 用のライブラリを自作する。(ZCD)
Microchip AVR8 用のライブラリを自作する。(SPI)
Microchip AVR8 用のライブラリを自作する。(TWI)
Microchip AVR8 用のライブラリを自作する。(YIELD)
Microchip AVR8 用のライブラリを自作する。(CONFIG)