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

Cは、命令型(手続き型)システム実装言語です。比較的単純なコンパイラを使用してコンパイルし、メモリへの低レベルのアクセスを提供し、機械語命令に効率的にマップする言語構造を提供し、最小限のランタイムサポートを必要とするように設計されました。したがって、Cは以前はアセンブリ言語でコーディングされていた多くのアプリケーションに役立ちました。http://en.wikipedia.org/wiki/C_(programming_language)から

7
Arduinoシリアルプリントはプログラムの動作を望ましくなく変更します
ヘッダーで宣言されているループカウンターを使用しています。 int loop_counter = 0; 私はこのカウンターを使用して、時々イベントをトリガーします。私はこれと同じタイプの動作にモジュロを使用していましたが、操作を簡単にするために単純化しました(それでも同じ動作になります) void loop() { if(loop_counter > 100) loop_counter = 0; else loop_counter++; //Serial.println("hey"); if(loop_counter == 0) { //do_something_important(); } } (この例では、この動作はばかげているので、この例ではSerialコメントを外して)通信を試みるまで、すべてが順調です。//Serial.println("hey");"hey" これにより、コードloop_counterのdo_something_important();セクションがトリガーされることはありません。と宣言しloop_counterてみましたがvolatile、何も変わりませんでした。私が試したSerial.printINGのloop_counter、そして私も(それがループをフリーズします)異常な動作を得ていました。 Serial.println("hey");シリアルモニターでたくさんの「ねえ」を取得するという意味で機能します(つまり、すぐに100を超える「ねえ」、コードの他のセクションがトリガーする必要がある反復の数)。 の使用を引き起こしている可能性のあるものは何ですか?Serial(私が知る限り)loop_counter正しく関連付けられていないデータが関連付けられていませんか? 編集:問題を引き起こしてしまったメインファイルの一部を次に示します(まあ、それに最も貢献しています(メモリの使用が多すぎます))。 void display_state() { int i,j,index=0; short alive[256][2]; for(i=0;i<num_rows;i++) { for(j=0;j<num_cols;j++) { if(led_matrix[i][j]==1) { alive[index][0]=i; alive[index][1]=j; index++; } } } alive[index][0]=NULL; …

2
標準テキストLCDメニューシステム
テキストLCD用のCの単純なメニューシステムのパターンはありますか?単純なテキストLCDメニューを処理するために、コードを何度も書き換えていることに気づきました。 ほとんどのシステムにはメインメニューといくつかのサブメニューがあり、選択すると最小値と最大値の範囲内でパラメーターを設定できます。 理想的には、このメニューシステムは、Enter、Cancel、Up、Downなどの4つのシンプルなキーでナビゲートできます。 私のアプリケーションでは、2行x 16文字のテキストLCDを使用していますが、理想的なソリューションはどのNxMディスプレイにも適用できるはずです。
10 lcd  c 

4
STM32:タイマー割り込みはすぐに機能します
これは、STM32F429での私のプロジェクトのタイマーのコードです。 //timer initialization void timerInit() { uwPrescalerValue2 = (uint32_t) ((SystemCoreClock / 2) / 100000) - 1; RS485Timer.Instance = TIM5; RS485Timer.Init.Period = 67400000; // high value to notice interrupt even without debugging RS485Timer.Init.Prescaler = 400000; RS485Timer.Init.ClockDivision = 0; RS485Timer.Init.CounterMode = TIM_COUNTERMODE_UP; HAL_TIM_Base_Init(&RS485Timer); } void timerReset() { HAL_TIM_Base_Stop_IT(&RS485Timer); HAL_TIM_Base_DeInit(&RS485Timer); HAL_TIM_Base_Init(&RS485Timer); HAL_TIM_Base_Start_IT(&RS485Timer); printf("%d …

5
組み込みCコードの信頼性を向上させるために使用できるツールまたは標準は何ですか?
私は通常、PICをCでプログラムします。通常、スイッチモードコンバーター用です。コードの信頼性を向上させるために使用できるMISRA Cなどのさまざまな静的分析ツールや標準について聞いたことがあります。もっと知りたいのですが。私のコンテキストに適した標準またはツールは何ですか?

2
組み込みアプリケーション用の固定小数点三角法
組み込みアプリケーションで回転(およびその他の)変換を行う必要があります。これには、sin()、cos()およびtan()関数が必要です。私はあなたがルックアップテーブルを使用できることを知っています、そしてそれは私が自分の研究をすることを見つけることができた唯一の解決策ですが、そこに良い固定小数点トリガーライブラリがありますか? アプリケーションにcortex M3を使用することを考えているので、アプリケーションをすばらしく保つために、できるだけ浮動小数点から離れたいと思います。
9 c  embedded  arm 

1
合成されたROMコアを使用した単純なテストベンチのシミュレーション
私はFPGAの世界にまったく新しいので、4ビットの7セグメントデコーダーという非常に単純なプロジェクトから始めようと思いました。私が純粋にVHDLで書いた最初のバージョン(それは基本的に単一の組み合わせselectであり、クロックは必要ありません)は機能しているようですが、ザイリンクスISEの「IPコア」の要素を試してみたいと思います。 今のところ、「ISE Project Explorer」GUIを使用しており、ROMコアを使用して新しいプロジェクトを作成しました。生成されるVHDLコードは次のとおりです。 LIBRARY ieee; USE ieee.std_logic_1164.ALL; -- synthesis translate_off LIBRARY XilinxCoreLib; -- synthesis translate_on ENTITY SSROM IS PORT ( clka : IN STD_LOGIC; addra : IN STD_LOGIC_VECTOR(3 DOWNTO 0); douta : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END SSROM; ARCHITECTURE SSROM_a OF SSROM IS -- synthesis translate_off COMPONENT wrapped_SSROM …

3
別のタブ/ヘッダーファイルでSerial.printを呼び出す
Arduino 0022でプログラムを書いています。 呼び出しSerial.printlnはメインのスケッチコードでは問題なく機能しますMenu.hが、別のタブにあるヘッダーファイル " "で使用しようとすると、エラーが発生します。 AppController.cpp:2からインクルードされたファイル: Menu.h:コンストラクター 'Menu :: Menu()': Menu.h:15:エラー: 'Serial'はこのスコープで宣言されていません Serial.printlnスケッチコード以外で使用するにはどうすればよいですか?
9 arduino  c 

2
UARTへの可変文字の印刷が機能せず、定数が正常に機能する
PIC18F27K40マイクロコントローラーのXC8でかなり奇妙な問題があります。PIC16F1778では動作します。私は定義しました: void uart_putch(unsigned char byte) { while (!PIR3bits.TX1IF); TX1REG = byte; } とき、私の中でmainループ、私が呼んでuart_putch('a');、これはうまく動作します。ただし、を定義const char c = 'a';して呼び出しuart_putch(c);ても機能しません。それは何かではなく、何かを印刷しますa-私はそれらが0x00文字であると私は思いますhexdump -x /dev/ttyUSB0。これは私のコンピュータのシリアルポートの問題ではありません。私はスコープで見て、信号が異なります(左の作品、右の作品ではありません)。 コードは簡単です: void main(void) { init(); // Sets up ports and UART control registers while (1) { uart_putch('a'); // or c } } どちらも機能しないのは、関連があると思われる文字列関数(puts、printfなど)のいずれかを使用しているため、この質問では、文字を使用して最小限の作業例を作成しました。 変数を使用したときに生成されるアセンブリには、次のものが含まれますc。 _c: db low(061h) global __end_of_c _main: ; …

4
GCCコンパイラが一部のコードを省略しているのはなぜですか?
GCCコンパイラが近隣のまったく同じコードを保持しながら、なぜコードの一部を切り取るのか理解できません。 Cコード: #define setb_SYNCO do{(PORTA|= (1<<0));} while(0); ISR(INT0_vect){ unsigned char i; i = 10; while(i>0)i--; // first pause - omitted setb_SYNCO; setb_GATE; i=30; clrb_SYNCO; while(i>0)i--; // second pause - preserved clrb_GATE; } LSSの対応する部分(コンパイラーによって作成されたアセンブラーファイル): ISR(INT0_vect){ a4: 1f 92 push r1 a6: 0f 92 push r0 a8: 0f b6 in r0, 0x3f …
9 avr  c  avr-gcc  optimization  gcc 

5
ATmega32(ATmega AVRシリーズ)を搭載した組み込みCから始めます
私はATmega32ボードを敷設していて、マイクロコントローラから始めるのが最適だと思います。組み込みCでバブリングをしたことがありますが(このボードを入手したとき)、フローがいくつかの理由で停止しました。今私は2つの質問があります: AVRシリーズのCで始めるのに最適な無料のリソースは何ですか。私はAVR-GCCを知っていますが、私を始めるためのチュートリアルや無料の本を探していました。 最初にCにジャンプするか、最初にASMを実行する必要がありますか?周りにはasmの本がたくさんあります。それで、より良いオプションは何ですか? インターネットを検索しながら、私はここでATmega32用のArduinoのブートローダを見つけhttp://retrointerfacing.com/?p=30が、問題は、私はヒューズビットおよびすべてと、いくつかの工夫を行うことがためらっています。そうしても安全ですか?
9 avr  atmega  books  c 

2
PIC12F675 GP4が機能しない
プロジェクトにPIC12F675を使用していますが、1つの点を除いてすべて正常に動作します。GP4はデジタルIOとして機能しません。設定とコードをよく見てきましたが、何も見つかりませんでした。 構成: #pragma config FOSC = INTRCCLK #pragma config WDTE = OFF #pragma config PWRTE = OFF #pragma config MCLRE = OFF #pragma config BOREN = ON #pragma config CP = OFF #pragma config CPD = OFF コード: #include <xc.h> #include <math.h> #include "config.h" #define _XTAL_FREQ 4000000 void delay(unsigned int …
9 pic  c  embedded  programming  audio  oscillator  spark  dc-dc-converter  boost  charge-pump  eagle  analog  battery-charging  failure  humidity  hard-drive  power-supply  battery-charging  charger  solar-energy  solar-charge-controller  pcb  eagle  arduino  voltage  power-supply  usb  charger  power-delivery  resistors  led-strip  series  usb  bootloader  transceiver  digital-logic  integrated-circuit  ram  transistors  led  raspberry-pi  driver  altium  usb  transceiver  piezoelectricity  adc  psoc  arduino  analog  pwm  raspberry-pi  converter  transformer  switch-mode-power-supply  power-electronics  dc-dc-converter  phase-shift  analog  comparator  phototransistor  safety  grounding  current  circuit-protection  rcd  batteries  current  battery-operated  power-consumption  power-electronics  bridge-rectifier  full-bridge  ethernet  resistance  mosfet  ltspice  mosfet-driver  ftdi  synchronous  fifo  microcontroller  avr  atmega  atmega328p  verilog  error  modelsim  power-supply  solar-cell  usb-pd  i2c  uart 

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 ++を使用することは実際に可能ですか?これに関する将来の計画や進行中の開発はありますか?

2
XMEGAタイマーオーバーフロー割り込みフラグを手動でクリアする必要がありますか?
ご存知かもしれませんが、Atmelはドライバーとサンプルを提供し、多かれ少なかれ定期的に更新されるソフトウェアフレームワーク(主にAtmel Studioの一部として)を提供します。 最近の更新では、割り込みコールバック関数のオーバーフロー割り込みフラグを手動でクリアすることが重要であることを明示的に指摘しています。 // * \subsection xmega_tc_qs_ovf_setup_code Example code // * // * Add a callback function that will be executed when the overflow interrupt // * trigger. // * \code static void my_callback(void) { // User code to execute when the overflow occurs here // THIS WAS ADDED IN …
8 c  atmel-studio  xmega 

4
組み込みCプログラムの存続期間中にコードを1回実行する
プログラムの存続期間中にコードスニペットを1回だけ実行するにはどうすればよいですか?何度もオフにしたりオンにしたりできます。コードスニペットを再度実行する唯一のオプションは、ボードを再度フラッシュすることです。 コードは、再実行したくない校正セクションです。EEPROMまたはフラッシュを使用する場合は、フラグをtrueまたはfalseに設定します。では、そのメモリ位置を最初に読み取ったとき、そのメモリ領域のランダムな値は何でしょうか? これを組み込みCに実装する最良の方法は何ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.