PIC18F und MCP3421

Gast #2273225
Lesenswert?
• ▲
▼
Leider verstehe ich das nicht :(
1
void main(void){
2
   
3
   osccon = 0x41;
4
   
5
   //first, configure ADC
6
      i2c_start();
7
     
8
      i2c_write(0xD0); //write mode
9

10
      //16bit, continuous conversion, PGA = 1V/V
11
      i2c_write(0x1C);
12
   
13
      i2c_stop();
14
   
15
   while(1){
16
      i2c_start();
17
      i2c_write(0xD1);//Read mode
18

19
     
20
      high_buffer = i2c_read();
21
   
22

23
      low_buffer = i2c_read();
24
      i2c_stop();
25
      high_buffer&=0x7F;
26
      adc_in = high_buffer;
27
      adc_in <<= 8;
28
      adc_in += low_buffer;   
29
      }
30
   }

Habe deiesen code irgendwo gefunden. Könnte der funktionieren??
Gast #2273332
Lesenswert?
• ▲
▼
Moin Obi,
ich nehm mir hier mal den Configurationsteil des MCP3421.
Aus dem Datenblatt des MCP3421 Abschnitt 5.2 und dort Register 5.1 sieht 
man die 8bit für die Konfiguration. Binär (0000.0000 bis 1111.1111), die 
Konfiguration geschieht hier über I2C. Zuerst startet man den I2C, dann 
sendet man die Daten und schließt danach die Verbindung.
Es werden 2 I2C-Write anweisungen übergeben, die Zahlen darin (0xD0  und 
0x1C sind Hexadezimalzahlen.
Um das Register 5.1 zu verstehen schreib ich dir die Zahlen mal als 
Hexadezimal, Dezimal und (wichtig für das Register) in Binärcode.

Obi Plal schrieb:
> //first, configure ADC
>       i2c_start();
>
>       i2c_write(0xD0); //write mode
>
>       //16bit, continuous conversion, PGA = 1V/V
>       i2c_write(0x1C);
>
>       i2c_stop();

0xD0 ->  208 -> 1101.0000
0x1C ->   28 -> 0001.1100

Wenn du nun mit den Binärzahlen und dem Register 5.1 des Datenblattes 
nicht verstehst was da passiert dann lese nochmal die bösen Kommentare 
oder wenn du noch zu jung bist geh weiter zur Schule und pass gut auf!

Gruß
Andi

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.