прервать программу для pic16f877

B

bluemonday

Guest
привет ..Я использовал этот код в программу моего рис ..
Неподписанный INT adc_value;

недействительным Main () (
ADCON1 = 0x80; / / Настройка аналоговых входов и Vref
TRISA = 0xFF; / / PORTA ввода
TRISB = 0x3F; / / Pins RB7, RB6 имеют выходы

Usart_Init (115200);

делать (
adc_value = Adc_Read (2); / /
Получение результатов
Д. переходов
Usart_Write (adc_value);
Delay_us (200);
А) (1);
)

Я наклоняю получить точный отбор ..Может ли кто-нибудь помочь мне с этим ..Я хочу использовать interruput основан таймер для этого им, но не знаете, каким ..PLZ помогите мне ..кто-нибудь, кто знает ..PLZ дайте мне код ур ..

 
привет,

Я думаю, ур помощью компилятора mikrocпрервать недействительными ()
(
если (PIR1.TMR1IF)
(
/ / поставить ур код здесь
PIR1.TMR1IF = 0 / / четкое TMR1IF
)

)
init_timer недействительными ()
(
TMR1L = 0;
TMR1H = 0;
T1CON = 0x31;
PIR1.TMR1IF = 0 / / четкое TMR1IF
PIE1 = 1; / /
разрешить прерывания
INTCON = 0xC0;
)

вы можете инициализировать таймера с использованием функции init_timer ()
, когда происходит переполнение таймера, функция прерывания () будет автоматически называется

 
Также можно использовать "специальные мероприятия" в КПК модуль ...Вы можете читать ее в Datasheet (Sorry I Don `T помните, если 877 и 877A имеют этот модуль ...) вы должны изменить ccpr2 ценности для ваших собственных потребностей ...(Я только что измененных и старых программ, чтобы получить возможность отправлять сюда ....)( она работала хорошо различаются для меня ...)

прервать недействительным (недействительными)
(
если (PIR2.CCP2IF)
(
PIR2.CCP2IF = 0;
Usart_write (ADRESH);
)
)

Основными недействительным (недействительными)

(
TRISA = 0xEF / / или что-то еще ...
TRISB = 0;
TRISD = 0;
PORTB = 0;
PORTD = 0;
Usart_Init (115200);
ADCON0 = 0b01000001; / / ADC настройка
ADCON1 = 0x04;
T1CON = 0; / /
CCPR2H = 0x04;
CCPR2L = 0xE2; / / Ф = 800Hz = 1/1250us
TMR1H = 0; / /
TMR1L = 0; / /
CCP2CON = 0x0B;
PIR2.CCP2IF = 0;
PIE2.CCP2IE = 1;
INTCON.PEIE = 1;
INTCON.GIE = 1;
T1CON.TMR1ON = 1;
ADCON0.GO = 1;

в то время как (1)
(
/ / поставить нечто большее здесь .....
)
)

 
Проверьте таблицу и обратите внимание на термин "Tad '

 
Я HAVER чтения данных, и эти шаги необходимо сделать на A / D преобразование:

1.настроить A / D модуль:
2.Настройка A / D прервать:

четкое ADIF битных
установить АРЭИ битных
установить PEIE битных
установить GIE битных
3.ждать приобретения времени
4.начать cpnversion

установить GO / СОВЕРШЕНО бит (ADCON0)

5.подождите A / D преобразование в полной, либо:

голосования по ходу / СОВЕРШЕНО битных быть очищен (без прерывания позволило) ИЛИ
ждет A / D прервать

Я знаю, как сделать шаг 1 ..но им не уверены в том, что нужно делать для последующих шагов ..Вы можете, пожалуйста, объясните мне, если у вас есть время ..Ваша помощь, мы высоко оценили ..thnx много ..Добавлено спустя 7 минут:а также ..Я хочу передать ADRESL ..Как я буду делать, что??Добавлено спустя 10 минут:а также ..CCPR2h = 0x04
CCPR2L = 0xE2

Вы можете, пожалуйста, объясните, почему он больше вы положили этому значения?

 

Welcome to EDABoard.com

Sponsor

Back
Top