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

 
 
> настройка uart для мега
tvell
сообщение Jan 9 2006, 13:22
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 13-02-05
Пользователь №: 2 615



мучаюсь уже неделю немогу правильно получить данный от mega8 и mega16, пробывал и на СV и на GCC в порт что то выдаёт но не точто нужно, думаю нужно фузы поставить но какие так и немогу разобраться, у кого может есть пример на gcc что бы можно было нормально разобраться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Jan 10 2006, 16:24
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Если кому надо привожу программку для оценки частоты осциллятора спомощью низкочастотного частотомера. (например популярным тестером UNI-T M890F/G у которых шкала измерений до 20Khz)
частота осциллятора делится на 1000 и результат выводится на все пины порта B.

Код
;***************************************************************************
; Программа деления частоты осциллятора на Fdivisor для измерения
; частоты осциллятора низкочатотными частотомерами
; компилятор: AVR Studio 4 (4.11 SP 3).
;***************************************************************************
.include <m16def.inc>

.equ OSCCALValue = $FF; Значение загружаемое в OSCCAL
.equ Fdivisor = 1000  ; делитель частоты осциллятора
.equ Port = PortB     ; используемый порт ввода-вывода

.def  AL = R16;   Аккумулятор
.def  BL = R18;   вспомогательный регистр

.cseg
.equ PortDDR = Port - 1; регистр настройки направления порта

.org 0x0000

    jmp PSTART    ; Program Start
.org 0x000C
    jmp TIM1_COMPA; Timer1 Compare A Handler
.org 0x002A

PSTART:
    ldi   AL ,high(RAMEND) ; Main program start
    out   SPH, AL            ; Set Stack Pointer to top of RAM
    ldi   AL, low(RAMEND)
    out   SPL, AL

; <-- инициализация портов и регистров
    ldi   AL, $FF
    out   PortDDR, AL
    clr   BL

; <-- инициализация таймера
    ldi   AL, High( Fdivisor >> 1 )
    out   OCR1AH, AL
    ldi   AL, Low( Fdivisor >> 1 )
    out   OCR1AL, AL

    ldi   AL, 1 | (1 << CTC1)
    out   TCCR1B, AL

    ldi   AL, (1 << OCIE1A)
    out   TIMSK, AL

; <-- калибровка осциллятора
    ldi   AL, OSCCALValue
    out   OSCCAL, AL
; <-- инициализация ядра
    ldi   AL, (1 << SE)
    out   MCUCR, AL

    sei

;****************************************************
; Основной цикл программы
;****************************************************
MainCycle:          ; <----------- ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ
    sleep
    rjmp  MainCycle ; <----------- ОСНОВНОЙ ЦИКЛ ПРОГРАММЫ

;****************************************************
; Обработчик прерывания TMR1 (Timer 1 OC)
;****************************************************
TIM1_COMPA:; Timer1 Compare A Handler
    com   BL
    out   Port, BL
    reti
Go to the top of the page
 
+Quote Post



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

 


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


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