Xmega driver

Gast #1763703
Lesenswert?

danke,

mal ne andere frage wo finde ich die abkürtzungen wie:

SPI_MODE_3_gc
SPI_PRESCALER_DIV4_gc
(1<< SPI_CLK2X_bp)
(1<< SPI_ENABLE_bp)
(1<< SPI_MASTER_bp)

um mal ein par aus der spi init als beispiel zu zeigen?
Gast #1763917
Lesenswert?

dann noch mal danke und auf eine nächste dumme Frage^^

wie funktioniert den das hier?
1
void DAC_DualChannel_Enable( volatile DAC_t * dac,
2
                            DAC_REFSEL_t convRef,
3
                            bool leftAdjust,
4
                            DAC_CONINTVAL_t sampleInterval,
5
                            DAC_REFRESH_t refreshInterval )
6
{
7
  dac->CTRLB = ( dac->CTRLB & ~DAC_CHSEL_gm ) | DAC_CHSEL_DUAL_gc;
8
  dac->CTRLC = ( dac->CTRLC & ~( DAC_REFSEL_gm | DAC_LEFTADJ_bm ) ) |
9
               convRef |
10
               ( leftAdjust ? DAC_LEFTADJ_bm : 0x00 );
11
  dac->TIMCTRL = (uint8_t) sampleInterval | refreshInterval;
12
  dac->CTRLA |= DAC_CH1EN_bm | DAC_CH0EN_bm | DAC_ENABLE_bm;
13
}
ich fang mal an die zu verlegen...

wie haben ein void Funktion mit den eingangs variablen: DAC_t * dac

was macht das denn?  DAC_t "MAL" dac ?

der Rest ist soweit klar. aber dann ?_?

dac->CTRLB = ( dac->CTRLB & ~DAC_CHSEL_gm ) | DAC_CHSEL_DUAL_gc;

ich nehme an wenn ich der variable "dac" DACA drin steht macht er das:

DACA.CTRLB oder?
der Rest ist von der Zeile auch klar. interessant ist das hier:
 leftAdjust ? DAC_LEFTADJ_bm : 0x00

was macht ein "?" und was macht der ":" ?

sry wenn ich so blöd Frage aber bis jetzt habe ich diese Operatoren noch 
nie benutzt für meine alten AtMega :-|

mfg Sascha
Gast #1763945
Lesenswert?

ja danke ich nehm das auch keinem bösse...

bis jetzt musste ich mir alles selbst aneignen und das es diese 
möglichkeit gibt war mir nicht klar...

Bedingungsoperator

Der Bedingungsoperator liefert abhängig von einer Bedingung einen von 
zwei möglichen Ergebniswerten. Er hat drei Operanden: Die Bedingung, den 
Wert für den Fall, dass die Bedingung zutrifft und den Wert für den Fall 
dass sie nicht zutrifft. Die Syntax ist

     bedingung ? wert_wenn_wahr : wert_wenn_falsch



ist natürlich sau cool... amcht einem das leben einfach nur hätte ich 
das als eine

if ()
 {
}

else
{
}

gemacht
Gast #1763957
Lesenswert?

Nova schrieb:
> nur hätte ich
> das als eine
>
> if ()
>  {
> }
>
> else
> {
> }
>
> gemacht

So? Dann versuche damit mal eine Variable zu initialisieren.

IF ist eine Anweisung während ?: ein Ausdruck ist, den Du einer 
Variablen zuweisen kannst. Anders ausgedrückt hat IF keinen 
Ergebniswert, während ?: einen hat.

Zugegeben, es lassen sich immer Formulierungen mit temporären Variablen 
finden, die ein ?: überflüssig machen, aber so kann man sich kurz und 
elegant ausdrücken.
Gast #1763990
Lesenswert?

ja das ist mir auch aufgefallen ...

ich bin halt erst am anfang ... eigendlich bin ich mehr der hardware 
mensch ... d.h. ich kann dir ein layout machen ...

naja studium fängt bald an .... ich hoffe da lernt man acuh ein wenig 
c++
und vorallem vhdl...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren