Перейти к содержанию

Зацикливание Кода На Несколько Повторений.


hardbar

Рекомендуемые сообщения

Почему студия пишет что в коде есть ошибка??

.macro outi
ldi temp,@1
out @0,temp
.endm

А имено в что ошибкой есть @1

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

В самом макро? У меня не ругается.

Изменено пользователем Григорий Т.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Наверно, не нравится (ramend).

В Tiny13 нет SPH регистра, так что можете просто писать ramend.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

что еще за liw(RAMEND) внизу?!

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да все из за liw(ramend).НЕ правельно написал. Спасиба

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Ерунду говорите, сударь. Это обычная структура, а RB3 - её битовое поле. Си очень хорошо это всё знает.

Ну-ка, ну-ка, приведите полный код который бы таким образом скомпилировался любым компилятором Си а не только специализированными под пики или cvavr. Конкретно интересует комбинация
counter++;
if(counter.bit0){}

Какой там тип данных у counter'а? Сколько помню, спецификация Си не знает про классы (это не С++ или objectiveC) а структуры не знают про перегрузку операторов.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Почему в терминал приходит только символ "Р". А остальные символы не приходят.

;Дата:21.08.13
;Автор:Паша Бурлака

;----------------------------
.include "tn2313def.inc"
.list
.def temp=r16
.equ ur=25
;-----------------------------
.macro outi
ldi temp,@1
out @0,temp
.endm
.cseg
.org 0
rjmp reset
.org 0x0013
;----------------------------
reset:
cli
outi spl,low(ramend)
outi spl,high(ramend)
outi ddra,0x00
outi ddrd,0xff
outi ddrb,0x00
outi porta,0xff
outi portb,0xff
outi acsr,0x80
outi ubrrl,low(ur)
outi ubrrh,high(ur)
LDI temp,0
OUT UCSRA,temp
LDI R16,(1<<RXEN)|(1<<TXEN)|(0<<RXCIE)|(0<<TXCIE)|(0<<UDRIE)
OUT UCSRB, R16
LDI R16,(3<<UCSZ0)|(1<<USBS)
OUT UCSRC, R16
;--------------------------------------------
main:
ldi r17,'p'
rcall out_ua
ldi r17,'a'
rcall out_ua
ldi r17,'h'
rcall out_ua
ldi r17,'a'
rcall out_ua
rjmp main
out_ua:
SBIS UCSRA,UDRE ; ожыдание флага готовности
rjmp out_ua ; ждем готовности - флага UDRE
OUT UDR, r17
ret

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

outi spl,low(ramend)

outi spl,high(ramend)

Убери вторую строчку, она зануляет указатель стека. Достаточно было разок прогнать в эмуляторе Студии чтобы понять что программа не возвращается из процедуры.

И еще кое-что. Правилом хорошего тона считается указание тактовой частоты контроллера (.equ F_CPU 8000000 ;например) и частоты интерфейсов, из которых в дальнейшем вычисляются значения регистров:

.equ F_CPU 1000000
.equ UART_BAUD 9600
.equ UBRR F_CPU/16/UART_BAUD-1
;---
ldi temp,low(UBRR)
out UBRRH,temp
ldi temp,high(UBRR)
out UBRRL,temp

Как-то так

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Убрал только вторую строчку и все заработало спасибо.

outi spl,low(ramend)
outi spl,high(ramend)

А скорость я взял из даташита , мне так удобнее.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

через формулу все же лучше. Проще менять частоту, например, да и понятнее

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Буду и меть в виду если что. Но пока по даташиту.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

С uart я разобрался где можно почитать про массивы для Asm кроме Радиокота там я уже был.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Асм не знает что такое массивы, там можно работать только с областями памяти, вручную. Что вы хотите получить?

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Хочу получить что то типа вот этого http://radiokot.ru/s...cu_fpga/avr/15/ .На Радиокоте немного не понятно. Хотел бы ещё немного информации.

Извините вот это http://radiokot.ru/start/mcu_fpga/avr/12/. С верху силка не та.

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Вручную выделяешь в ОЗУ адрес буфера для динамической идникации, ее размер и конец буфера, чтобы можно было легко добавлять другие.

.equ MEM_BUFFER_START SRAM_START+1
.equ MEM_BUFFER_SIZE 8
.equ MEM_BUFFER_END MEM_BUFFER_START+MEM_BUFFER_SIZE

Потом в бесконечном цикле или еще где заполняется этот буфер (тупо запись в ОЗУ, команда st) тем, что нужно будет отобразить.

Сама индикация может быть, например, по таймеру (можно и поизврящаться, например, на прерывании по передачи UART): увеличивается счетчик, считывается область памяти по счетчику, сдвигается байт на контроле индикации (PORTD по схеме с раиокота).

.equ OUT_MASK 0b11110000
.equ OUT_START 0b00010000
.def temp=r16
.def outmask=r17
...
TIMER_INT:					    ;прерывание для динамической индикации
 ld temp,Y+					    ; Y поработает адресом
 out PORB,temp			    ;на PORTB вроде больше ничего не висит, не буду заботиться о сохранности
 in temp,PORTD			    ; а вот на PORTD может что-то и быть
 lsr outmask					   ;сдвигаем в сторону младшего бита
 andi temp,OUT_MASK
 or temp,outmask
 out PORTD,temp		    ;так что меняем только нужные биты
 cpi YL,low(MEM_BUFFER_END) ;считаем что старший байт не поменялся. Для простоты можно адресовать с 0x0100
   brlo TIMER_END
 ldi YL,low(MEM_BUFFER_START) ;если дошли до конца буфера - прыжок в начало
 ldi outmask,OUT_START
TIMER_END:
reti

Примерно так. Если надо могу прокомментировать.

Сохранение SREG не делал, для примера оно не нужно.

На радиокоте это сделано программно, то есть с огромными задержками. На прерывании, МИХО получше.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Спасибо но я по ошибке силку не ту дал.Вот она http://radiokot.ru/s...cu_fpga/avr/12/ .Динамическую индикацию я поже буду изучать.

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

А что не понятно? директива .db располагает в памяти программ (flash) один или несколько байтов, сколько указано. .dw соответственно располагает слова (2 байта). Адрес, куда будут записаны эти байты, можно указать директивой org, но чаще это не нужно, лучше записать сразу после кода. Для этого ставят туда метку. Ее значение и будет соответствовать адресу. Только надо учитывать, что адресация flash, в отличии от EEPROM и SRAM, по словам а не по байтам, для этого и ставят умножение на 2.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Немного по шарив по интернету понял как работает массив. И за основу для изучения взял программу с массивом с Радиокота.

Я ее взял и укоротил. Она работает но только не полностю, доходит до середины где в РОН записываеться 0xff и останавливаеться.

Пересмотрел программу несколько раз. Вроде бы не нашел ошибок. Может из за усталости не замечаю. Прошу посмотреть.

Гоняю с самого утра её. Ничего так и не тронулся с места.

Вот код:

.include "tn2313def.inc"
.list
.def temp=r16
.def temp1=r17
.def tim=r18
.def timer=r19
.def pob=r20
;-----------------------------
.macro outi
ldi temp,@1
out @0,temp
.endm
.cseg
.org 0
rjmp reset
.org 0x0013
;----------------------------
reset:
cli
outi spl,low(ramend)
outi ddra,0xff
outi ddrd,0xff
outi ddrb,0xff
outi porta,0x00
outi portd,0x00
outi portb,0x00
outi acsr,0x80
outi tccr0b,0x05
ldi timer,200
sei
;------------------------------
ReadArray:
cpi temp1,31
breq main
ldi ZH,High(Array*2) ;загрузка начального адреса массива
ldi ZL,Low(Array*2)
ldi Temp,0		 ;прибавление внутр. адреса
add ZL,Temp1
adc ZH,Temp
lpm				 ;загрузка из ПЗУ
mov pob,R0		 ;копирование в РОН
inc Temp1			 ;увеличение внутр. адреса
out PortB,pob	 ;вывод в порт
rcall wait
rjmp ReadArray
;------------------------------
main:
ldi temp1,0
ret		
;--------------------------------
wait: ;Все что снизу задержка на таймере.
ldi tim,0
out tcnt0,tim
wt1:
in tim,tcnt0
cp tim,timer
brlo wt1
ret
;-------------------------------------
Array:
.db 0b10000001,0b01000010
.db 0b00100100,0b00011000
.db 0b00011000,0b00111100
.db 0b01111110,0b11111111
.db 0b11100111,0b11000011
.db 0b10000001,0b11000001
.db 0b11100001,0b11110001
.db 0b11111001,0b11111101
.db 0b11111111,0b01111111 ;строка где останавливаеться.
.db 0b00111111,0b00011111
.db 0b00001111,0b00000111
.db 0b00000011,0b00000001
.db 0b00000011,0b00000101
.db 0b00001001,0b00010001
.db 0b00100001,0b01000001

Зарание спасибо.

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

RET выход из подпрограммы. Метку reset я копировал c предедущий прошивки где изучал прерывания.

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Ниже на 1 строку от метки "ReadArray:"

Изменено пользователем hardbar

Очень люблю спасибку.

Спасибка ни кого еще не убила.

Професия: Електро-механик.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Сообщения

    • Какой бред,вам надо вот сюда - так как у вас  сетевой кабель не настроен совсем!.............................http://www.klyachin.ru/forum/topic.php? ... topic=280& По совместному решению Константин изготовил прототипы настраиваемых сетевых кабелей. На предельный уровень удовольствия от музыки можно выйти с помощью настраиваемых кабелей. Сегодня я нашёл способы, как быстрее всего настраивать новые типы кабелей ZKI. У меня два под типа. Один - условно называемый "B" - немного выделяет СЧ. Позволяет регулировать наклон тонального баланса вплоть до получения максимума передачи содержания музыки.
    • Собрал П/А  по схеме Олега . Первые испытания .Аппарат работает отлично  ММА  , МИГ . Тех характеристики  рабочий 200а , ток кз 300а . Силовая 4 транзистора ,тр Е95, дроссель альсифер ф76.  
    • Гм, возможно, индикация динамическая...  Ток прямой - 2,7 мА. Падение напряжения - 0.669 В.  Тулбокс в стори с припиской "сенсор"... Мультифункиональный, платный и бестолковый. Нахрен такую шнягу.  Упс, мой блок питания не хочет стабилизировать ток меньше 15 мА...  ?
    • Переходим ко "Второй части Марлезонского балета". То есть, наушники сопротивлением 300 Ом дерьмо?! Это я опять шучу совершенно по-дурацки. Не обращайте внимание.  Установка сопротивления в цепи сетки лампы совершенно не равна "убийству" звука. Частенько они ставятся для борьбы с нежелательным самовозбуждением. Встречал номиналы от 50 Ом до 10 кОм. Могут быть вредны при сеточных токах (не всегда) и при явно завышенном сопротивлении. На самом деле проблема самовозбуждения решается правильной разводкой, экранированием и, иногда, всего-то ферритовой бусинкой (или маааааленьким дроссельком) в аноде. Кроме того, нешунтированное сопротивление в цепи экранной сетки пентода может его несколько линеаризовать. Ну, это совсем другая история... На самом деле странная мода понижать сопротивление на входе усилителя (сначала, понятное дело, это касалось сеточного резистора лампового усилителя, иначе "гридлика", а потом и любого другого усилителя), пошло от признанного гения извлечения звука из "Монтан" Юрия Макарова. На самом деле, у него есть чему поучится. Но! Во-первых, не стоит становится совсем уж безумным фанатиком, во-вторых, многие из объяснений улучшения звука (реального улучшения!!!) объяснялись неверно с точки зрения физики и схемотехники, что приводило к неверным же выводам. Для меня входное сопротивление усилителя в 0,15 Ом выглядит полным идиотизмом. Ну, то такое... Теперь вернёмся к схеме смещения. LM-ка, как и любая другая микросхема стабилизатора генерирует шумы и они в вашей схеме непосредственно складываются со входным сигналом. И я гарантирую, что они больше, чем химические шумы той же литиевой батарейки. Понятное дело, что это не одно и то же, что и батарейное смещение во входном каскаде фонокорректора. Уровень сигнала на порядки различается. Кроме того, помехи, проникающие через паразитные ёмкости трансформатора, так же попадают на вход выходного каскада и на выход ЦАП-а. Не думаю, что это улучшает звучание усилителя. Хотя... Таки значительно меньшим уровнем помех и наводок. При соответствующем монтаже, конечно. Кроме того, для небольшой величины смещения вполне уместно уменьшить сопритивление в цепи сетки до нескольких сотен ом. P. S. Надеюсь на продолжение диалога. С уважением, Алексей.
    • Этот не надо покупать. Тебе ТВЗ80 нужен. 1300+1300 вит и 65 и 65 вит вторичка.
    • Началось - все что имеет макитовский разъем автоматически становится макитой 
    • Обилие деталей) И как, тут прокатывает просто замена банок, или копро-гейские ручонки разрабатывали модуль ?
  • Похожий контент

×
×
  • Создать...