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

 
 
 
Reply to this topicStart new topic
> Проблема с T1 MEGA88V
KESTVVV
сообщение Mar 22 2007, 12:54
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



У меня такая проблема:

OCR1BH - при записи в эти регисты их значение всегда равно 0x00
ICR1H

OCR1BL - управляются нормально
ICR1L
OCR1AH
OCR1AL

Прерывания запрещены.Очередность записи старшей и младшей части регистров соблюдены.
Эта проблема присутствует во всех режимах формирования PWM.Все режимы работают, только вот в OCR1BH и ICR1H всегда находятся нули.

Очень жду помощи в этой проблемке.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 22 2007, 14:21
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(KESTVVV @ Mar 22 2007, 12:54) *
У меня такая проблема:

Эта проблема на реальном железе или в AVR Studio ?
Покажите код.
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Mar 22 2007, 14:42
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



Проблема с железом.Работаю в AVR Studio.HEX прошиваю Chip Blaster AVR ST200 с опторазвязкой.

.def BF1 = R1

LDI BF1,high(RAMEND)
OUT SPH,BF1
LDI BF1,low(RAMEND)
OUT SPL,BF1

SBI DDRB,1
SBI DDRB,2

CLI

LDI BF1,0b10100011
STS TCCR1A,BF1

LDI BF1,0b00000001
STS TCCR1B,BF1

LDI BF1,2
STS OCR1AH,BF1

LDI BF1,0
STS OCR1AL,BF1


LDS BF1,2
STS OCR1BH,BF1

LDI BF1,0
STS OCR1BL,BF1

PP:
RJMP PP
Go to the top of the page
 
+Quote Post
Wild007
сообщение Mar 22 2007, 16:07
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



А что находится в ОЗУ в ячейке 2? Потому что код:
Код
LDS BF1,2
STS OCR1BH,BF1

загружает в BF1 содержимое ячейки 2 ОЗУ. И если там 00, то и в OCR1BH будет 00.


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 22 2007, 16:24
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(Wild007 @ Mar 22 2007, 16:07) *
А что находится в ОЗУ в ячейке 2? Потому что код:
Код
LDS BF1,2
STS OCR1BH,BF1

загружает в BF1 содержимое ячейки 2 ОЗУ. И если там 00, то и в OCR1BH будет 00.

Еще более загадочным представляется то, что команды ldi BF1,xx работают (если они, конечно, работают) - учитывая, что BF1 = R1, а команда ldi работает только с регистрами 16..31.

Напоминает популярные тесты "найди десять ошибок" wink.gif

Сообщение отредактировал rx3apf - Mar 22 2007, 16:25
Go to the top of the page
 
+Quote Post
Wild007
сообщение Mar 22 2007, 16:37
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 226
Регистрация: 25-03-05
Из: Беларусь
Пользователь №: 3 672



Я просто предположил что
Код
.def BF1 = R1

случайная ошибка smile.gif , а должно выглядеть:
Код
.def BF1 = R16


--------------------
Ничто так не ограничивает полет мысли программиста, как компилятор
Go to the top of the page
 
+Quote Post
KESTVVV
сообщение Mar 22 2007, 16:47
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 53
Регистрация: 7-02-07
Пользователь №: 25 146



А причиной всему - банальная описка
с BF1 - опечатка во время копирования (.def BF1 = R17 )
главная причина - LDS.
Я щас просто перехожу с x51,поэтомус AVR бывает не все понятно.
Спасибо всем за помостч.blush.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 22:24
Рейтинг@Mail.ru


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