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

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.