タクトスイッチを使って点滅速度を変えたいのですが、SW1を押してる間は徐々に速度アップ、SW2を押してる間は徐々に速度ダウンというようにしたくて、delayの数値をif文を使って、SWを押してる間数値を上げ下げするやり方で作ったのですがこれだと点滅間隔が長い時はSWを押してもなかなか間隔が短くならず、点滅間隔が短くなるにつれてあっという間に間隔が短くなってしまいます。理由はわかってますが…。
何かイイ方法がありましたらアドバイスお願いします。CCSCコンパイラでやってます。

このQ&Aに関連する最新のQ&A

とは SW」に関するQ&A: SWとは?

A 回答 (3件)

if文を実行する間隔を一定するように 点滅速度とは同期しない様にすればできるはずです


(想像ですが、点灯に同期してスイッチを読んでいるのでしょう)

論理的に構築していないための弊害です(質問者は気づいているようですが)
論理の裏動作(AでBならばこうなるはずで設計しても、AでなくてBでない場合等に設計と異なる動作をしてしまう)
    • good
    • 0

まず、



> 理由はわかってますが…。

最低限、「理由」の説明はしましょう。

その上で、

・その「理由」と、実際に書かれたソースはつじつまが合っているのか?
・では、点滅間隔の変化をどのようにしたら、自然な変化に感じるのか?

くらいは質問の中にあって、

・そこで、そういう(自然な変化に感じるような)ソースの書き方は何か工夫がないでしょうか?

という流れなら、いい回答があるかもしれません。

そもそも、ソースが間違っているという可能性もあるし、ソースは意図したとおりだけど、それだと、人間の感覚として不自然ということもあるし。もっと言えば、ディレイに使っている変数のサイズによっては、どうあがいても、自然な変化は出せないかもしれないし。
    • good
    • 0

…この質問で何かしら有効な答えが得られると思います?

    • good
    • 0
この回答へのお礼

質問の内容がわからないって事ですか?

お礼日時:2011/04/19 08:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qいいわけ 理由

ゼミに合宿があるのですが、行きたくありません。
先生は半ば強制的に参加させてます。金額が1万をこえます。
予定がある人は先週聞かれたので、その予定があることを忘れていたことにしようと思ってます。

どんな言い訳、理由がいいとおもいますか??

Aベストアンサー

実は経験者です。私も以前予定が被ってしまって、どうしてもゼミ合宿に行きたくないときに、親戚の法事があることにして休んでしまいました。しかも、親に手紙まで書いてもらうという徹底ぶり。

先生は意外とあっさり許してくれましたよ。

でも、気をつけて欲しいのはその後、ゼミの友達と何となく疎遠になってしまい、そのゼミの友達と遊ぶようなことはなくなってしまいました。
あと、結構後味が悪いです。

QAKI-h8 3069f C言語 HEW マイコン DIPスイッチで LED ON_OFF プログラム 「組込みI/O制御演習」

こんにちは。

標記開発環境でマイコンを制御しています。

下記ソースでDIPスイッチのONOFFでLEDを点灯させたいのですが
うまくいきません。

多分
P4DR.BIT.B0 =~P5DR.BIT.B0;
の部分の修正が必要かと思うのですが。

どなたかご存知の方よろしくお願いします。
//------------------
#include "iodefine.h"


void main(void);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif

void main(void)
{
P5DDR = 0;
P5PCR.BYTE = 0xff;
P4DDR = 0xff;

while(1)
{
P4DR.BIT.B0 =~P5DR.BIT.B0;
}

}

#ifdef __cplusplus
void abort(void)
{

}
#endif

こんにちは。

標記開発環境でマイコンを制御しています。

下記ソースでDIPスイッチのONOFFでLEDを点灯させたいのですが
うまくいきません。

多分
P4DR.BIT.B0 =~P5DR.BIT.B0;
の部分の修正が必要かと思うのですが。

どなたかご存知の方よろしくお願いします。
//------------------
#include "iodefine.h"


void main(void);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif

void main(void)
{
P5DDR = 0;
P5PCR.BYTE = 0xff;
...続きを読む

Aベストアンサー

ご想像とおり、確かにちがっているような・・・

>>P4DR.BIT.B0 =~P5DR.BIT.B0;
ですが、
私が所持しているAKI-3069fボードでは、
赤LEDを制御する場合、
P4DR.BIT.B6 = !P5DR.BIT.B0;

緑LEDを制御する場合、
P4DR.BIT.B7 = !P5DR.BIT.B0;

だと思います。

Q休む時のいいわけ

来月あるイベントに行くのですが、開始時間は午後6時、仕事終了も午後6時、仕事場から会場へは1時間半かかります。

うちの会社はシフト休制なので、正当な理由があれば前月中に申請してその日を休みにしてもらい、他の日に代わりに出社…という形にできるそうです。
具合の悪いフリをして早退とかそういうことはしたくない(できない)ので、今月中に申請して前もって休みをもらって行こうと思っています。

そこで、「休む理由」なのですが、正直にイベントだなんて言えないので、何か使えそうないいわけを教えてほしいんです。
友人の結婚式が一番使えそうですが、6月に本当に友人の結婚式で休みを取る予定があるので使えないんです。。。

やっぱりお墓参りでしょうか?

良い案を教えてくださいm(_ _)m

Aベストアンサー

fanmail89さん、こんにちは。

休むときって、口実を考えないといけないので、辛いですよね~。

さて、結婚式は使えないということですよね。
お墓参りは、この時期、ちょっと無理がありそう。
親せきの不幸は、前もっては分からないので、
これはぎりぎりになって理由がみつからなかったときにとっておいてください。

1ヶ月前から申請できそうな理由としては・・・
・その日は、母親(か誰か家族)が病院に行く日で、付き添わなければならない。
・親せきの法事
・大学の恩師に手伝って欲しいといわれたことがある。
・家の工事をするのだが、あいにくその日は自分しか都合がつけられない。

くらいしか、思いつかないですね・・・
病院の付き添いか、法事ということにするのが
一番いいのではないでしょうか。
ご参考になればいいのですが。

Q音程を維持したまま再生速度を変えるには

VC2005を使っている初心者です。
NavePlayerのように音程を維持したまま再生速度を変える動画プレーヤーを作りたいのですがどうすればよいでしょうか。

Aベストアンサー

その前に、可変速度で再生する動画プレーヤーは作成できてますか?
それ自体が初心者には難しいと思いますが。

原理的には、音程(ピッチ)を変えずに音声再生するには、高速フーリエ変換(FFT)で周波数成分に分解する必要があると思います。
http://ja.wikipedia.org/wiki/%E9%AB%98%E9%80%9F%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B
求められた周波数成分をFFT時のサンプリング時間と違うサンプリング時間で逆フーリエ変換して再生すれば音程を変えずに再生速度は変えられるはずです。
単純にやるとつなぎ目がノイジーな音になりそうなので、つなぎ目を滑らかにするデジタルフィルターのプログラムも必要そうです。

私も詳しい分野じゃないので、参考程度と言うことで。
高速フーリエ変換は検索すれば、沢山探索見つかりますよ!

Q夜遅くなるときのいいわけ

えーと、今度の土曜日デートすることになりました(^。^)。
せっかくのデートだし少し遅くまで一緒にいたいんですけど、うちは男女交際に厳しい家なので、親への言い訳をどうしようかと考えています。みなさんこんなときにはどういう理由をつけてましたか?いずれ親にも言うつもりなんですけど、もう少しだけ内緒にしておきたいんです。
よろしくお願いします。

Aベストアンサー

私の場合は夜、あんまり遅くなるくらいならスパ~ンと「友人の家に行く」と泊まってしまいました。ただもうそれは20歳前後の学生の時や社会人になってからの話ですのでもしama65さんが高校生以下ということでしたら参考にしないでくださいね。

その日のうちにということでしたらやっぱり「同窓会」とか「引っ越していってしまった同姓の友人が久しぶりに来るからゆっくり話したい」と特別な友人の集まりを主張してみては?

ただ彼氏でしたらこれからも週末とか頻繁に会ったりするんですよね?毎回では言い訳が立ちませんし彼の信用が落ちてしまいますから程ほどにね。ずっと一緒にいたいけど限られた時間しか合えない・・なんてちょっと悲劇のヒロインっぽい要素(大げさかな?)は二人が付き合っていく上でよい緊張感になりますよ。

親に内緒で彼と会う・・30代半ばの主婦にははるか昔を思い出してドキドキしてしまいます。でも多少の門限破りは良い緊張感になりますが節度と言うものは良い関係の男女交際には必要だと思います。自分の行動が彼の人間性まで表すことになってしまうと言う事を忘れないでくださいね。

私の場合は夜、あんまり遅くなるくらいならスパ~ンと「友人の家に行く」と泊まってしまいました。ただもうそれは20歳前後の学生の時や社会人になってからの話ですのでもしama65さんが高校生以下ということでしたら参考にしないでくださいね。

その日のうちにということでしたらやっぱり「同窓会」とか「引っ越していってしまった同姓の友人が久しぶりに来るからゆっくり話したい」と特別な友人の集まりを主張してみては?

ただ彼氏でしたらこれからも週末とか頻繁に会ったりするんですよね?毎回では言い...続きを読む

QSW研究員はプログラマ?

電機メーカソフトウェア研究員です。優秀なソフトウェア研究員は優秀なプログラマでなければならないのでしょうか?それとも優秀なソフトウェア研究員はプログラムの苦手な数学者であってもよいのでしょうか?

Aベストアンサー

プログラム作成能力は当然持ってあると思います。

例えば暗号理論の新しいアルゴリズム、気象予報、リモートセンシングの新しいアルゴリズム、新しいパラメータの取り込み、重み付け等を考えたとして、その論文だけでプログラム、実証データが無いとすると、論文の価値が低く見られるのではと思われます。

従って必要であれば自分でプログラムを正しく作成し、長時間高速コンピュータを動かす必要があれば、プログラム高速化、マルチプロセッサの有効利用等についても一通り使いこなす必要があると思います。

勿論プログラムでの実証には関係ない場合は別です。
プログラム作成のサポートチームがある場合では、プログラムの主要な構成、処理アルゴリズムの選択、問題が発生した時には一緒になって追求する等の力が無いと協力が得られないことになるのではと思われます。
チームを纏めていくためにはコミュニケーションの能力とプログラムに対する理解等は必要と考えられます。

Q有休のいいわけ

4月中くらいに一日、金曜に有休をとりたいです。
不真面目な質問で申し訳ないですが、うちの会社は
有休取得に理由が必要で、かなりうるさく非常に詳細まで聞かれるため
以下の嘘は通用するかどうかみなさんにアドバイスいただきたいです。

私:新卒 19歳 両親とも実家は地元
6月に本当に母の叔父の法事があり、ちょうど土曜出勤の日にあたってしまったので有休をとることになります

嘘:土曜に遠方で法事があり前日から向かいたいため金曜も
お休みをもらいたい

心配なのが
・叔父の法事が遠方ではないことがバレないか
・2度法事があることになり、ひとつは本当に母の叔父で
 もう1日も聞かれてしまったら誰と答えておくのが差し支えないでしょうか?

不快に思う人いらっしゃいましたらすみません。
アドバイスいただけたらうれしいです。

Aベストアンサー

#5です。大変な職場ですね。中小企業の皆様は有休を取ることに何か罪悪感をもっておられます。ただあなた様のお礼文からこの上司はもう一つ法に触れています。パワハラスメントです。いわば二重のお苦しみを受けておられる分けです。これは別な問題ですが、有休に関しては労基署にご自分で電話なり文書なりで実態の説明をして相談を受けられる事です。その後にその上司に誰もいないところで、有休取得に付いて少し説明をして次回からは日にちはいいますが、理由は法律で不要ですの言いませんといって置いてください。そしてどうしてもというなら労基署に提訴するといっておいてください。今後出てくる問題としては時期変更権の行使がありますが、これは多忙であるとか人がいないだけでは行使できません。会社は業務は多忙が通常であり、人がいないのは会社の責任であるからです。有休をとる場合なるべく1週間前くらいに通告をしておけば時期変更権の行使で申請の却下は出来なくなります。いずれにしても勇気がいる事ですので、無理にはお薦めいたしませんが、折を見て労基署に相談だけはして置かれる事です。損にはなりません。

QメインフォームのSW_MINIMIZE

MDIで作成したメインフォームの操作画面があるのですが、簡易操作画面が必要となり、選択からどちらかの画面を表示するようにしたのですが、メインフォームも裏で動作している必要が生じたので簡易画面を表示する場合は、メインフォームを以下のようにし、

 CWnd *pWnd = AfxGetMainWnd();
 ::ShowWindow(pWnd->m_hWnd, SW_MINIMIZE);

簡易画面から選択画面へ戻る際は以下のようにしました。

 ShowWindow(SW_RESTORE);

が、簡易画面を2回表示した後、選択画面へ戻ろうとすると必ず以下のエラーが発生します。

>問題が発生したため、*****.exe を終了します。 ご不便をおかけして申し訳ありません。

情報が少なくて申し訳ありませんが、エラーを回避するための助言を頂ければ幸いです。

開発環境
OS:WindowsXp
言語:VC++6.0(MFC)

よろしくお願いします。

Aベストアンサー

デバッグしましょうよ。
おそらくCWnd::ShowWindow()内の
::IsWindow(m_hWnd);
でアサーションが出るんじゃないでしょうか。
ShowWindow(SW_RESTORE);
が呼ばれたとき選択画面は存在していますか?

Qモチベーションがあがらない。けどいいわけにはしたくない。

今晩は。
以前
http://oshiete1.goo.ne.jp/qa4049777.html
で質問させていただいて、「将来の進路なんて高校生に考えろというほうが無理。消去法でいけ。大学にいってからでもいい。」という結論に達し、受験勉強する気になってしてきたんですが、ここにきてまた疑問を感じました。「学部はどうすりゃいいんだ」と。

受験まであと4、5ヶ月で、周りもそわそわしだしているんですが、それって「このままじゃ落ちる」とか「こんな成績じゃ志望大学いけない」とかそういった感情の表れですよね。周りがカリカリ勉強してることに焦るというよりも、ある程度しっかりとした目標がありそれに向かっているということに焦ってしまいます。

消去法で志望学部は一応決まったのですが、「なんでこの学部にしたの?」と聞かれれば「なんとなく」とかしか答えられませんし、そんなんだから「絶対受かってやる」という気持ちもなくいまいちモチベーションがあがりません。
よくモチベーションを上げるために「机の隅に行きたい大学のパンフを置け」なんていいますが、同じ理由でモチベーションなんて上がりません。

それにこんな「なんとなく」で決めた大学、学部に仮に合格して入れたとしても、そこから志気をあげて大学生活を送れるのかと不安になります。途中で後悔したりしないかとか。

嫌いな科目や、苦手な科目を勉強する覚悟もできていますし、現に今やっています。ただ何せモチベーションがないのは辛いです。授業中ふと「何でこんなに勉強してるんやろ」といった無限ループにはまりかけることもあります。

そこで質問なんですが
(1)「なんとなく」で決めた学部で実際に入って後悔はありませんでしたか。またそこからどうしました?

(2)モチベーションはどうしたらいいのでしょうか。

その他のアドバイスなどもお願いします。

(2、3週間は締め切りませんので・・・)

今晩は。
以前
http://oshiete1.goo.ne.jp/qa4049777.html
で質問させていただいて、「将来の進路なんて高校生に考えろというほうが無理。消去法でいけ。大学にいってからでもいい。」という結論に達し、受験勉強する気になってしてきたんですが、ここにきてまた疑問を感じました。「学部はどうすりゃいいんだ」と。

受験まであと4、5ヶ月で、周りもそわそわしだしているんですが、それって「このままじゃ落ちる」とか「こんな成績じゃ志望大学いけない」とかそういった感情の表れですよね。周りがカリカ...続きを読む

Aベストアンサー

モチベーションが上がらないときにどれだけのことができるのか、というのも十分その人物の地力を表すことだと思います。

何となくで入ろうが、これだと思って入ろうが、後悔する人は後悔します。
後悔は先に立ちません。
後悔も人生のうち、勉強のうちです。
そこからどうするかが問題です。

さて、あなたがxx学部に入りました。でもやめよう、xxxx学部に行こう、としたときに何が問題となるでしょう?
学力です。

東大生にガリ勉はそんなにいないかも知れません。
勉強していることが普通の奴は多いと思いますが。
普通のことをするのにモチベーションも糞もない。
そんな印象を受けることが多いです。
モチベーションをもって物事に取り組むのは重要なことだと思います。
でも、モチベーションが無くても物事をやっていけるのもそれはそれで重要なことだと思います。

モチベーションが無くても高いレベルで物事をやっていける奴なら、こと受験に関して心配は無用でしょう。
モチベーションがあろうが無かろうが勉強しない奴は、だいたいろくな所に受かりません。
モチベーションが無くて嫌々勉強をしている奴は、頑張ってMARCH関関同立であることが多いと思っています。(地頭にも依ります)
その程度の奴でも、もし正しいモチベーションを持てれば、難関大学に行けます。

あるいは、
グダグダと勉強を続けているというのは、例えて言うなら無動力のグライダーです。
もともと高いレベルにあれば遠くまで行けるし、元のレベルが低ければすぐに着地でしょう。
正しいモチベーションをもって勉強できる人は、動力付きの飛行機です。プロペラかジェットかロケットかはそいつ次第。
飯喰ってりゃぁどこまででも行けそうです。

モチベーションが上がらないときにどれだけのことができるのか、というのも十分その人物の地力を表すことだと思います。

何となくで入ろうが、これだと思って入ろうが、後悔する人は後悔します。
後悔は先に立ちません。
後悔も人生のうち、勉強のうちです。
そこからどうするかが問題です。

さて、あなたがxx学部に入りました。でもやめよう、xxxx学部に行こう、としたときに何が問題となるでしょう?
学力です。

東大生にガリ勉はそんなにいないかも知れません。
勉強していることが普通の奴は多...続きを読む

QSW入力のプログラムについて

SW入力のプログラムについて

プログラミング初心者です。
下記のタイマー割り込みによるSW入力のプログラムで疑問ヶ所が1点あります。
添付画像の緑色のヶ所を『VolUpSw=0;』としないで、『VolUpSw=1;』としていることに何か意図があるのでしょうか?

ご教授下さい。
よろしくお願い致します。

タイマー割り込み
{
    ・・・・

    if(!(PIND&(1<<SW_PORT_VOLUP)))
    {
        if(++VolUpSw==0)
            VolUpSw=255;
        if(VolUpSw>=20)
        {
            Volume-=8;
            if(Volume>=0xF8)
                Volume = 0x00;
            VolUpSw=1; ←この部分
        }
        SwitchFlag|=(1<<SW_VOLUP);
    }
    else
    {
        VolUpSw=0;
    }

    ・・・・
}

SW入力のプログラムについて

プログラミング初心者です。
下記のタイマー割り込みによるSW入力のプログラムで疑問ヶ所が1点あります。
添付画像の緑色のヶ所を『VolUpSw=0;』としないで、『VolUpSw=1;』としていることに何か意図があるのでしょうか?

ご教授下さい。
よろしくお願い致します。

タイマー割り込み
{
    ・・・・

    if(!(PIND&(1<<SW_PORT_VOLUP)))
    {
        if(++VolUpSw==0)
            VolUpSw=255;
        if(VolUpSw>=20)
    ...続きを読む

Aベストアンサー

コンパイラがちゃんとCの規格に沿っていれば、静的領域の変数は実行時に暗黙的に0初期化されます。
どちらかというと、多重割込みを許した場合に連続で割込みが入ってきてもちゃんと動作する、というのを意図しているような気がしますねぇ。


人気Q&Aランキング

おすすめ情報