Forum: Mikrocontroller und Digitale Elektronik Xmega driver


von Nova (Gast)


Lesenswert?

Morgen,

ich bin eigendlich nur auf der suche nach den beispiel codes (driver) 
von Atmel, wo bekomm ich die den ... ich suche zb die usart_driver.c und 
.h


das wäre schon sher schön die mal da zu haben...


mfg Sascha

von Max (Gast)


Lesenswert?


von Nova (Gast)


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?

von Mike R. (thesealion)


Lesenswert?

die stehen in der Header-Datei, die zu deinem verwendeten Controller 
gehört.

Für den XMega128A1 ist das z.B. die iox128a1.h

von Nova (Gast)


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

von Grrrr (Gast)


Lesenswert?

Ich empfehle Dir den Kauf eines C-Buches. Vorzugsweise den, mit Recht, 
wie ich finde, so berühmten Kernighan & Ritchie.

Deine Fragen, das soll keine Kritik sein, betreffen absolutes 
Basiswissen.

von Grrrr (Gast)


Lesenswert?

Falls Du nicht warten willst, kannst Du hier 
http://de.wikibooks.org/wiki/C-Programmierung nachlesen.

von Nova (Gast)


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

von Grrrr (Gast)


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.

von Nova (Gast)


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...

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.