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

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

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

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

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

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

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

 
Опции темы
Непрочитано 22.11.2007, 23:05  
buka_2004
Временная регистрация
 
Регистрация: 28.02.2007
Сообщений: 90
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
buka_2004 на пути к лучшему
По умолчанию Програмирование CVAVR

Может конечно банальный вопрос и тем не менее...
Как при програмировании на СVAVR обратится к регистрам таймера 1 в режиме ШИМ таким как ICR1, OCR1A, OCR1B, OCR1C, как к двухбайтным типа int?
Чтобы корректно записывался вначале старший а потом младший байт.
В хедере эти регистры описаны только как однобайтные типа char, при попытке вручную описать как int не корректно работает ШИМ. В регистр переносится только младший байт. AVR studio симулирует все честно типа регистр изменяется и ШИМ работает как надо.

ЗЫ совсем забыл контроллер AT90can128.
Реклама:
buka_2004 вне форума  
Непрочитано 22.11.2007, 23:46  
Zemlyanov
Гражданин KAZUS.RU
 
Регистрация: 17.09.2006
Сообщений: 633
Сказал спасибо: 78
Сказали Спасибо 69 раз(а) в 57 сообщении(ях)
Zemlyanov на пути к лучшему
По умолчанию

Сначала надо установить разрядность ШИМ (8бит,9бит,10бит).А затем обращаться к этим регистрам. У вас по видимому установлен 8бит режим ШИМ поэтому и работает не корректно .

OCR1AH=0; старший разряд -если режим 9 бит или 10 бит , если 8 бит то писать ничего не надо.
OCR1AL =100; младший
Zemlyanov вне форума  
Непрочитано 23.11.2007, 00:27  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Вот я в примере LED из CVAVR вписал строку

OCR1A = 314;

нормально скушал и записал по байтам.
вот что в ASM листинге
Код:
                 ;      91 
                 ;      92 OCR1A = 314;
000077 e3ea      	LDI  R30,LOW(314)
000078 e0f1      	LDI  R31,HIGH(314)
000079 bdfb      	OUT  0x2A+1,R31
00007a bdea      	OUT  0x2A,R30
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 23.11.2007, 18:29  
buka_2004
Временная регистрация
 
Регистрация: 28.02.2007
Сообщений: 90
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
buka_2004 на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Вот я в примере LED из CVAVR вписал строку

OCR1A = 314;

нормально скушал и записал по байтам.
Хорошо тогда такой вопрос: Как посмотреть асм листинг, и как найти место соответствующее командам си?
Потому что у меня при настройке тааймера 1 в режиме Fast PWM сброс по достижению значения ICR1 при инициализации значению ICR1 присваивается только младший байт. Так же как и значению OCR1С но уже в прерывании.
При симуляции в AVRstudio все проходит нормально, а вот при зашивании в процессор
buka_2004 вне форума  
Непрочитано 23.11.2007, 18:49  
buka_2004
Временная регистрация
 
Регистрация: 28.02.2007
Сообщений: 90
Сказал спасибо: 6
Сказали Спасибо 5 раз(а) в 5 сообщении(ях)
buka_2004 на пути к лучшему
По умолчанию

Да и еще вопрос если нужно выйти из прерывания не заканчивая обработчик то как это сделать?
buka_2004 вне форума  
Непрочитано 23.11.2007, 19:20  
delamoure
Прописка
 
Аватар для delamoure
 
Регистрация: 22.09.2006
Адрес: Днепропетровск
Сообщений: 114
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
delamoure на пути к лучшему
По умолчанию

Сообщение от buka_2004
Да и еще вопрос если нужно выйти из прерывания не заканчивая обработчик то как это сделать?
Дык просто return

Например.

//---------------------------------------------------------------
// Function : USART 1 receive complete interrupt
// Description :
//---------------------------------------------------------------
#pragma savereg+
interrupt [USART1_RXC] void usart1_rx_isr(void)
{
unsigned char dat;
// test for FRAME ERROR and OVERRUN
dat=UCSR1A & 0b00011000;
if(dat!=0)
{
dat=UDR1;
UCSR1A=UCSR1A; // reset USART 1 flags
return;
}

dat=UDR1;
USART1_Buffer[USART1_BytesCounter]=dat;
USART1_BytesCounter++;

// check for end of the packet
if(USART1_BytesCounter›=USART1_BUFFERCAPACITY)
{
USART1_ReceiveComplete=true; // set receive complete flag
UCSR1B&=0b01111111; // RXCIE1 disable
UCSR1A=UCSR1A; // clear USART 1 flags
}
}
//------------------------- END OF FUNCTION ---------------------
delamoure вне форума  
Непрочитано 23.11.2007, 20:29  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

Сообщение от buka_2004
Как посмотреть асм листинг, и как найти место соответствующее командам си?
В курсе написано конечно все это ...

листинг в CVAVR это файл .lst

Найти - поиском в той проге в которой будете посматривать вестимо ! Обычно Ctrl+F - написано в самом заглавии краткого курса.

В CVAVR - файл оупен - тип "Лист файлс"
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 24.11.2007, 10:24  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
Сообщение от buka_2004
Как посмотреть асм листинг, и как найти место соответствующее командам си?
листинг в CVAVR это файл .lst
Как говорится, самое страшное при насморке - советы добрых друзей. Ему же не листинг нужен, с адресами и прочей байдой, а посмотреть во что CvAvr сишные коды превращает. Ты, buka, лучше в файл .asm смотри - там все видно и ничего лишнего.
tempora вне форума  
Непрочитано 24.11.2007, 12:09  
dimonbest
Гражданин KAZUS.RU
 
Аватар для dimonbest
 
Регистрация: 30.04.2006
Сообщений: 984
Сказал спасибо: 5
Сказали Спасибо 18 раз(а) в 14 сообщении(ях)
dimonbest на пути к лучшему
По умолчанию

Сообщение от buka_2004
Да и еще вопрос если нужно выйти из прерывания не заканчивая обработчик то как это сделать?
Вопрос немного не в тему, но все же:
Можно ли в CVAVR выйти из прерывания так, чтобы прерывания были запрещены? Другими словами чтобы компитятор откомпилировал return как ret а не reti?
dimonbest вне форума  
Непрочитано 24.11.2007, 20:16  
tempora
Почётный гражданин KAZUS.RU
 
Регистрация: 10.01.2007
Сообщений: 3,412
Сказал спасибо: 65
Сказали Спасибо 664 раз(а) в 443 сообщении(ях)
tempora на пути к лучшему
По умолчанию

Сообщение от dimonbest
Можно ли в CVAVR ... чтобы компитятор откомпилировал return как ret а не reti?
1.Не объявляй функцию обработчиком прерывания, или
2.Вставь в функцию-обработчик прерывания ассемблерную инструкцию ret

В любом случае придётся извращаться на уровне встраивания ассемблерных инструкций в сишный код, а это, для такой странной задачи, не будет гладко - одно неверное движение, одна модификация сишного исходника без тщательной проверки промежуточного ассемблерного кода - и ты по уши в эмм... в загадках относительно причин зависона.
Скорее всего, ты идёшь неверным путём. Лучше объясни чего ты хочешь добиться - наверняка есть легальные способы получить нужный результат.
tempora вне форума  
 

Закладки
Опции темы

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CVAVR while и таймер kr11507 Микроконтроллеры, АЦП, память и т.д 10 13.12.2008 21:29
Програмирование портов Infenon С167 vadimvarn Микроконтроллеры, АЦП, память и т.д 1 01.11.2008 02:31
Програмирование по SPI EKuzmich Микроконтроллеры, АЦП, память и т.д 2 09.07.2008 21:35
програмирование АТmega32??? TimaON Микроконтроллеры, АЦП, память и т.д 0 06.05.2008 14:41
Програмирование attiny2313 Gorgic Микроконтроллеры, АЦП, память и т.д 1 15.12.2007 00:00


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


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