реклама на сайте
подробности

 
 
> Помогите запустить компаратор у ATMega8
IEC
сообщение May 4 2007, 09:28
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 22-03-05
Из: г. Харьков, Украина
Пользователь №: 3 598



Помогите, пожалуйста, разобраться, вроде все сделал, а ничего не выходит.

На вход “AIN1” подается сигнал со схемы формирователя либо лог.”0”, либо лог.”1” без дребезга и с хорошими фронтами. На “AIN0” пытался подать опору от внутреннего источника, потом от внешнего делителя 2.5v, но в прерывание не хочет входить программа ни в отладчике AVRStudio 4.07, не в жизни на макете.

Для активизации компаратора в SFIOR (ACME<-0),
в ACSR (ACD<-0, ACBG<-1, ACO<-0, ACI<-0, ACIE<-1, ACIC<-0, ACIS1<-1, ACIS0<-0).

Пытался запустить внутреннюю опору, меняя биты в резисторе ADMUX (REFS1,REFS0). Режим подключения AVCC к AREF (0,1) – работает, опору при (1,1) в 2,56v на ножке AREF я не увидел (Caref=4.7мкф). Делителем поставил внешнюю 2,55v и перевел опору на внешнюю. А компаратор все равно отказывается работать.

Ниже привожу код неработающей программы (перебрал три процессора – эффект стабильный).


.include "m8def.inc"
.CSEG ; Start code segment
;===============================
.ORG 0x0000
rjmp Reset

.ORG ACIaddr
rjmp Ain_IRQ

;===============================
.ORG 0x0014

.include "AnComp.asm"

;===============================
Reset:
ldi r16, high(RAMEND) ; Задание адреса начала стека
out SPH, r16
ldi r16, low(RAMEND)
out SPl, r16

sbi DDRC, 5 ;инициализация 5го бита порта "PORC" на передачу
sbi PortC, 5

ldi R16, $3F ;00111111=$3F
out DDRD, R16
out PORTD, R16

RCall Ain_Init ;Инициализация ACD

sei ;Разрешение прерываний
m0:
sbi PortC, 5
….
….
rjmp m0




;********** AnComp.asm *********

.CSEG ; Start code segment

;===============================================================
Ain_Init:

ldi r16, $4A #01001010 => $4A
out ACSR, r16
ldi r16, $00
out SFIOR, r16 ;Выключение мультипл. ACME<-0
out ADMUX, r16 ;Выключение ADC,
ret
;=====================================================================
Ain_IRQ:
cbi PortC, 5

push r16
push r17
push r18
push r19
in r16, SREG
push r16
;------------
pop r16
out SREG, r16
pop r19
pop r18
pop r17
pop r16

reti
;==================================
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:13
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016