Например TDA7294

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





Текущее время: Вт апр 23, 2024 22:31:37

Часовой пояс: 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
Рейтинг сообщений: 966
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4221
Откуда: Ижевск
Рейтинг сообщения: 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
Рейтинг сообщений: 840
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 5598
Откуда: Minsk
Рейтинг сообщения: 0
Чисто oптимизационно :
зачем при инициализации портов какждый раз
Код:
  ldi  r16,0
  out ......
  ldi  r16,0
  out ......

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

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


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

Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Atmega128l массив на асме
СообщениеДобавлено: Вс янв 15, 2017 08:41:49 
Родился

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


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

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

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14062
Откуда: ДОНЕЦК
Рейтинг сообщения: 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)


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

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

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


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

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


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

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


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

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

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


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

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


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

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


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

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


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