ポスト
→start conditionの途中でHになってしまい、AS3935が返事しなくて困っていた。void i2c_start()からSDAポートリリースするためにこのルーチンから抜けるときに I2C_PORT |= (1<<PIN_SDA); するようになっていたが、これをコメントアウトするとこのあとUSIDRからの送出がうまくいかない。→
メニューを開くみんなのコメント
メニューを開く![](https://rts-pctr.c.yimg.jp/BgIFgYJGVIVv8u0nVJvw8B2FauAYMF4jOP5zFJAV4i5e72TLbER0xQeK1l8ZZ0OLi4I1cohqmbnT5rt4KTheLwAt-k9OOshQKG1HT0CP9-eNAbnb8_RFXJ7AkEXejlDVTM472PlX5w_FWs2R1zh9fcvJQZ6g-1uwlcoNjRL2W-s-n_NSFU0p_NXwKgeoanjFMS-WX-foQQvVztzOqHGUPw==)
→ただマニュアルによると「USIデータ・レジスタの出力またはPORTAレ ジスタの対応するビットが "0 "の場合、出力ドライバはSDAラインを強制的に "L "にします」とあるので、スタートコンディションの途中でSDA=HになるのはUSIDRのbit7がHのせいかも? →