 |
|
|
|
| Автор |
Сообщение |
Alexander48 Новичок
Зарегистрирован: 12.04.2007 Сообщения: 2
|
Добавлено: 12 Апр 2007, 7:24 Заголовок сообщения: Помогите запустить программу на AVR |
|
|
Ребята! Помогите начинающему!Пытаюсь сделать АЦП путем использования компаратора и измерении времени заряда конденсатора до значения входного напряжения.(Пример в AVR400). Моделирую в VMLABe.Работать не хочет.
Заранее большое спасибо.
Вот программа.
| Код: |
.include "C:\VMLAB\include\1200def.inc"
;***** Константы
.equ preset=192 ;Предустановленный код смещения T/C0 (256-64)
.def result=r16 ;Результат преобразования и промежуточные данные
.def temp=r17 ;Временный регистр
.cseg
.org 0x0000
rjmp Reset
.org OVF0addr
rjmp ANA_COMP
.org ACIaddr
rjmp ANA_COMP
;**************************************************************************
;;* Начало программы
;**************************************************************************
Reset:
cbi DDRB,1
rcall convert_init ;Инициализация АЦП
sei ; Глобальное разрешение прерываний
ldi result,0xFF
out DDRD,result
Delay:
clr result ; Очистка временного счетчика 1
ldi temp,0xf0 ; Очистка временного счетчика 2
loop1:
inc result ; Увеличение на 1 временного счетчика 1
brne loop1 ; и ожидание его переполнения
inc temp ; Увеличение на 1 временного счетчика 2
brne loop1 ; и ожидание его переполнения
rcall AD_convert ; Запуск преобразования
Wait:
brtc Wait ; Ожидание завершения преобразования
out PORTD,result ; Вывод результата на порт B
rjmp Delay ; Повтор преобразования
ANA_COMP:
in result,TCNT0 ;Загрузка значения таймера 0
clr temp ;Останов таймера 0
out TCCR0,temp
subi result,preset+1 ;Вычисление результата преобразования
cbi PORTB,PB2 ;Запуск разрядки конденсатора
set ;Установка флага завершения преобразования
reti ;Выход из прерывания
convert_init:
ldi result,0x0b ;Разрешение работы компаратора
out ACSR,result ; и разрешение его прерывания
ldi result,0x02 ;Разрешение прерывания таймера
out TIMSK,result
sbi PORTB,PB2 ;Настройка линии заряда/разряда как выход
ret
AD_convert:
ldi result,preset ;Очистка счетчика результата
out TCNT0,result ;и загрузка кода смещения
clt ;Сброс флага окончания преобразования (t)
ldi result,0x02 ;Запуск таймера 0 с предделением на 8
out TCCR0,result
sbi PORTB,PB2 ;Включение режима заряда конденсатора
ret ;Выход из процедуры
|
И проект VMLab
| Код: |
.MICRO "AT90S1200"
.PROGRAM "AVR400.asm"
.TARGET "AVR400.hex"
.TRACE ; Activate micro trace
; Following lines are optional; if not included
; exactly these values are taken by default
; ------------------------------------------------------------
.POWER VDD=5 VSS=0 ; Power nodes
.CLOCK 1meg ; Micro clock
.STORE 250m ; Trace (micro+signals) storage time
R1 PB2 PB0 100k
C1 PB0 VSS 10n
V1 PB1 VSS SLIDER_1(0 2)
D1 VDD PD0
D2 VDD PD1
D3 VDD PD2
D4 VDD PD3
D5 VDD PD4
D6 VDD PD5
D7 VDD PD6
|
Moderator:
Уважаемый посетитель, Ваш текст намного удобнее читать, если он хоть немного размечен. А если удобно читать, то и вероятность скорого ответа больше. Пока я это сделал за Вас ... а дальше пробуйте сами.
|
|
| Вернуться к началу |
|
 |
avr123.nm.ru Знатный посетитель (>20)

Зарегистрирован: 07.08.2006 Сообщения: 67
|
Добавлено: 18 Апр 2007, 12:45 Заголовок сообщения: |
|
|
В апноуте AVR400 я нашел ошибку и написал в ATMEL но они не ответили.
Нужно ножку заряда конденсатора сделать выходом - в оригинале он вход и подтяжка заряжает конденсатор.
Вот проект - исправленый AVR400 с комментариями на русском и симуляцией в VMLAB.
| Описание: |
|
 Файлообменник |
| Название файла: |
AVR400_avr123.nm.ru_VMLAB.rar |
| Размер файла: |
2.8 KB |
| Скачено: |
115 раз(а) |
|
|
| Вернуться к началу |
|
 |
AndryG Модератор
Зарегистрирован: 24.07.2006 Сообщения: 411 Откуда: Helios-3
|
Добавлено: 18 Апр 2007, 13:45 Заголовок сообщения: |
|
|
Попробовал .... работает!
Вот только глючит на крайник положениях движка ...
_________________ AndryG |
|
| Вернуться к началу |
|
 |
avr123.nm.ru Знатный посетитель (>20)

Зарегистрирован: 07.08.2006 Сообщения: 67
|
Добавлено: 18 Апр 2007, 14:03 Заголовок сообщения: |
|
|
| Я в VMLAB напряжение 5 вольт поставил вместо 2 когда ошибку искал. Может лучше опять 2 вольта поставить.
|
|
| Вернуться к началу |
|
 |
Alexander48 Новичок
Зарегистрирован: 12.04.2007 Сообщения: 2
|
|
| Вернуться к началу |
|
 |
avr123.nm.ru Знатный посетитель (>20)

Зарегистрирован: 07.08.2006 Сообщения: 67
|
Добавлено: 04 Май 2007, 19:13 Заголовок сообщения: |
|
|
| C той же ошибкой ?
|
|
| Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете добавлять вложения в этом форуме Вы можете просматривать вложения в этом форуме
|
|