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

 
 
> Непонятки с USART в mega162
golovin
сообщение Jun 27 2007, 13:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 13-04-07
Пользователь №: 27 012



Добрый день!

Есть такая прога :
Код
.include "m162def.inc"

.dseg

DataIn:    .BYTE 1

.cseg
    .org $000

    rjmp    RESET    
    .org $022
    rjmp TC0Proc

    .org $026    ;прерывание по сигналу принятых данных USART0
    rjmp Uart0_Rx
; переименование регистров
.def    temp1            =r16        
.def    temp2            =r17
.def    blink            =r18
.def    ButPress        =r19
.def     CountInOut        =r20
.def     Count            =r21
.def     Tx_Now            =r22
.def     preByte            =r23
.def     CurData            =r24
.def     s1                =r25

RESET :

    cli

    ldi temp1,LOW(RAMEND)        ; установка стекa
    out spl,temp1
===>       ldi temp1,High(RAMEND)        ; установка стекa
    out sph,temp1

    rcall UART0_Init

    ldi temp1, $FF
    out DDRB, temp1                ; порт B - весь на выход
    out PortB, temp1
    out DDRC, temp1                ; порт C - весь на выход
    ldi temp1, $F0
    out PortC, temp1
    ldi temp1, $00
    out DDRA, temp1                ; порт A - весь на вход
    ldi temp1, 0b00000010
    out TIMSK, temp1        ; разрешение прерывания по переполнению Т/С0
    ldi Blink, 0
    ldi ButPress, 0
    ldi CountInOut, 1
    ldi Count, 0
    ldi CurData, 0
    ldi s1, 0
    ldi Tx_Now, 0
    ldi yl, Low(DataIn)
    ldi yh, High(DataIn)

    sei

    nop
    nop
    nop
    nop
main:                            ; ОСНОВНОЙ ЦИКЛ
    rjmp main

; Инициализация UART
UART0_Init:

; Set baud rate
    ldi temp1, 0
    out UBRR0H, temp1    
    ldi temp1, 71                ; 9600 при 11,0592
    out UBRR0L, temp1

    ldi temp1, 0b11111000
    out UCSR0B, temp1

    ldi temp1, 0b10000111
    out UCSR0C, temp1
ret


Если в Studio проводить отладку, то сразу после sei программа перескакивает по АДРЕСУ строки
ldi temp1,High(RAMEND) (т.е. это не связанно со стеком). Если убрать инициализацию USART, то всё работает нормально. Соответственно в девайсе, по моему, происходит тоже самое.
Помогите кто чем может.
Спасибо
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 19:09
Рейтинг@Mail.ru


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