ジャガー XF のみんなの質問
momoさん
2018.7.29 14:25
ちなみにファイルに載せたfree2.cの62行目のwait()をしている間しかスクロールができないためその間なにもすることができないため、いくらスイッチ押しても反応しません。ぜひ、止める方法のアドバイスをお願いします。
main分は以下の通りです。
volatile uchar sw; // 押しボタン状態
volatile uchar sw_flag; // スイッチ変化を示すフラグ(クリアはユーザ側で実施)
uint8_t led[LED_SZ], led2[LED_SZ], led3[LED_SZ]; // マトリクスLED
static volatile uchar period; // ブザー音の長さ
static volatile uchar user_flag; // ユーザー処理の開始フラグ
static volatile uchar delay; // 待ち時間カウンタ
static volatile uchar rnd; // 擬似乱数のカウンタ
/* マトリクスLEDのダイナミック点灯(2ms毎) */
ISR(TIMER0_COMPA_vect) //
{
static uchar sc = 0xFE;
static uchar scan = 0; // LED 走査カウンタ
static int i = 0, count = 0;
// LEDの更新
PORTB = 0; // 残像対策
sc = (sc << 1) | (sc >> 7);
PORTD = (PORTD & 0x0F) | (sc & 0xF0); // 上位4ビット書き換え
PORTC = (PORTC & 0xF0) | (sc & 0x0F); // 下位4ビット書き換え
scan = (scan + 1) & 7;
//スクロール処理
if(i++ == 10) {
i = 0;
if(led[scan] & 0x80) led[scan] = (led[scan] << 1) + 1;
else led[scan] = led[scan] << 1;
led2[scan] = led2[scan] = led[scan];
led3[scan] = led2[scan] | led[scan];
//led2[scan] = led3[scan] | led[scan];
}
PORTB = led3[scan];
}
/* スイッチ処理 */
ISR(PCINT1_vect)
{
OCR1A = TCNT1 + 500; // タイマ1に比較値設定(今から64ms後に割り込む)
TIFR1 = _BV(OCF1A); // フラグクリア
TIMSK1 |= _BV(OCIE1A); // タイマ1・コンペアマッチA割り込み有効化
rnd++; // 乱数も更新
}
ISR(TIMER1_COMPA_vect) // チャタリング終了後,64ms後に呼び出される
{
sw = (~PINC >> 4) & 3; // スイッチ変数の更新
sw_flag = 1;
TIMSK1 &= ~_BV(OCIE1A); // タイマ1・コンペアマッチA割り込み無効化
}
/* ユーザ処理のための割り込み */
ISR(TIMER1_COMPB_vect) // 100msごとに呼び出される
{
OCR1B = TCNT1 + 780;
TIFR1 = _BV(OCF1B); // フラグクリア
if (delay) { // 待ち
delay--;
}
if (period) { // ブザー停止
period--;
if (period == 0) {
TCCR2A = 0;
}
}
user_flag = 1; // ユーザコードを呼び出す
}
int main(void)
{
// LED,スイッチ,ブザーのポート設定
DDRB = 0xFF;
DDRC = 0x0F;
DDRD = 0xFA;
PORTC = 0x30; // 入力ピンをプルアップ
PORTD = 0x00;
// タイマ0(CTC): ダイナミック点灯用
OCR0A = 249; // 2mS
TCCR0A = 2;
TCCR0B = 3; // 1/64
TIMSK0 |= (1 << OCIE0A); // コンペアマッチA割り込み有効
// タイマ2(CTC): ブザー用
TCCR2A = 0;
TCCR2B = 0x44; // 1/64 , コンペアマッチ出力B有効(トグル)
// タイマ1(ノーマル):100msの定期割り込み
TCCR1A = 0x00;
TCCR1B = 0x05;
TIMSK1 |= _BV(OCIE1B); // コンペアマッチB割り込み有効化(100ms)
TCNT1 = 0xFFFF;
// ピン変化割り込み有効
PCICR = _BV(PCIE1);
PCMSK1 = 0x30;
user_init(); // ユーザ処理初期化
sei(); // システムとしての割り込みの有効化
for (user_flag = 0;;) {
wdt_reset();
if (user_flag) { // ユーザー処理の起動
user_main();
user_flag = 0;
}
}
return 0;
}
/* 時間待ち( n * 100ms) */
void _wait(uchar n)
{
for (delay = n; delay;) {
wdt_reset();
}
}
/* 擬似乱数生成 */
uchar _rand(void)
{
rnd++; // 乱数更新
return (uchar)(rnd ^ (rnd << 1)); // グレイコードカウンタ
}
/* ブザー */
void _sound(uchar tone, uchar length)
{
OCR2A = tone;
period = length;
TCCR2A = 0x12;
}
nac_tnkさん
2018.7.29 16:29
ゲーム内容が今一つ判らないのですが、これって、自動にスクロールさせてタイミング良くストップさせて縦一列にするゲームですよね?
LEDは100Hz以上ならちらつかないらしいので、私はそれ以上にしています。
8ビットのダイナミック点灯なので、OCR0A = 249;にして、1msが良いです。すると125Hzです。
飛んで、スイッチ処理ですが、難しく組んでいますね。
最初は色々と試してみるのが良いです。私もチャタリング対策は色々試しました。
けれどもゲームで68msは時間の取り過ぎじゃないでしょうか。
で、メインとなるタイマー0ですけど、これをみると
アノードコモンのドットマトリクスじゃなくて、カソードコモンなのでしょうか?
(アノードコモンを推奨するようなことが書いてあったので。)
っと思ったら、繋ぎ方が違います。
行(ポートC,D)を1つ選択して、抵抗が付いている方(ポートB)をパラレルにします。
抵抗が8つ配線されている方をパラレルにするのはマストです。多分減点されます。
表示ですけど、言った事が理解されていないように思います。
ちょっと書いてみますけど、その前に上記の繋ぎ方とゲーム内容を確認して教えてください。
※説明しただけでは伝わらないように思います。
その他の回答はまだありません
今V36スカイライン後期250GTに乗ってて、走りには満足してるんですが、駆け抜ける歓びのBMWの走りはまた異質ですか?気になっていて人生で一度は体験したいと思うのですが、どうですかね? 走りの...
2024.11.11
ベストアンサー:V36の250GTで走りに満足されておられる。 後述されている他の車は、カテゴリーが広すぎるため勝手ながら割愛し、BMWに絞ってお答えします。 BMWは「駆け抜ける歓び」・・・ たしかに、広告はその車の持つ特性をわかりやすくイメージできることを主眼に置いていることはご承知と思います。その上で、BMWに幻想を持つことは避けた方が良いと思われます。 BMWも幅広い人が乗る量産車です。例えば、...
車のリセールバリューについて教えて下さい。 中古車なんですが、ちょうど250万以内位で5年から10年ローンで考えてます。 1 レクサスRC350をディーラーで250万で買う 2ベンツW212後期...
2024.10.20
ベストアンサー:・条件 5年後 10万キロで売る。 1 レクサスRC350をディーラーで250万で買う 100-120万 2ベンツW212後期E400クーペを250で買う 60-80万 3ジャガーXFを150万で買う 30-40万 4BMW6シリグランクーペを150で買う 30-40万 維持費はレクサス以外はやばいですかね? そうです。 維持費だけで年50万みとけばいいですよ。 普通車なら30万く...
車は悩んでる時が一番楽しいですかね? 中古車で、250万MAXならなら皆さん何買いますか? 自分は今のところ レクサスRC 日産51フーガ後期 ベンツw212後期 BMW640iグランクーペ ホ...
2024.10.7
申込み最短3時間後に最大20社から
愛車の査定結果をWebでお知らせ!
申込み最短3時間後に最大20社から
愛車の査定結果をWebでお知らせ!
※ 掲載しているすべての情報について保証をいたしかねます。新車価格は発売時の価格のため、掲載価格と実際の価格が異なる場合があります。詳細は、メーカーまたは取扱販売店にてお問い合わせください。
●カストロール XF-08 エンジンOIL って不評ですけど カストロール XF-08 5W40 の高級OILと言う事で、日本全国車に興味ない人でもデザインは見かけたことのある商品で特売も良く見...
2012.11.14
ジャガーXFは故障しますか? MC後のXF3.0に試乗し、そのデサイン・内装の質・乗り心地・ステアリングの素直さ・車体の強さなどに感心しました。BMW5・A6と迷っています。 エンジンのアイドリ...
2012.3.23
ミニカー登録で公道を走るATV(バギー)の購入についての質問です。 皆様、どうもこんにちは。 毎度ご観覧ありがとうございます。 さて、自分は近いうちに自動車とは別に趣味に使うクルマといいますか...
2011.7.27
昨日、オイル交換でカストロールXF-08を入れました。 その直後エンジンからカタカタカタと言う音がとまりません。 交換前は日産のオイルを入れてました。
2010.8.7
今時30セルシオなんてオンボロに乗りたがる奴がなぜ一定数いるんですか? 30なんてもう18年落ちでとっくにレクサスに移行して生産中止されており、資産価値も希少性も0で車のイメージも悪く、R32G...
2023.10.1
車のリセールバリューについて教えて下さい。 中古車なんですが、ちょうど250万以内位で5年から10年ローンで考えてます。 1 レクサスRC350をディーラーで250万で買う 2ベンツW212後期...
2024.10.20
車は悩んでる時が一番楽しいですかね? 中古車で、250万MAXならなら皆さん何買いますか? 自分は今のところ レクサスRC 日産51フーガ後期 ベンツw212後期 BMW640iグランクーペ ホ...
2024.10.7
ベンツ、ポルシェ、アウディなどの外車に乗っている方に質問です。 自動車保険はどこに入っていますか? 車両保険はつけていますか? また、よろしければ保険料はどのくらい払っているのかも教えていただけ...
2022.5.17
申込み最短3時間後に最大20社から
愛車の査定結果をWebでお知らせ!
申込み最短3時間後に最大20社から
愛車の査定結果をWebでお知らせ!