ДОПОМОГА АЦП в ARM7 lpc2148

H

hbaocr

Guest
Код:

# Включити "LPC214x.H" / / LPC2148 MPU Реєстрація

# Включити <stdio.h> / / Для Е Б Функція/ * * Pototype розділ /

недійсним init_serial0 (недійсними); / / Initil UART-0

Int ріЬспаг (INT CH) / / Чар Покладіть на UART-0

Int деЬсЬаг (недійсними); / / Отримати символ з UART-0

недійсним затримку (непідписаних довгий Int) / / Функція затримкивал непідписаних Int / / Результат АЦП (HEX)

поплавець вольт / / АЦП Результат Вольт

тап_п (недійсними)

(

init_serial0 (); / / Початковий UART0 = 9600, N, 8,1

Е ("вхідна напруга 0-3.3V для P0.6 При п Test \"); / / Виклик функції prinff

/ / XXXX XXXX XXXX XXXX XXXX XXXX xx11 хххх

PINSEL0 | = 0x00003000 / / Чон ADC1.0 Підключення P0.6 (pin30)

/ / Початковий ADC8 (ADCR = 0x01210601)

AD1CR і = 0x00000000 / / скинути всі cotrol біт

AD1CR | = 0x00000001 / / Чон ADC1.0

AD1CR | = 0x00000600 / / АЦП Годинник = VBP (PCLK) / 7

AD1CR | = 0x00010000 / / Busrt = 1 чо гавкіт phep колінах перетворення A-> D воїв CLK ADC та Чон про TREN

AD1CR і 0xFFF1FFFF = / / CLKS = 000 = 10 біт: 11 такті перетворення

AD1CR | = 0x00200000 / / PDN = 1 чо phep АЦП модуля Тіч Кук

AD1CR і 0xF7FFFFFF = / / EDGE = 0 = Перетворення по задньому фронту

/ / Початок випробувань читайте ADC8 та відображення на UART0 / /

в той час як (1) / / Цикл Продовжити

(

AD1CR | = 0x01000000; / / тепер почати розмову

а ((AD1DR0 і 0x80000000) == 0) / / почекати повного перетворення АЦП

вал = ((AD1DR0>> 6) і 0x03FF);

Е ("Гія три ве тра:% о", вал);

)

)/******************************/

/ * Початковий UART0 = 9600, N, 8,1 * /

/ * ЖЕС (pclk) = 60,00 МГц * /

/******************************/

недійсним init_serial0 (недійсними)

(

PINSEL0 і 0xFFFFFFF0 = / / Скидання P0.0, P0.1 Pin Config

PINSEL0 | = 0x00000001; / / Select P0.0 = TxD (UART0)

PINSEL0 | = 0x00000004; / / Select P0.1 = RxD (UART0)U0LCR і 0xFC = / / Скидання Word Виберіть (1:0)

U0LCR | = 0x03; / / Дані Bit = 8 Bit

U0LCR і 0xFB = / / Стоп біт = 1 Bit

U0LCR і 0xF7 = / / Паритет = Відключити

U0LCR і 0xBF = / / відключити контроль Перерва

U0LCR | = 0x80; / / Включити програмування дільників Засувки/ / U0DLM: U0DLL = 60,00 МГц / [16 х Baud]

/ / = 60,00 МГц / [16 х 9600]

/ / = 390,6 = 391 = 0187H

U0DLM = 0x01; / / Програма дільників клямка (391) за 9600 Baud

U0DLL = 0x87;U0LCR і 0x7F = / / Вимкнути програмування дільників ЗасувкиU0FCR | = 0x01; / / Включити FIF0

U0FCR | = 0x02; / / RX FIFO Скидання

U0FCR | = 0x04; / / TX FIFO Скидання

U0FCR і = 0x3F;

)/****************************/

/ * Створити персонажа Для UART0 * /

/****************************/

Int ріЬспаг (INT CH)

(

(Сп == '\ п')

(

а (! (U0LSR і 0x20)); / / Чекаємо TXD буфера Порожній

U0THR = 0x0D / / Створити CR

)

а (! (U0LSR і 0x20)); / / Чекаємо TXD буфера Порожній

повернення (U0THR = сп); / / Створити Характер

)/*****************************/

/ * Читання символу з UART0 * /

/*****************************/

Int деЬсЬаг (недійсними)

(

а (! (U0LSR і 0x01)); / / Чекаємо RXD Отримання даних Готові

повернення (U0RBR) / / Отримати Receice даних і повернення

)/***********************/

/ * Функція затримки * /

/ * 1-4294967296 * /

/***********************/

недійсним затримку (непідписаних довгий Int count1)

(

а (count1> 0) (count1 -;) / / Цикл зниження Лічильник

)

 
Спробуйте відключити BURST режимі, ви починаєте переходів, як тільки ви встановите цей біт.

 
Я намагався!Але все ж таки це помилка!Моя програма, як і раніше замкнутий цикл в рядку а ((AD1DR0 і 0x80000000) == 0)

PLZ, надішліть мені ще раз код, наприклад, про його

 
привіт, шифрування
Plz завантажувати код, C пояснити мені більш докладно про це.Чому я зустрічаю цю помилку, як я можу вирішити цю проблему.
Велике спасибі

 

Welcome to EDABoard.com

Sponsor

Back
Top