タグ付けされた質問 「c++」

C ++はコンパイルされた汎用プログラミング言語であり、C言語にオブジェクト指向の機能やその他の拡張機能を追加します。C言語は主にそのスーパーセットです。組み込みおよびPCソフトウェア開発の両方で人気があります。

16
C ++は組み込みシステムに適していますか?
ここと他の場所でよくある質問。C ++は組み込みシステムに適していますか? マイクロコントローラー?RTOS?トースター?組み込みPC? OOPはマイクロコントローラーで役立ちますか? C ++はプログラマーをハードウェアから遠ざけすぎて効率的にしませんか? ArduinoのC ++(動的メモリ管理、テンプレート、例外なし)を「実際のC ++」と見なすべきですか? (うまくいけば、このwikiはこの潜在的な聖戦を封じ込める場所として役立つでしょう)

10
電子技術者向けのプログラミング言語
私は電子通信工学の学生です。大学に入る前は、プログラミングとコンピューターアプリケーションに興味がありました。私はWindowsアプリケーションの設計とそのテクニックの学習に集中していましたが、今では、これは私の分野では役に立たないと感じています...コンピュータサイエンスとソフトウェアの開発についてすべてを学ぶ必要はありません!(私はこれについて正しいですか?) VB .Net、C#、C ++を知っています。私は休日に十分な時間があるので、「電子工学の分野」でプログラムにより深く掘り下げたいです。それで、あなたは何を学び、または集中することをお勧めしますか? マイクロコントローラーやその他の集積回路のプログラミングにこれらの言語を使用したいです。C ++で十分ですか、それともCをマスターする必要がありますか?あなたの考えを教えてください。

5
I / Oピンの抽象化のためのC ++クラス
ハードウェアI / OポイントまたはピンのC ++抽象化を探しています。in_pin、out_pin、inout_pin、open_collector_pinなどのようなもの。 私はきっとこのような抽象化のセットを自分で思いつくことができるので、私は「ねえ、あなたはこのようにするかもしれない」タイプの答えを探しているのではなく、「これとこれで使用されているこのライブラリを見て、このプロジェクト」。 他の人がこれをどのように呼ぶのかわからないので、Googleは何も表示しませんでした。 私の目的は、そのようなポイントに基づいているが、そのようなポイントも提供するI / Oライブラリを構築することです。そのため、たとえば、HD44780 LCdをチップのIOピンまたはI2C(またはSPI)のいずれかに簡単に接続できますI / Oエクステンダー、またはLCDクラスを変更せずに、何らかの方法で制御できるその他のポイント。 私はこれが電子機器/ソフトウェアの端にあることを知っています、それがここに属さない場合は申し訳ありません。 @leon:配線それはソフトウェアの大きな袋です。詳しく見る必要があります。しかし、彼らは私が望むようにピンの抽象化を使用していないようです。たとえば、キーパッドの実装では digitalWrite(columnPins[c], LOW); // Activate the current column. これは、I / Oピンへの書き込み方法を知っている関数(digitalWrite)が1つあることを意味します。これにより、digitalWrite関数を書き換えずに、新しいタイプのI / Oピン(たとえば、MCP23017上にあるため、I2Cを介して書き込む必要がある)を追加できなくなります。 @Oli:Arduino IOの例をグーグルで検索しましたが、Wiringライブラリとほぼ同じアプローチを使用しているようです: int ledPin = 13; // LED connected to digital pin 13 void setup(){ pinMode(ledPin, OUTPUT); // sets the digital pin as output …
13 microcontroller  pins  c++  io 

2
回路図とソースコードのバージョン管理
私は、ハードウェア(Eagle回路図)とファームウェア(C ++ソースコード)の2つの部分を持つ電子デバイスを開発しています。ソースコードと回路図の両方の変更を追跡したいのですが、作業を整理する方法がわからない点がいくつかあります。 ソースコードには、間違いなくGitを使用します。しかし、実際にバイナリファイルである場合、回路図はバージョン管理する価値があります(新しいイーグルバージョンはいくつかのXML形式を使用しますが、人間が読むことはできません...)? ソースと回路図を1つのGitリポジトリに配置することをお勧めしますか?それは理にかなっていますが、一方で私のログにはソフトウェアとハ​​ードウェアの両方の変更が含まれます。また、ソフトウェアには複数のブランチを含めることができますが、おそらくハードウェアにはありません... ハードウェアリビジョンの対処方法 それらにタグを付けるか、別々のディレクトリに保存しますか? また、ハードウェアリビジョンとファームウェアバージョンの間にいくつかの依存関係がある可能性があります。それらに対処する方法? ベストプラクティスを教えてください。
12 eagle  hardware  c++ 

3
マイクロコントローラのスリープレース状態
次のコードを実行しているマイクロコントローラーがあるとします。 volatile bool has_flag = false; void interrupt(void) //called when an interrupt is received { clear_interrupt_flag(); //clear interrupt flag has_flag = true; //signal that we have an interrupt to process } int main() { while(1) { if(has_flag) //if we had an interrupt { has_flag = false; //clear the interrupt flag …

1
Arduinoと割り込み:ピン値を取得する高速な方法
私はArduino Unoを使用しており、私が見つけた説明1に従って、デジタルピン2、3、4、および5の割り込みで動作するようにすでに設定しています。 void setup() 割り込みを設定する次のコードが含まれています。 //Endable Interrupts for PCIE2 Arduino Pins (D0-7) PCICR |= (1<<PCIE2); //Setup pins 2,3,4,5 PCMSK2 |= (1<<PCINT18); PCMSK2 |= (1<<PCINT19); PCMSK2 |= (1<<PCINT20); PCMSK2 |= (1<<PCINT21); //Trigger Interrupt on rising edge MCUCR = (1<<ISC01) | (1<<ISC01); そして今、ISR(PCINT2_vect)関数はすべての割り込みでトリガーされます。それは魅力のように機能します。私の質問は、どのピンがトリガーされたかを知るための最良/最速の方法は何ですか? 私はで何かを発見した日時:ピン2、3にISR(PCINT2_vect)またはattachInterruptを使用することをお勧めしますか?、しかし私はコードを理解しておらず、そのままでは機能しません。しかし、それは印象的に見えます... 解決策は何ですか? [2] http://arduino.cc/forum/index.php/topic,72496.15.html#lastPost 編集: 現時点では、入力ピンレジスタからピンの状態を読み取っています。 if (PIND & …

6
組み込みCの観点からの静的キーワードの概念
static volatile unsigned char PORTB @ 0x06; これは、PICマイクロコントローラーヘッダーファイルのコード行です。@オペレータは、アドレスの内部PORTB値を格納するために使用される0x06PORTBを表すPICコントローラ内部のレジスタです。この時点までに、私は明確な考えを持っています。 この行は、ヘッダーファイル(.h)内でグローバル変数として宣言されています。したがって、私がC言語について知ったことから、「静的グローバル変数」は他のファイルからは見えません-または、単純に、静的グローバル変数/関数は現在のファイルの外では使用できません。 次に、このキーワードをPORTBメインのソースファイルや手動で作成した他の多くのヘッダーファイルに表示するにはどうすればよいですか? メインのソースファイルでは、ヘッダーファイルのみを追加しました#include pic.h。これは私の質問と関係がありますか?

5
将来、PICマイクロコントローラー用のコードをC ++で作成することは可能でしょうか?
PICのコーディングにC ++を使用することは可能でしょうか?C ++の使用を妨げるハードウェアの制限はありますか?Cの代わりにC ++を使用すると、生成された.hexファイルのサイズとプログラムの実行時間がどれだけ増加しますか?現在のPICにC ++を使用することは実際に可能ですか?これに関する将来の計画や進行中の開発はありますか?


1
ループが離れて最適化されている間
マイクロコントローラープログラムに次のコードがあります。 // Wait for ADC conversion to complete while ( ( ADCSRA && _BS( ADSC ) ) == _BS( ADSC ) ) {} ADCSRAは、アナログ変換が完了するとその値を変更するレジスタであり、ビットがクリアされるのを待ちたい場所です。このビットは、変換が完了したことを示します。 結果のアセンブリコードを見ると、ループ全体が1つの命令に置き換えられています。 in r24, 0x06 ; ADCSRA レジスタは読み込まれますが、その値はテストされていません!? プログラムを不必要に遅延させることなく、レジスターを再チェックし続けるようコンパイラーに指示するには、C ++コードをどのように変更する必要がありますか? 私はavr-gccツールチェーンを使用しています。 編集: 私は次のようにコードを変更しました(Thnx:lhballoti): while ( ( ADCSRA & _BS( ADSC ) ) == _BS( ADSC ) ) …

1
実行中にATmegaまたはATtinyデバイスの署名を読み取ることはできますか?
ATtinyまたはATmegaをプログラミングする間、avrdudeはデバイス署名を出力します、この例ではそれはATtinyです。 avrdude: Device signature = 0x1e910a C ++コード(avr-gcc)を使用して、実行中のデバイスでこの署名を読み取ることはできますか?ATmega1280については、それについて書く29.6.10の章がありますが、C ++でそれをコード化する方法に少し戸惑っています。 デバイスがデバイスIDを制御PCに送り返して、PCがそれを決定できるようにしたいと考えています。
8 arduino  atmega  linux  attiny  c++ 

1
割り込みハンドラとC ++を備えたKeil ARMコンパイラのバグ?
LPC1114用のKeil ARMコンパイラでの割り込みハンドラの記述に問題があります。C ++でプログラムを作成して--cppコンパイラオプションを指定すると、割り込みハンドラーからのすべてのコードが消え、無限ループに置き換えられます。私は自分の悩みを説明する簡単なプログラムを書きました。 #include "LPC11xx.h" // LPC11xx definitions #define SYSTICK_DELAY 120000 // for 10 ms systick @ 12MHz osc void SysTick_Handler(void) { __NOP(); } int main (void) { SystemInit(); // from system_LPC11xx.c SysTick_Config(SYSTICK_DELAY); // from core_cm0.h // Loop forever while (1) __NOP(); } --cppコンパイラオプションを使用してこのコードをコンパイルしようとすると、disasmで無限ループが発生します。 SysTick_Handler PROC EXPORT SysTick_Handler [WEAK] B …
8 c++  interrupts  keil 

1
Arduinoのライブラリを作成するときに知っておくべきことは何ですか?
現在の問題を超えて、「Arduinoのライブラリを作成するときに何を知っておくべきですか?」 まず、私がしていること: 私はEclipseをエディターとして使用し、C ++でコードを作成しています。ヘッダーファイルを含む簡単なArduinoアプリケーションを作成し、エラーに対処しています。 最初の問題:「ビルドクリーン」を実行するにはどうすればよいですか?ヘッダーファイルがキャッシュされたかのように、修正したと思われるエラーが表示されます。(はい、私は愚かなことをしている可能性が非常に高いです(編集:私はそうでした)が、ライブラリをクリーンアップする方法を知りたいのですが、オブジェクトファイルの場所がわかりません)。 第二に、どのような規則に注意する必要がありますか?私はArduinoを好きなだけ使用していません。C++でプログラミングするのはとても気持ちがいいですが、ライブラリの目的は、ユーザーにとって物事をシンプルに保つことです。関数名の規則はありますか?定数を作成していますか(グローバル名前空間が#definesで汚染されているようです)?等々。 最後に、他に知っておくべきことはありますか? 私はArduinoライブラリチュートリアルを見てきましたが、これは良いですが、それほど遠くはありません。また、システムにインストールされているライブラリのいくつかをのぞいてみました。
8 arduino  library  c++  c 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.