Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
int putchar (int ch) {
if (ch == '\n') {
while (!(U1LSR & 0x20));
U1THR = ch;
while (!(U1LSR & 0x20));
return (U1THR = ch);
}
int getchar (void) {
while (!(U1LSR & 0x01));
return (U1RBR);
}
int main (void) {
unsigned int v ;
VPBDIV= 0x02; - вот эту строчку надо изменить, PCLKSEL0=... дальше не знаю...Это первый вопрос.
IODIR1= 0x00ff0000;
AD0CR = 0x00200601;
PINSEL0 = 0x00050000;
U1LCR = 0x83;
U1DLL = 97;
U1LCR = 0x03;
while(1){
AD0CR |= 0x01000000;
while((AD0GDR & 0x80000000)==0);
v = ((AD0GDR>>6)& 0x03ff);
printf ("Digital Value %4u = %01u.%04u Volts\r",
(unsigned) v,
(unsigned) (v * VREF) >> 10,
(unsigned) ((v * VREF * 10000UL) >> 10UL) % 10000);
AD0CR= 0x00000000;;
}
return(0);
}
P.S. Странно но у меня не работает функция printf()на 23 серии, хотя настройка UART прописаны.Может так применяется уже немного другой синтаксис.Подскажите. Конкретно программирую для контроллера LPC2378/Спасибо