AVRマイコン総合スレ Part38©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>299
Hi-SpeedでデフォだったCypressのFX2も8bitCPU
まあ、CPUは介在させない使い方が主流だったかもだけど LGT8F328っていうクローンがあるらしいね 50円ぐらいと安いらしい >>305
普段作っているUSBデバイスの印象で変わると思う。
>>299もどうかと思うが、「馬鹿丸出し」は無用に行き過ぎ。 AtmelStudio6で文字の色を変えたいのですが、
たとえば、#include <avr/interrupt.h> の
avr interrupt h の部分だけ
黒から色を変えられない。他は変わります。
どこで変更するのでしょうか? AVRでUSBねぇ。
いろいろセンスないよ。AVRでUSBしてるおれすげーとか思ってんだろうけど。 他人のセンスを批判してなんか意味あるの?
他人のセンス批判して、俺ってスゲーとか思ってるんだろうけど 8-bitのAVRねぇ。
いろいろセンスないよ。8-bitのAVRしてるおれすげーとか思ってんだろうけど。 ↑↑おい
『お願いします、PICを使ってください』
って素直に言えば、考えてやるぞ AVRをアセンブラで組むとメッチャ楽しいぜ。
他のCPUに乗り換える気がしない。
このコアを設計した学生はエラいと思う。
強いてチェンジジするならARMかな。 やわらか禿げバンクのアームとかそれこそありえんわww
いつなんどき個人情報抜かれたりするかわかったもんじゃない >>317
そこまで心配ならコンピュータのない山里にでも引っ込んで土と暮らしたら? >>318
RISC はコンパイラの最適化が前提なのにな。 最適化も自分でやっちゃうんだろ。
僕が一番ARMをうまく使えるんだ! とでも思ってるのでは。 セガサターンはSH何たらだっけ
その頃だとまだやってたらしいよ〉RISCのコードを人手で最適化
PG死んだろうなーw AVR に飽きたら Xtensa だな。クロック数計算してソフトUSB作ってる連中も居るし。 既製品のないニッチなニーズを狙えばいいじゃん
俺はそれで小物を200個くらい作って売った 自作のプロダクトが販売できるレベルってすごいなぁ
俺は実用品と言っても自分用で、
ダイス型のタイマーを作った
上に向いた面で鳴る時間が決まるの
作った後に、似た内容の商品があることがわかったけど、
逆に素人の俺でもプロと同じような発想ができたと思って嬉しかった
作るって楽しいね ARMに手を出そうにもARM使わないと実現できないレベルの工作しないから結局使ってないな
AVRの3シリーズで十分すぎる
32ビット機を趣味で扱う人ってやっぱり画像とか扱うのかな >>329
いやいや
度胸試しだと思って一度そのタイマーをキチンとプリント基板起こして作って
売りに出してごらん。値段は原価割れしない程度にして
こんなもの売れるわけない、って思いそうなものが結構売れるから >>330
$5 「Raspberry Pi Zero」
$7 「Orange Pi Zero」
こんなんだからな
消費電力が気にならない用途なら、値段だけで選んでる人は多い
例え、送料がバカにならないとしても十分安い
価格に関して諸々の事情があるのは承知しているが
こういう値段で出されると、はっきり言って どの業者も厳しいよね
これを見てしまった後だと、 「Arduino」 なんか $1 程度が相当 と思えてくるよ 価格勝負だと中華製にはとても敵わないのでアイデアで勝負しないと。
たとえば、別業種になるが、オーブントースターの安い奴は2K〜3K円だが、
今、蒸気を出すバルミューダのトースターが2万ちょい円なのにバカ売れしている。
バーミキュラが今冬から販売する炊飯器も高価格だが売れると思う。
とは言ってもダイス型タイマーがどういう物かよく分らないけど、
ゼロから始めて商品化し販売するのは難易度が高いだろうなぁ。 Atmelの純正ライターはAVRISP mkIIだという認識だったんですが、
秋月で取り扱いが無くなって、調べたらAtmelストアにも在庫がありません。
これは一時的なことでしょうか?
純正のライターはどれになるんでしょう?
その辺の様子をどなたか教えていただけませんか。 mk2は販売終了ですよ。
現在の選択肢はAtmel-ICEですね。 >>333
個人的には、中華かどうかは別にしてシンプルにまとまった、結果的に安くなっちゃうオーブントースターの方が好きだな。
フードプロセッサより研いだ包丁で切り刻むのが楽しい。
そんな性格が災いしてか、ニーズがあるとわかっていても高付加価値商品に取り組む情熱が沸いてこない。ダメだな。
ダイス型タイマーって、たぶん6面体の各面に数字が書いてあって、
置いたときに上になっている数字のタイマーとして動作するものじゃなかったっけ。
叩いたり、トンと置いたりしたら、スタート、ストップ&リセットするようなのがあったと思う。 >>335
ありがとうございます。
確かに obsolete となっていました。
そうなると純正品にこだわると7000円の初期投資ですか…。
PICのライターの方が安いってことになっちゃいました。 >>332
まぁ Arduino もぱちもんなら かなり安いみたいだが。
UNO R3 もどき や Atmega32u4 のボードが送料込み $3 であるな。 ISRの中身って処理が長過ぎたら問題が発生したりしますか?
どうも割り込み発生でフリーズしてしまう
処理を減らすとフリーズしなくなるから、長すぎるのが問題だと思ってるんですが ISR内での処理は割り込み源の処理してフラグ立てるとかレジスタ読んでバッファに積んでおくとかぐらいにして
あとは通常の処理にやらせろ。
ISR内で処理してはいけない。 誤 ISR内で処理してはいけない
正 ISR内で問題解決しようとしてはいけない >>340
割り込みが許容時間内で実行されているかどうか、オシロで測定してみたら?
許容時間内であれば割り込み内でどんなに処理が増えても問題無い。(当たり前か)w >>340
関数によっては、その関数を実行中に、その関数がまた呼び出されたらまずいものもある。(リエントラント不可)
そういう関数をメインループと割り込み関数の両方で使うとヤバいです。
「処理を減らしたらフリーズしなくなった」とのことですが、減らしたコードの中に入っていた関数が原因ってことはないでしょうか。 割り込みルーチン内では再割り込みを禁止するように
設定すればそのままのプログラムでも動作可能ですが・・・
基本的には
ISR内ではコール文を使用しない、
(関数を使用するとコンパイラがコール文を
自動的に挿入することもある)
割り込み期間内に終了可能な処理を記述するほうがいいと思います 皆さんレスありがとうございます。
問題の処理の内容をメインループ内に移し、ISR内でフラグのみ管理して動作させたところ正常に動作を確認できました。
また>>345さんのリエントラントという用語は全く知りませんでした。
調べてみたところ、今回は関係なさそうでしたが、大変勉強になりました。
>>346さんのISR内でコール文を使用しないについてですが、ISR内で関数を呼ぶことは何か問題が起こるのですか?
今回の件は解決出来ましたが、なぜ解決できたのかがよく分かりません。
ISR内で関数を呼んでは行けないのだとすると今回の件はこれが原因だと思いますが。 思い当たることが多すぎて一概に言えないな。
関数内でcliされて割り込みに再入してしまうとか、
16bitレジスタアクセスの分断・テンポラリ破壊。
とりあえずISR内でのコール自体に罪はない。その先の処理で何をしてるかだ。 通常ルーチンと割込みで共有している変数の最適化抑制をしてるかってのもあるな。
デバッガ買いなよ。 >>348
割り込み内でのコール文だけど、自分で書いたものなら
自分で何とかできるが、システム関数では何をやっているか
自分で管理できないので何かあっても解決できないことがある
それと、割り込み処理で時間がかかっていたのでは
ほかの割り込みがかかっても処理できなくなり
何のために割り込みを使っているかわからない AVRのプログラミングで、どのくらい処理時間がかかっているのか、
逆にどれくらいまで処理時間がかかっても構わないのか、
というのはプログラム設計・管理の重要なポイントだよ。
自分で管理できないものは使わない方が良い。
>>348
「動いたからOK」で終らせると進歩しないので、
チャンと原因を究明しておいた方がいいと思うぜ。 >>351
レガシーなC言語ライブラリstring.hで定義の strtok関数が良い例だよな。
関数内にstatic char* ptr; を保持してるから、マルチスレッドや再帰で呼び直すと
期待した結果が得られず全てがパーになる事がある。 「動いたからOK」は典型的なクソPGだよねぇ
昔マトモなデバッガが無いときのデバッグ方法で要所要所にprintf()入れて変数の内容を監視していたんだけど、いざリリースの時にprintf()を削除したら動かなくなった
そのときの上司の命令がprintf()を残したまま納品しろと…。これが原因で私はプログラム業界に失望して会社を去った
こんな奴らが多いから日本のプログラマは3流が多いんだ
なんか愚痴ってスマンね >>354
プログラム業界にあまた存在する「上司」のうちのたった一人の発言でプログラム業界に失望するなんて。
プログラム業界にあまた存在する「上司」のうちのたった一人の発言で「こんな奴らが多いから」「3流が多い」と納得するなんて。
激情的ともいえるけれど、なにより論理的ではなかったね。
今もこのスレに書いているぐらいだし、業界かどうかは別にしてエンジニアリングとは関係が続いているようだけど。
小学校のとき、四、五人がシャープペンシルを持ってくるようになった。俺も他の子も鉛筆をちびるまで使っていた。
当時はシャープペンシルは子供が持つのには安くはなかった。
羨ましくて家に帰って「みんなシャープペンシル持ってるんだよ。ねえ買って」と言ったら、
父親曰く「俺の目を見て正直に言え。何人が持っている。クラスは何人だ」
ttp://www.meti.go.jp/committee/sankoushin/jouhoukeizai/jinzai/001_s02_00.pdf
によれば、2011年の組み込みソフトウェアのIT人材数は 推計で29,665人。(推定の割には細かいな)
俺自身が出会った数なんてせいぜい数十人。全体の傾向を推しはかるにはサンプル数が少ないよ…
ちなみに、父親の問いかけに俺は嘘をついて「30人ぐらいがシャープペンシルを持ってる。字が細くて綺麗で羨ましい」と言った。
そしたら父親は「他所は他所、ウチはウチだ。買わん」と。どっちみち買ってくれなかったw >>355
スマン。何を言いたいのかよく分からん
組み込み系SEが29,665人しか居ない状況を あまた と表現するには心もとない >>356
>>354の
>こんな奴らが「多い」から日本のプログラマは3流が「多い」んだ
この「多い」の定義、根拠ってなんだろな、って話です。
「こんな奴」や「3流プログラマ」の何人ぐらいに接して、そう考えるのに至ったのかな? と。
あまたいる、は業界に必要な人材数に対する相対的な表現ではないです。
「こんな奴が多い」「3流が多い」と判断するに足るサンプルを一個人が集めるのには十分「あまた」だと思うわけです。
たとえば100人ぐらいを対象にとったアンケートで、世界の傾向を語るのはナンセンスですよね。
あと資料では29,665人は「IT人材」の数字です。なにゆえ「SE」に変換されましたか?
>>354ですが、
>そのときの上司の命令がprintf()を残したまま納品しろと…。これが原因で私はプログラム業界に失望して会社を去った
ここ。普通なら(何が普通だw)「私はその上司に失望」じゃないですかね。業界に失望するところにスケールの大きさを感じました。 >>354
物に依るだろ。
一品物なら、残しておけば、問題起きた時に解析しやすいし。 給料が安く、奴隷状態なので三流のフリをしてるが正解。 納期直前だったんならその上司の判断も間違いとは言えないと思うわ
そんなので辞めてたら何回転職するんだよ。 納期直前かどうかなんて関係ないわ
printf()を入れた状態でテストしてンのならprintf()入れたままリリースするのが常識。
リリース直前でprintf()を抜くとか狂気の沙汰。それはもはや「テストされてないコード」
に過ぎない。お前はノーテストの成果物をリリースするのか?と。
ま、>>354は圧倒的にプログラマに向いてないので退職したのは正解だったと思うが んー。「テストのあとでprintf()を取り除こうとした」とは書いていないよね。
「リリースの時に」だから、開発担当から、テスト担当者に向けてのリリースかもしれないし。
マイコンでデバッグ用のprintf()が入ってるというと、
・どこかのTxDからシリアルでだらだらと、お客さんには見せたくないようなメッセージが出て行ってたり
・待機時間が少なくなって消費電力が増えるとか、
それなりに不都合があるかもしれないので、取り除いておきたい気持ちはわかるぞ。 碌にC言語での開発経験がないとか、GCCは64KB以上がまともに扱えない君ですか。 DBG_PRINT、DbgPrint があるコードをリリースコンパイルすると動かなくなるコードを書いたPGがいたとしよう。
誰が誰に対し失望するだろうか。 叩くときは徹底的に、ってのは子供のイジメと同じで良いことじゃないと思うんだ。 >>363
テストのプロセスの話ならその通りだが
技術的観点では、printf抜いただけで動かなくなるようなものを外に出しちゃいかんだろ そもそも、printf抜いたら動かなくなるコードってのも高度な技だなwww ごく単純なところだと、マイコンに繋がっているデバイスの応答時間待ちが
printf()のおかげで満たせていたとかだったり。 常識的に考えて、
「printfを入れて動いたものが、抜いたら動かなくなった」
と言う事を論理的に説明できないならその時点で、
printfを入れたプログラムが正しく動いているという事を信じられない。
よって、printfを入れたままでもリリースすべきではない。 大人気だな
そのプログラムを書いたのが>>354だったとしたら業界を去ったのは正解かも
知れないね そんなのは正解じゃないと思いたい。
大なり小なりみんな失敗しながら学んで大きくなるよ。
まあ他に自分の才能を活かせるものが見つかったなら去るのは正解だけど。
為末大さんも言ってるし。 printf引数上で副作用のある式や関数呼んでたりとかでしょ
C言語というかプログラムをよく判ってなかったんだよ 副作用があるならデバッグ用pirntf()つけてるとき、テストのときにその副作用が出てるな。
つまり逆。必要な処理をprintf()に書いてるか。
まぁこの程度は初心者の発想だわな。この手のバグはCの知識だけじゃ見つからんよw printf()の副作用をプログラムの方で対応してたりしたらまずいな。
上司は全てを理解した上で指示したのかも知れない。 printf()を抜いたら(ry
ってのが言葉通り「printf()の行頭に // を付けた」なのか、あるいは実際には
#define __DEBUG__ をコメントアウトしたなのか、前述の発言だけではなんとも
判断出来ないけど実際には DEBUG 定義を削ったら必要な処理まで削られた
とかじゃないのかね 誰でもわかりそうなミスを除けば、
メモリ管理にバグがあるケースが一番あり得そう
メモリアロケーションが変わってバグが出たり出なかったりする
その場合、今回のテストは通ってもいつか顕在化する
何にしてもそのまま放置した上司はアホ AVRを使ってる者としては、興味深いけど
$5 「Raspberry Pi Zero」、を見てしまった後だとなぁ
実際、 RetoroPie 入れるだけで 遥かにこれ以上の物ができてしまう >>384
できないだろ。携帯型だからバッテリーが持たない。
それに RPi Zero は $5 と考えてはイカン。1個づつしか買えないんだから、送料込みで考えるべき。 printf_P等のフォーマット指定でunsignedを含めたlong型が利用可能になった
avr-libcのバージョンっていくつからだっけか…
そこら辺は良くわからない… 最近のEEPROMって100万回書き換えが可能らしいけど検証した人いる?
1秒に1回書き換えるプログラムを作れば
100万回 ÷ 60秒 ÷ 60分 ÷ 24時間 = 11.6日
で所定の回数に到達するわけで
ここまで持つかどうか検証しようと思えば
できる範囲内だと思うんだが 「最近の」ではないが何年か前に仕事で要求されてテストしたことある
AVR じゃなく H8 のシステムで >>391
記憶できる期間が短くなる。
それも評価しないといかんが、100年とか保持できるものもあるぞ。 >記憶できる期間が短くなる。
その点はどうテストするの?
11.6日じゃ終わらんね。 >>391
100万回のチップの特定の4byteに値をincしつつ毎秒20回ほど書いて
約2カ月動作したあとベリファイエラーで停止
その後の確認で特定のアドレスで
・書いた直後は正しく読めることもある
・時間が経つとデタラメになる(読み出した値がいろいろ変わる)
という感じだった >>394
へー、本当にエラーになるんだ
なんか感動した オイオイ、AVRでlibcのprintfなんて使おうとしてんじゃねーよ
libc使うにしてもインラインアンサンブルレラのマクロぐらいだろ
memcpyすらlengthが16bit計算で効率悪いから8bitに直したりする世界だってのに AVRISP用の2×3コネクタってどこで入手できますか?
いくら探しても売っているところが見つかりません
まあピンヘッダを使えば十分といえば十分なんですが・・・。 >>397
マルツ他にはDigi-key Mouser RSなど DIPとフラットパッケージのものって消費電力とかも含めて性能同じと思ってよいのでしょうか? >>399
クロックとか消費電力は同じ
物によってはI/Oピン数が違う物がある ■ このスレッドは過去ログ倉庫に格納されています