Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 15.12.2008, 01:47   #11
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,955
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от myxan
не ко всем регистра специального назначения есть прямой доступ, если я использую ваш код получу ощибку "C:AVRNev1313.asm(8: error: Invalid register" В строке 88!
Код:
out TCCR2A, TMP
Вот и преходится использовать косвенную адресацию!
Все верно, в меге169 порты ввода-вывода "вылезли" за тот предел, до которого к ним можно обращаться по in/out. Но косвенную делать необязательно - есть команда STS. Если "разовое" обращение - то через STS экономнее, да и читабельнее.

Кроме того, обязательно сохраняйте в стеке все, что изменяете в прерывании. Учтите - прерывание возникает когда угодно. Вы в нем изменяете tmp,Z и слово состояния. Как поведет себя основная программа при этом? Правильно - абы как.

Потому не поленитесь сделать так:
Код:
OC2: 
push TMP
in TMP,SREG
push TMP
;-----
ser tmp 
out PORTA, tmp 
clr TMP 
sts TCCR2A, TMP 
;-----
pop TMP
out SREG,TMP
pop TMP
reti
Возможно, что глюки-то и пропадут...

Кстати, если SER и CLR заменить на засылку констант - что по тактам то же самое - то SREG можно и не сохранять. Но это уже тонкости. Лучше - SREG сохранять всегда.
Реклама:
nml вне форума  
Непрочитано 15.12.2008, 10:36   #12
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

Код:
out TCCR2A, TMP
Мой "косят" - не обратил внимание на "ATmega169"
nml как всегда прав на 100%
Цитата:
Походу AVR Studio 4 соверщенно глюкнутая программа.
Ну это не так! AVR Studio нормально работает за исключением не больших глюков в отладке
Цитата:
Написал ту же програмку на СИ с помощью CodeVisionAVR, зашил. Все работает, как надо
А теперь сравни .hex после компиляции на С и asm.
P.S. "Возвращаю Ваш портрет", ну с "небольшой" корректировкой...

Прикрепленный файл: 9196288.rar
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 15.12.2008, 10:44   #13
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

Цитата:
Я самоучка! Извени...
Я не думаю что здесь есть люди которые изучали(ют) курс програмирования AVR в учебных заведениях. "Мы все учились по не много...". Читай "матчасть", изучай "чужие" исходники, разбирайся - если это действительно нужно...
P.S. Зарание извеняюсь за флуд...
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 17.12.2008, 01:08   #14
myxan
Частый гость
 
Регистрация: 24.03.2008
Сообщений: 18
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
myxan на пути к лучшему
По умолчанию

Спасибо ra9mig за наглядный пример правильного программирования, но к сожалению это не помогло. После заливки программы в mega 169 на порту С светодиод светится в полную силу, а в порту А тускло (мерцает). Чем больше задержка до прерывания тем слабее светит.
Заливал вот это
Код:
;---------------------------------------
.include	"m169def.inc"
;---------------------------------------
.def	Zero	= r2
.def	tmp	= r16

;---------------------------------------
.cseg
.org 0
	jmp	RESET
	;-----------------------
.org OVF0addr
jmp	OVF0
;---------------------------------------
.org INT_VECTORS_SIZE
RESET:
	ldi	tmp,	High(RAMEND)
	out	SPL,	tmp
	ldi	tmp,	Low(RAMEND)
	out	SPL,	tmp
	clr	Zero
	;-----------------------
	out	PORTA,	Zero
	out	PORTC,	Zero
	ser	tmp
	out	DDRA,	tmp
	out	DDRC,	tmp
	;-----------------------
        ldi	tmp,	(1‹‹TOIE0)
	sts	TIMSK0,	tmp
	ldi	tmp,	(1‹‹CS02)|(0‹‹CS00)|(0‹‹CS01)
	out	TCCR0A,	tmp
	;-----------------------
	sei
;---------------------------------------
MainLoop:
	ser	tmp
	out	PORTC, tmp 
	rjmp	MainLoop
;---------------------------------------
OVF0:
	push	tmp
	in TMP,SREG 
        push TMP
	ser	tmp
	out	PORTA,	tmp
	out	TCCR0A,	Zero
	pop    tmp
	out SREG,TMP 
        pop TMP
	reti
;---------------------------------------
В архиве проэкт AVR Studio 4.
Помогите пожалуйста, непонимаю что происходит.
myxan вне форума  
Непрочитано 17.12.2008, 01:45   #15
myxan
Частый гость
 
Регистрация: 24.03.2008
Сообщений: 18
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
myxan на пути к лучшему
По умолчанию

Забыл присоеденить

Прикрепленный файл: 3607019.rar
myxan вне форума  
Непрочитано 17.12.2008, 12:21   #16
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

myxan
Вопрос был про регистры и т.п. Про алгоритм разговора не было. Но можно и поговорить:
- А как должно быть ...?
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Непрочитано 17.12.2008, 12:56   #17
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию

Проверьте установку указателя стека. А то запись два раза в SPL выглядит странно.
kison вне форума  
Непрочитано 17.12.2008, 13:30   #18
ra9mig
Прописка
 
Регистрация: 24.09.2008
Сообщений: 116
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
ra9mig на пути к лучшему
По умолчанию

Да, это косяк (очипятка)
P.S. myxan Вот вам лампочками помигать - красота...

Прикрепленный файл: 3246049.rar
__________________
Если мы вам не подходим, вы нам вовсе не нужны!
Услышал и забыл, увидел и запомнил, сделал и понял!
Нейрон - штука тонкая!
Чудес на свете не бывает!
ra9mig вне форума  
Закрытая тема

Закладки


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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сдвиговые регистры 74HC595B1 boyler TTL и CMOS логика 12 10.02.2012 14:18
Проблема с USART AVR mega169 Archer07 Микроконтроллеры, АЦП, память и т.д 20 28.07.2009 15:02
Помогите с Таймером(mega169) Archer07 Микроконтроллеры, АЦП, память и т.д 3 25.07.2009 16:35
PIC16F84 дублированные спец. регистры TheSvin Микроконтроллеры, АЦП, память и т.д 11 07.02.2007 22:59


Часовой пояс GMT +4, время: 16:28.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot