Diferencia entre revisiones de «Código Acelerómetro para Codewarrior 10.6»
De Wikitronica
Línea 45: | Línea 45: | ||
SCI1BD = baud; // set baud | SCI1BD = baud; // set baud | ||
− | } | + | } |
</syntaxhighlight><br> | </syntaxhighlight><br> | ||
Línea 51: | Línea 51: | ||
'''Funciones para la transmisión y recepción de datos''' | '''Funciones para la transmisión y recepción de datos''' | ||
− | ''' | + | '''Enviar y recibir caracteres''' |
<syntaxhighlight lang="c"> | <syntaxhighlight lang="c"> | ||
− | char RecChar(void) { | + | char RecChar(void) { |
− | byte rec_char; | + | byte rec_char; |
− | if (SCI1S1_RDRF) | + | if (SCI1S1_RDRF) |
− | rec_char = SCI1D; | + | rec_char = SCI1D; |
− | SCI1C2_RE = 1; | + | SCI1C2_RE = 1; |
− | while(!SCI1S1_RDRF){ }; | + | while(!SCI1S1_RDRF){ }; |
− | rec_char = SCI1D; | + | rec_char = SCI1D; |
− | SendChar((char) rec_char); | + | SendChar((char) rec_char); |
− | return (char) SCI1D; | + | return (char) SCI1D; |
− | } | + | } |
</syntaxhighlight><br> | </syntaxhighlight><br> |
Revisión del 15:42 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
}
Funciones para la transmisión y recepción de datos
Enviar y recibir caracteres
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;
}