最初の1行と最後の1行は、ダイナミック駆動のところでタイミングを間違えていませんか?よくありがちなミスですので、ぜひ見返してみてください。16:20:07↑タイミングは、見た感じ大丈夫そうですね。PWMのWritePulseWidth?は、いまのパルスが終わったあと(カウンタ=PulseWitdh?の条件が成立後)に、次のパルスでそのWidthが使われる、という仕様だったような記憶があります(PWMモジュールのデータシートに載っていたはず)。16:28:50そのへんの立ち上がり立ち下がりってまだ良く理解できないのでまたしらべておきます!ただ、ブレッドボードならいまのプログラムでも最後の行は光っていたのでなんなんだろう?と思っています。col;col++;}無事動いたようでなによりです。floatの演算を使っていますが、今回は速度は間に合ったようですね。22:10:30速度を求めるのであれば、実数演算を使わず、たとえば*0.8ならば*8/10、とします。ちなみにこの*8は、3ビット左シフトなので、<<3とすると、より速くなるかと。22:11:52たぶん演算速度の話は、そのマイコンのもっている演算命令の種類を理解しないと、よくわからないかと思います。22:12:38なるほどfloatなどでもビットシフトでやれるんですね。浮動小数点型のデータ構造っていまいちわかってない私です。23:46:37じゃあrippleではint型をわざわざ4ビットあげて小数点以下を残すための計算をしているのだけど、sumはfloatにしてそのままビットシフトで計算してもいいんだ。23:50:35最新のソースコードにしておきます。18:14:05)割り込みなんですが、タイマーは現在デジタルブロックが全部PWMモジュールで埋まっているので、独立して作ることができません。75としてVC3=32000を利用しています。5000に変えてみました。PWMのPeriodは31のまま。これだと早く変化するようにはなったのですが、行方向にすごくちらつきました。東京でお会いした時にコメントを直でもらいましたが、結局だめでした。スペックオーバーと割り切って方針変更です。21:43:11↑の理解で正しいと思います。CLKは、いくつにちていますか?デフォルトではSYSCLK/8(=24/8=3MHz)となっていますが、電源が5VであればSYSCLK(24MHz)まで上げられます。今回のように処理内容が多い場合は有効ではないかと思います。07:39:06おお!ビンゴです。システムクロックとCPUクロックは違うんですね。13:53:12)通りすがりのakitaですいくつか質問をさせてください。・タイマ割り込みが、PWM8_1の周期ごとに起こっているように見えますが、これは周期が短すぎませんか?グラデーションを表示するのにPWM8のデューティー比を変えるわけですが、1周期ごとに割り込みをかけてデューティー比を変えるのは、頻度が高すぎるように思えます。1画面(16行)で毎秒30フレーム(33ms)とすれば、1行あたり2ms程度ですので、5kHz程度の周期で割り込みをかけるのが順当のように思えます。ような算術演算は、非常に時間がかかります。yを2重のfor文でまわす書き方にしたほうがよいように思います。書くほうが速くなるように思います。左4ビットシフトなので、×16と同じ意味)・ADCの変換時間はどれぐらいになっているでしょう?意外と時間がかかっているのではないかと思います。・以上を考慮して、まだイマイチであれば、製品版コンパイラでコンパイルして試してみますので、プロジェクトを一式、お送りください。コメントありがとうございます。うーん!なるほど修正してみます。17:10:43算術演算は変えてみました。あと、ADCは空きブロックの関係上SAR6を使っていますが、データシートによると25usとなってました。12:49:11)たしかにC言語「風」だった。こちらでPSoC用に書き直したソースを貼り付けときます。なんかおかしなところがあれば突っ込んでくださいませ。一応動きますが256バイトの配列の読み書きは処理が重すぎるみたい。この辺は確認中だけど、結論は16段階グラデーション表示は無理かもしれません。11:25:47)波紋のプログラムをC言語風にしました。0;}お、ありがとう。あとでゆっくり見てみます。