Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Nachtrag + Frage zum ADC Kategorie: CC-Pro Unit & Appl.Board (von PeterS - 17.02.2008 12:54)
Als Antwort auf Re: Nachtrag + Frage zum ADC von Hannes - 11.02.2008 8:30

Hallo Hannes,

hatte Deine Frage beinah übersehen.

> Hallo Peter,
>
> ich hab mir den ADC6 + 7 mit dem Oszi mal angeschaut. Nach dem Einschalten gehen die Ports
> erstmal für 2 Sek. auf Low bevor sie auf Eingang schalten. Das ist dann schon tragisch, wenn die
> Signalquelle niederohmig ist, dann sind die Ports nämlich hin. Muss man halt mit einem 1kOhm
> am Eingang entschärfen.
>
> Zum ADC:
> wenn die VREF 2.56V ist, wie gross darf dann die Spg. am ADC-Eingang max. sein?
> Weil im Datenblatt des Mega32, S.291, ADC Characteristics steht: Vin (input voltage) MAX = VREF

Sorry, wenn ich die Frage nicht beantworten kann. Den Teil der Firmware der mit dem ADC zu tun hat,
ist nicht von mir. Ich habe ehrlicherweise momentan auch nicht die Zeit mich da einzuarbeiten. Vielleicht
kann ich in Zusammenarbeit mit Ulli da demnächst helfen.

Gruss Peter

>
>
> Gruss
>
>
>
>
>
>
>
>
> > Hallo Hannes,
> >
> > auch ohne USB wird A.6 und A.7 im Bootloader als Output initialisiert (eigentlich falsch, aber nicht tragisch).
> > Bitte probier mal aus, ob ein "Port_DataDir(PortA, 0);" vorher hilft. Würde mich freuen ein Feedback von Dir
> > zu bekommen, ob das dann geklappt hat.
> >
> > Gruss Peter
> >
> > > Hallo,
> > >
> > > ich möchte den ADC6 und ADC7 des Mega32 verwenden. Ich habe ein eigenes Board ohne USB
> > > und Tastatur, somit sollte ADC6+7 zur freien Verwendung stehen.
> > > Mit dem u.a. Programm bekomme ich allerdings nur brauchbare Werte von ADC0, ADC1 + ADC5
> > >
> > > Wie funktioniert ADC6 + 7 korrekt?
> > >
> > > Danke
> > >
> > >
> > >
> > >
> > >
> > >
> > > void main(void)
> > > {
> > >
> > >     word ADC_Wert;
> > >
> > >     SPI_Disable();
> > >
> > >     while(1)
> > >     {
> > >         ADC_Set(ADC_VREF_VCC, 0);       // ADC0
> > >         ADC_Wert= ADC_Read();
> > >         Msg_WriteWord(ADC_Wert);
> > >         Msg_WriteChar(0x20);            // Space
> > >
> > >         ADC_Set(ADC_VREF_VCC, 1);       // ADC1
> > >         ADC_Wert= ADC_Read();
> > >         Msg_WriteWord(ADC_Wert);
> > >         Msg_WriteChar(0x20);            // Space
> > >
> > >         ADC_Set(ADC_VREF_VCC, 5);       // ADC5
> > >         ADC_Wert= ADC_Read();
> > >         Msg_WriteWord(ADC_Wert);
> > >         Msg_WriteChar(0x20);            // Space
> > >
> > >         ADC_Set(ADC_VREF_VCC, 6);       // ADC6
> > >         ADC_Wert= ADC_Read();
> > >         Msg_WriteWord(ADC_Wert);
> > >         Msg_WriteChar(0x20);            // Space
> > >
> > >         ADC_Set(ADC_VREF_VCC, 7);       // ADC7
> > >         ADC_Wert= ADC_Read();
> > >         Msg_WriteWord(ADC_Wert);
> > >         Msg_WriteChar(0x20);            // Space
> > >
> > >         Msg_WriteChar(0x0D);            //CR
> > >
> > >         AbsDelay(1000);
> > >
> > >     }
> > > }


    Antwort schreiben


Antworten: