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

 
 
> ASM + Xmega128A3
Pavel_Bor
сообщение Oct 5 2011, 13:11
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 115
Регистрация: 15-04-10
Из: Украина
Пользователь №: 56 660



Добрый день. Решил написать какой-нить простенький код на асме под хмегу - и сходу попал на грабли: Программа из основного цикла все время вываливается на ресет. + вызов функции (rcall letterd) после сравнения битов.

CODE

.include "ATxmega128A3def.inc"

.equ fmin=5
.equ grflag2=GPIO_GPIOR2


.cseg
;**************************** INTERRUPT VECTORS*****************************************
.org 0
jmp reset
.org 0x0100;+++++++++++++++++++++++++++++++++++++++++++++++++++++

main:
wdr
ldi rtmp,0xD8
out CPU_ccp,rtmp
clr rtmp
sts WDT_CTRL,rtmp ; WDT OFF
cli // думал причина в прерываниях..отключил.. не в них

m1:
in r18,grflag2 // r18 все время равен 0, следовательно флаг grflag2.5 = 0
sbic grflag2,fmin // пропускаю и попадаю на nop-> rjmp

rjmp letterd
// даже при пустом m1: nop nop rjmp m1 вываливаюсь на ресет
rjmp m1;*******************************
nop
ret

letterd: // как ни странно но в эту функцию я тоже попадаю
nop // хотя из условия выше я долже ее обходить
ret

;************** RESET ******* // стандартный набор для инициализации

RESET:
cli
ldi r16,low(RAMEND)
out CPU_SPL,r16
ldi r16,high(RAMEND)
out CPU_sph,r16
clr r16
clr xh
ldi xl,0xff

res1: st x+,r16
cpi xh,high(ramend)
brmi res1
ldi rtmp,0b01000111
sts OSC_XOSCCTRL,rtmp
ldi rtmp,0b00001001
sts OSC_CTRL,rtmp
ser rtmp
sts kzad,rtmp
call gzad16

lds rtmp,OSC_STATUS
sbrs rtmp,3;XOSCRDY
rjmp res2

ldi rtmp,0xD8
out CPU_ccp,rtmp

res2:
ldi rtmp,0b011
sts clk_ctrl,rtmp ;extern. CLK

jmp main


Сообщение отредактировал IgorKossak - Oct 6 2011, 14:04
Причина редактирования: [codebox]
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Pavel_Bor   ASM + Xmega128A3   Oct 5 2011, 13:11
- - kolobok0   Цитата(Pavel_Bor @ Oct 5 2011, 17:11) ......   Oct 5 2011, 13:45
|- - Pavel_Bor   Цитата(kolobok0 @ Oct 5 2011, 16:45) 1) н...   Oct 5 2011, 13:53
- - ILYAUL   Вам пытались объяснить, что переход по Rjmp не сох...   Oct 5 2011, 14:27
|- - Pavel_Bor   Цитата(ILYAUL @ Oct 5 2011, 17:27) Вам пы...   Oct 6 2011, 05:37
- - zombi   Цитата(Pavel_Bor @ Oct 5 2011, 16:11) Доб...   Oct 5 2011, 22:44
- - Navovvol   замените Rjmp на Rcall   Oct 6 2011, 05:36
- - Navovvol   CODE.include "ATxmega128A3def.inc" .equ...   Oct 6 2011, 05:52
|- - Pavel_Bor   Цитата(Navovvol @ Oct 6 2011, 08:52) Кодc...   Oct 6 2011, 10:01
|- - Navovvol   Цитата(Pavel_Bor @ Oct 6 2011, 14:01) Стр...   Oct 6 2011, 10:38
||- - kolobok0   Цитата(Navovvol @ Oct 6 2011, 14:38) знач...   Oct 6 2011, 12:41
||- - Navovvol   Цитата(kolobok0 @ Oct 6 2011, 16:41) да к...   Oct 6 2011, 12:53
||- - Pavel_Bor   Цитатазначит grflag2 не равен 0 . Командой IN запи...   Oct 6 2011, 13:30
|||- - Navovvol   Цитата(Pavel_Bor @ Oct 6 2011, 17:30) Дум...   Oct 7 2011, 06:47
|||- - Pavel_Bor   Цитата(Navovvol @ Oct 7 2011, 09:47) При ...   Oct 7 2011, 07:44
||- - Pavel_Bor   Цитатазначит grflag2 не равен 0 . Командой IN запи...   Oct 6 2011, 13:30
||- - zombi   Цитата(Pavel_Bor @ Oct 6 2011, 16:30) 2. ...   Oct 6 2011, 14:31
|- - zombi   Цитата(Pavel_Bor @ Oct 6 2011, 13:01) Мен...   Oct 6 2011, 10:54
- - Павлик   CODE .cseg .org 0 jmp RESET ; Res...   Oct 6 2011, 20:34


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

 


RSS Текстовая версия Сейчас: 22nd June 2025 - 03:05
Рейтинг@Mail.ru


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