Diferencia entre revisiones de «Código Acelerómetro para Codewarrior 10.6»
De Wikitronica
Línea 7: | Línea 7: | ||
'''Inicialización de periféricos''' | '''Inicialización de periféricos''' | ||
− | |||
− | |||
'''ICS''' | '''ICS''' | ||
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
Línea 49: | Línea 47: | ||
} //end InitSCI | } //end InitSCI | ||
+ | </syntaxhighlight><br> | ||
+ | |||
+ | |||
+ | '''Funciones para la transmisión y recepción de datos''' | ||
+ | '''SCI''' | ||
+ | <syntaxhighlight lang="c"> | ||
+ | char RecChar(void) { | ||
+ | byte rec_char; | ||
+ | |||
+ | if (SCI1S1_RDRF) | ||
+ | rec_char = SCI1D; | ||
+ | SCI1C2_RE = 1; | ||
+ | while(!SCI1S1_RDRF){ }; | ||
+ | rec_char = SCI1D; | ||
+ | SendChar((char) rec_char); | ||
+ | return (char) SCI1D; | ||
+ | } //end RecChar | ||
</syntaxhighlight><br> | </syntaxhighlight><br> |
Revisión del 15:40 22 jun 2016
Código del Acelerómetro en CodeWarrior 10.6
Descripción de funciones
Inicialización de periféricos ICS
void ICS_FEI(void) {
if (NVICSTRM != 0xFF)
ICSTRM = NVICSTRM;
else
ICSTRM = 0xAD;
ICSC1 = ICSC1_FEI;
ICSC2 = ICSC2_FEI;
ICSSC = ICSSC_FEI;
while (ICSC1_CLKS != ICSSC_CLKST) {}
} //end
KBI
void InitKBI(void) {
// Enable KBI1P[3:2] as interrupt
KBI1PE = KBI_SW;
KBI1SC = 0b00000110;
/* ||||
|||+---- KBIMOD = KBI detection mode: 0=edge only
||+----- KBIE = KBI int enable: 1=enabled
|+------ KBACK = KBI int acknowledge: 1=clr IRQF
+------- KBF = KBI flag
*/
}
SCI
void InitSCI(word baud) {
SCI1BD = baud; // set baud
} //end InitSCI
Funciones para la transmisión y recepción de datos
SCI
char RecChar(void) {
byte rec_char;
if (SCI1S1_RDRF)
rec_char = SCI1D;
SCI1C2_RE = 1;
while(!SCI1S1_RDRF){ };
rec_char = SCI1D;
SendChar((char) rec_char);
return (char) SCI1D;
} //end RecChar