Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega128l массив на асме
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс июл 06, 2025 12:27:35

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Atmega128l массив на асме
СообщениеДобавлено: Сб янв 14, 2017 14:17:50 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 05, 2012 22:23:32
Сообщений: 126
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
Всем привет! Возникла необходимость реализовать загрузку из флеша мк байты данных и пихать их в шим. Проблема в том, что контроллер читает только первое значение массива и на этом всё заканчивается. Похожая прога работала на тини2313 и маге8, а в в меге128 пахать отказывается :cry:
Подозреваю, что чего-то в коде не хватает... Подскажите, в чем я болван :)))

псы: файл что-то не загрузился :(


Выяснялось, что контроллер попадает в подпрограмму и не хочет выходить из неё... Стек уже по-всякому указывал


.include "m128def.inc"


.def Counter_1 =r18
.def Counter_2 =r19


jmp RESET ; Reset Handler
jmp EXT_INT0 ; IRQ0 Handler
jmp EXT_INT1 ; IRQ1 Handler
jmp EXT_INT2 ; IRQ2 Handler
jmp EXT_INT3 ; IRQ3 Handler
jmp EXT_INT4 ; IRQ4 Handler
jmp EXT_INT5 ; IRQ5 Handler
jmp EXT_INT6 ; IRQ6 Handler
jmp EXT_INT7 ; IRQ7 Handler
jmp TIM2_COMP ; Timer2 Compare Handler
jmp TIM2_OVF ; Timer2 Overflow Handler
jmp TIM1_CAPT ; Timer1 Capture Handler
jmp TIM1_COMPA; Timer1 CompareA Handler
jmp TIM1_COMPB; Timer1 CompareB Handler
jmp TIM1_OVF ; Timer1 Overflow Handler
jmp TIM0_COMP ; Timer0 Compare Handler
jmp TIM0_OVF ; Timer0 Overflow Handler
jmp SPI_STC ; SPI Transfer Complete Handler
jmp USART0_RXC; USART0 RX Complete Handler
jmp USART0_DRE; USART0,UDR Empty Handler
jmp USART0_TXC; USART0 TX Complete Handler
jmp ADCC ; ADC Conversion Complete Handler
jmp EE_RDY ; EEPROM Ready Handler
jmp ANA_COMP ; Analog Comparator Handler
jmp TIM1_COMPC; Timer1 CompareC Handler
jmp TIM3_CAPT ; Timer3 Capture Handler
jmp TIM3_COMPA; Timer3 CompareA Handler
jmp TIM3_COMPB; Timer3 CompareB Handler
jmp TIM3_COMPC; Timer3 CompareC Handler
jmp TIM3_OVF ; Timer3 Overflow Handler
jmp USART1_RXC; USART1 RX Complete Handler
jmp USART1_DRE; USART1,UDR Empty Handler
jmp USART1_TXC; USART1 TX Complete Handler
jmp TWI ; Two-wire Serial Interface Interrupt Handler
jmp SPM_RDY ; SPM Ready Handler



RESET: ; Reset Handler
EXT_INT0: ; IRQ0 Handler
EXT_INT1: ; IRQ1 Handler
EXT_INT2: ; IRQ2 Handler
EXT_INT3: ; IRQ3 Handler
EXT_INT4: ; IRQ4 Handler
EXT_INT5: ; IRQ5 Handler
EXT_INT6: ; IRQ6 Handler
EXT_INT7: ; IRQ7 Handler
TIM2_COMP: ; Timer2 Compare Handler
TIM2_OVF: ; Timer2 Overflow Handler
TIM1_CAPT: ; Timer1 Capture Handler
TIM1_COMPA:; Timer1 CompareA Handler
TIM1_COMPB:; Timer1 CompareB Handler
TIM1_OVF: ; Timer1 Overflow Handler
TIM0_COMP: ; Timer0 Compare Handler
TIM0_OVF: ; Timer0 Overflow Handler
SPI_STC: ; SPI Transfer Complete Handler
USART0_RXC:; USART0 RX Complete Handler
USART0_DRE:; USART0,UDR Empty Handler
USART0_TXC:; USART0 TX Complete Handler
ADCC: ; ADC Conversion Complete Handler
EE_RDY: ; EEPROM Ready Handler
ANA_COMP: ; Analog Comparator Handler
TIM1_COMPC:; Timer1 CompareC Handler
TIM3_CAPT: ; Timer3 Capture Handler
TIM3_COMPA:; Timer3 CompareA Handler
TIM3_COMPB:; Timer3 CompareB Handler
TIM3_COMPC:; Timer3 CompareC Handler
TIM3_OVF: ; Timer3 Overflow Handler
USART1_RXC:; USART1 RX Complete Handler
USART1_DRE:; USART1,UDR Empty Handler
USART1_TXC:; USART1 TX Complete Handler
TWI: ; Two-wire Serial Interface Interrupt Handler
SPM_RDY: ; SPM Ready Handler





ldi R16,low(RAMEND)
sts SPL,R16
ldi R16,high(RAMEND)
sts SPH,R16

ldi r16,0x00
out DDRA,r16

ldi r16,0x00
out PORTA,r16

ldi r16,0x10
out DDRB,r16

ldi r16,0x00
out PORTB,r16

ldi r16,0x00
out DDRC,r16

ldi r16,0x00
out PORTC,r16

ldi r16,0x00
out DDRD,r16

ldi r16,0x00
out PORTD,r16

ldi r16,0x00
out DDRE,r16

ldi r16,0x00
out PORTE,r16

ldi r16,0x00
sts DDRF,r16

ldi r16,0x00
sts PORTF,r16

ldi r16,0x00
sts DDRG,r16

ldi r16,0x00
sts PORTG,r16


clr counter_1
clr counter_2


ldi r16,0x69
out TCCR0,r16


ldi r16,0x01
out OCR0,r16

;***************************************

cycle: rcall ReadArray
rcall Delay
jmp cycle

;***************************************

ReadArray: ldi ZH,High(MyArray*2)
ldi ZL,Low(MyArray*2)

add ZL,Counter_1
adc ZH,CoUnter_2

lpm

mov r16,R0

out OCR0,r16
inc counter_1
cpi counter_1,10
brne esc
clr Counter_1


esc: ret

;***************************************

Delay: clr r20
clr r21
ldi r22,2

_10: dec r20
brne _10

dec r21
brne _10

dec r22
brne _10

ret

;***************************************

MyArray:

.db 0xf0,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xf0


Последний раз редактировалось VanyaSV Сб янв 14, 2017 17:58:30, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Сб янв 14, 2017 14:46:51 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4328
Откуда: Ижевск
Рейтинг сообщения: 0
Стек не установлен. Внимательнее применяйте команды обращения к портам.
Код:
;ldi R16,low(RAMEND)
;sts SPL,R16
;ldi R16,high(RAMEND)
;sts SPH,R16
ldi R16,low(RAMEND)
      out SPL,R16
ldi R16,high(RAMEND)
   out SPH,R16

Код:
lpm

mov r16,R0

OUT OCR0,r16
;sts OCR0,r16


Вернуться наверх
 
В сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Сб янв 14, 2017 20:42:14 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6012
Откуда: Minsk
Рейтинг сообщения: 0
Чисто oптимизационно :
зачем при инициализации портов какждый раз
Код:
  ldi  r16,0
  out ......
  ldi  r16,0
  out ......

когда можно :
Код:
  ldi  r16,0
  out ...... 
  out ......

_________________
Изображение


Последний раз редактировалось Jack_A Вс янв 15, 2017 09:22:44, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Вс янв 15, 2017 08:41:49 
Родился

Зарегистрирован: Чт ноя 24, 2016 20:16:46
Сообщений: 18
Рейтинг сообщения: 0
Попробуй вызов call, вместо rcall


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Вс янв 15, 2017 15:10:35 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Код:
ReadArray:
 push r16
  cpi zl,(Low(MyArray*2))+11
   brbs SREG_Z,no_rewrit
   ldi ZH,High(MyArray*2)
        ldi ZL,Low(MyArray*2)
no_rewrit:
      lpm r16,z+
       out OCR0,r16
     pop r16
   ret

:dont_know:
И внимательно просмотреть адресное пространство РСФ - у 128-й свое размещение, отличное от 2313 - часть РСФ адресуется только как память - через LD/ST (смотреть даташит влом).
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Вс янв 15, 2017 18:49:24 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 05, 2012 22:23:32
Сообщений: 126
Откуда: Санкт-Петербург
Рейтинг сообщения: 0
По моей незнанке, забыл снять гальку во фьюзах совместимости с мега103. Расходимся))


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Пн янв 16, 2017 06:55:10 
Друг Кота

Карма: 64
Рейтинг сообщений: 1013
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4328
Откуда: Ижевск
Рейтинг сообщения: 3
VanyaSV писал(а):
... забыл снять гальку во фьюзах совместимости с мега103.
Сняли галку совместимости и указатель стека чудесным образом установился. :shock: Ню ню!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Пн янв 16, 2017 08:45:57 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 1466
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15062
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Скорее адресное поле РСФ для остальной части программы пришло в "стандартное соответствие" с примененными способами адресации из прожек-прототипов.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Пн янв 16, 2017 09:57:44 
Собутыльник Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 651
Зарегистрирован: Сб май 14, 2011 21:16:04
Сообщений: 2708
Откуда: г. Чайковский
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Код:
sts SPL,R16
sts SPH,R16
Это запись R16 в регистры EEDR и EEARL

_________________
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y