Forum: Mikrocontroller und Digitale Elektronik analogue signal digitalisieren


von Betro Xy (Gast)


Angehängte Dateien:

Lesenswert?

ich habe  gerade  eine  aufgabe:   einen analogue  signale ( 5....bis 0
v) mit  dem  mikrocontroller   SAB80537  von infinion   zu
digitaliseren  .. und ich  soll am ausgang   digitale  werte  als binaer
zahlen   über serielle  schnittstelle S 0  bekommen ..
ich  werde  mich  freuen  auf eure  hilfe
besten  danke

von Düsentrieb (Gast)


Lesenswert?

jauu, schön für dich.
hast offenbar gar keine frage dazu.

von Matthias (Gast)


Lesenswert?

...( 5....bis 0V)...

kann das Signal auch (0..5) V sein??

von Frank (Gast)


Lesenswert?

fein, nette Aufgabe und in wenigen Minuten erledigt. Da hast du noch 
genug Zeit dich in die Sonne zu legen!

von hafid (Gast)


Angehängte Dateien:

Lesenswert?

doch  hier  siehst  du  mein  c -programm  aber  e s funktionniert 
nichts
ich  sehe  gar  keine  digitalewerte ...
als  anhang  siehst  du meine  programm aber  ich  finde  nichts   den 
fehlern

von hafid (Gast)


Angehängte Dateien:

Lesenswert?

danke  trotzdem nett  von  dir  ..
hier  siehst  du mein  programm   aber  ich  sehe  als  ausgabe  gar 
keine  digitale  werte  ..
findest  du  mein  programm als   anhang..
ich  finde  nicht  den fehler
danke

von hafid (Gast)


Lesenswert?

/*---------------------------------------------------------------------- 
----------------------------------
digitalierung on einem sinus signal mit dem mikrocontroller  80c51537
name :

datum  :  31.05.2007



------------------------------------------------------------------------ 
-----------------------------------
Header,deklarationen,Konstanten,Prototypen..............
------------------------------------------------------------------------ 
---------------------------------*/




#include<reg517.h>
#include<stdio.h>

sfr S0RELL=0xAA;
sfr S0RELH=0xBA;
sfr ausgang=0xE8;
bit flag =0;


#define  QUARZ  12e6
#define  BAUD  9600
#define  ABTAST  5000      // Abtastung alle 5000 µs


#define  RELOAD  (256.5-(QUARZ/32.0/BAUD))

void init_io(void);

void main (void)
{
  init_io();
  printf("Hallo\n");
        ADM=  0x00;
  ADEX = 0;
  ADCON0 &= 0x80;
  ADCON1 = 0x00;               // kanal AN0  das heisst  bei mir  p7.0

  CRCL=((65535-ABTAST) & 0xFF);  //reloadwert ist  65035 (= 0xFE0B) für 
5 millisekunden zählzeit
  CRCH=((65535-ABTAST) >> 8);

  TF2=0;                      // Überlauf-flag vorsichthalber  löschen
  T2CON=0x11;                 //  reloadbetrieb  durch überlauf ,timer 2 
EIN

  EAL=1;                       //Interrupt hauptschalter  EIN
  ET2=1;                       //timer 2 interrupt

  while (1) {
    if (flag==1)
    {
      printf("%bu\n", P4);
      flag=0;
    }
  }

}

void init_io(void)                 // initialiserung der serille 
schnitstelle S1

{
  S0RELL=0xee ;               // baudrate 19200
  S0RELH=3;
  S0CON= 0x52;               // Mode 1
  PCON |= 0x80;             //SMOD =1
  BD=1;                   // Internbaudrate generator

}

void timer2(void) interrupt 5 {  // Interruptserviceroutine
  DAPR = 0;          // A-D-Wandler starten
  while(BSY)
    ;            // warten auf Wandlung komplett
  P4 = ADDAT;          // Wert an Port P4 ausgeben
  TF2=0;               // TF2-Bit löschen
  flag=1;
}

von Ich (Gast)


Lesenswert?

In deinem Quellcode steht

c printf("%bu\n", P4); /c

Ich kann mit dem "bu" nach dem Prozentzeichen nichts anfangen, aber ich 
befasse mich noch nicht so lange mit dem Programieren. Und zu was steht 
nach dem Komma eigentlich Port 4?


von hafid (Gast)


Lesenswert?

danke  nett  von dir  ..
also  ich habe  auch   keine  grosse  erfahrung mit  c  aber  ich 
bemühe mich ..
also bu  :  das  heisst  ausgabe  als  binaer  zahlen ..
und p4  ist  für  ausgabe  in port   4.0  oder  p4.1 oder  p4.2..etc....

von Ich (Gast)


Lesenswert?

ach so, ich dachte die daten sollten über S0 ausgegeben werden

von hafid (Gast)


Lesenswert?

ja  richtig  die  Daten  sollen über  S0  ausgegeben werden.
ich  weisse  es  nicht  ob ich  fehlern mache  bei  dieser  while 
schleife    oder  beim abtsatung  von timer  2  ..
ich  finde  den fehlern nicht  in dem  programm..
ich  will  dei  daten  über  S0  sehen .....

vieln  danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.