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

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

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

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

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

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

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

 
Опции темы
Непрочитано 30.10.2008, 22:00  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

[quote="DrunyaRuma"]
Сообщение от FedorChek
А это у них для совместимости с будущими камнями
Вот у Микрочипа такого в оссновном нет, если модуль изменяется.. то добавляются новые биты и регистры, а старые остаются неизменными. Таким макаром старые программы работают. Удобно для програмистов. Микрочип заботится об удобстве разработчика.

Такое впечатление что в АТМЕЛ не продумывает до конца и переделывает на ходу )))))
Реклама:
picavr вне форума  
Непрочитано 31.10.2008, 01:59  
retaler
Прописка
 
Регистрация: 30.06.2006
Сообщений: 147
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 3 сообщении(ях)
retaler на пути к лучшему
По умолчанию

[quote="picavr"]
Сообщение от DrunyaRuma
Сообщение от FedorChek
А это у них для совместимости с будущими камнями
Вот у Микрочипа такого в оссновном нет, если модуль изменяется.. то добавляются новые биты и регистры, а старые остаются неизменными. Таким макаром старые программы работают. Удобно для програмистов. Микрочип заботится об удобстве разработчика.

Такое впечатление что в АТМЕЛ не продумывает до конца и переделывает на ходу )))))
Микрочип уже наплодил целую кучу практически одинаковых чипов. Это из-за того, что функции не придумываются умниками из микрочипа а заказываются сторонними компаниями для своих разработок.
Это практикуется и у атмела. В частности и 88-я мега.
Далее появится 881, 882 , и так далее.
Просто сколько одни на рынке а сколько другие. Разница минимум в 10 лет.

/ret/
retaler вне форума  
Непрочитано 31.10.2008, 12:53  
mike7815
Прописка
 
Регистрация: 16.03.2005
Сообщений: 244
Сказал спасибо: 78
Сказали Спасибо 85 раз(а) в 55 сообщении(ях)
mike7815 на пути к лучшему
По умолчанию

88 мега великолепная микросхема. Нечего ругать атмел, если кривые руки. Нет в протеусе - кто запрещает пользоваться студией?
mike7815 вне форума  
Непрочитано 20.11.2008, 10:38  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

Проблемы с переходом с ATMega8 на ATMega88 подскажите если не трудно по некоторым конкретным вопросам.
ATMega8: //GICR&=0x3f;//запрещаем INT0 и INT1 судя по документации для ATMega88 нужно написать EIMSR&=0x3f; (хотя такой вариант не прокатывает)

ATMega8:
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 0,032 kHz
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x07; // prescaler = 1024
TCNT2=0xDF; // 255-32=223=0xDF время до переполнения - 1 сек
OCR2=0x00;
TIMSK|=0x40; // разрешаем прерывания от T/C2
return;

ATMega88:
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 0,032 kHz
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
//изменено под ATMEGA88
TCCR2A=0x07; // prescaler = 1024
TCCR2B=0x07; // prescaler = 1024
TCNT2=0xDF; // 255-32=223=0xDF время до переполнения - 1 сек
//изменено под ATMEGA88
OCR2A=0x00;
TIMSK2|=0x40; // разрешаем прерывания от T/C2
return;

ATMega8:
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
TIMSK&=0xbf; // запрещаем прерывания от T/C2
return;

ATMega88:
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
//изменено под ATMEGA88
TCCR2A=0x00;
TCCR2B=0x00;
//TCCR2=0x00;
TCNT2=0x00;
OCR2A=0x00;
//OCR2=0x00;
//TIMSK0&=0xbf;
TIMSK2&=0xbf;
//TIMSK&=0xbf; // запрещаем прерывания от T/C2
return;
и т.д.
Подскажите как корректно поменять (перейти) хотя бы на приведенных выше кодах
Заранее огромнейшее спасибо
FedorChek вне форума  
Непрочитано 21.11.2008, 10:53  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

Ну, что же вы...
Знаю, что проблема во мне но все же...
Я не могу "Вкурить" тот pdf файл с переходом с 8 на 88, а точнее т.к. по каждой строчки к вам обращаться нет смысла да и задача у меня научится...
Посему, приводить код бессмыслено (особенно если он остается без внимания) но всеже помогите...
Выше советовали написать .h но каким образом например
В "доке" по переходу http://www.atmel.com/dyn/reso...ces/...ts/doc2553.pdf написано
8____________________88
GICR 0x3B (0x5B) EIMSK 0x1D (0x3D)
GICR 0x3B (0x5B) MCUCR 0x35 (0x55)
мой код GICR&=0x3f;//запрещаем INT0 и INT1
идем далее
Atmega8
name___bit 7____bit 6
GICR INT0 INT1
Atmega8
name___bit 0____bit 1
EIMSK INT0 INT1
таким образом я должен написать
EIMSK&=0x03;//запрещаем INT0 и INT1
верно ли я понял?
также
TCCR1A ему соответствует TCCR1A и TCCR1С
как поступать в этом случае
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
и I/O Register address соответственно разный как им оперировать?
ЗАРАНЕЕ СПАСИБО!
FedorChek вне форума  
Непрочитано 24.11.2008, 01:02  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию

А чем обусловлен выбор атмеги8535 а не атмеги8 здесь ?
http://vrtp.ru/index.php?act=categor...e&article=1932

И что там за шаманство с фузами ?

-----------------------------------
Если только количеством выводов отличаются ?
Выкинуть двухстрочное чудо и использовать от телефона, попутно переписав управление с уменьшением числа кнопок .
Гы ...

----------------------------
Упс , там даже однострочное...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 25.11.2008, 13:09  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

Как установить INT0 по низкому уровню в ATMEge88
MCUCR&=??????
FedorChek вне форума  
Непрочитано 25.11.2008, 17:25  
DrunyaRuma
Временная регистрация
 
Регистрация: 13.02.2008
Сообщений: 60
Сказал спасибо: 10
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
DrunyaRuma на пути к лучшему
По умолчанию

Для установки INT0 по низкому уровню необходимо:

EICRA = 0;
EIMSK = (1‹‹INT0);
разрешаем прерывание;

Прерывание будет генерироваться даже если порт INT0 будет сконфигурирован как выход.Выложите исходник и схему, если это конечно не коммерческая тайна.Будет время помогу чем смогу.
DrunyaRuma вне форума  
Непрочитано 26.11.2008, 10:03  
FedorChek
Прописка
 
Регистрация: 24.07.2008
Сообщений: 151
Сказал спасибо: 1
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
FedorChek на пути к лучшему
По умолчанию

Сообщение от DrunyaRuma
Для установки INT0 по низкому уровню необходимо:

EICRA = 0;
EIMSK = (1‹‹INT0);
разрешаем прерывание;

Прерывание будет генерироваться даже если порт INT0 будет сконфигурирован как выход.Выложите исходник и схему, если это конечно не коммерческая тайна.Будет время помогу чем смогу.
Огромное спасибо
Потихоньку разбираюсь с переходом с меге8 на мегу88 вопросы были (читайте выше) но потихонечку из глупых и бестолковых, как для меня так и для Вас, они обретают какойто смысл. Исходники выложить не могу т.к. увидят башку оторвут, а она мне еще пригодится.
Что касается прерывания
кусок кода под мегу8
void go_to_sleep(void)
{
ent_flag=0;//чистим флаг кнопки Ent
GICR|=0x40;//разрешаем INT0 (кнопка Ent)
GICR&=0x7f;//запрещаем INT1 сдесь более понятно

MCUCR&=0xfc;//устанавливаем INT0 по низкому уровню
а вот тут не очень

//GIFR=0x00;//чистим флаг прерываний
sleep_enable();//уходим в PowerDown
powerdown();
#asm("cli")
ent_flag=1;//была нажата кнопка Ent
GICR&=0x3f;//запрещаем INT0 и INT1
//GIFR=0x00;//чистим флаг прерываний
#asm("sei")
}
Почему под мегу88 EICRA=0
[/code]

И еще под ATMeg'у8 код OCR2=0x00
нужно изменить под Мегу88
OCR2A=0x00
OCR2B=0x00
FedorChek вне форума  
Непрочитано 26.11.2008, 17:27  
DrunyaRuma
Временная регистрация
 
Регистрация: 13.02.2008
Сообщений: 60
Сказал спасибо: 10
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
DrunyaRuma на пути к лучшему
По умолчанию

Вот примерно так:
void go_to_sleep(void)
{
ent_flag=0;//чистим флаг кнопки Ent

1: GICR|=0x40;//разрешаем INT0 (кнопка Ent)
1: GICR&=0x7f;//запрещаем INT1 сдесь более понятно

1:: если эти строчки идут подряд в исходнике тогда:
EIMSK = (1‹‹INT0);//разр. INT0 и запр.INT1
если нет(чтобы не затронуть другие биты)пишем:
EIMSK |= (1‹‹INT0);//разрешаем INT0 (кнопка Ent)
EIMSK &= ~(1‹‹INT1);//запрещаем INT1

2:MCUCR&=0xfc;//устанавливаем INT0 по низкому уровню
2: //а вот тут не очень

2::в ATMega88 этот регистр для других целей
EICRA &= ~(1‹‹ISC01 | 1‹‹ISC00);
//устанавливаем INT0 по низкому уровню

3://GIFR=0x00;//чистим флаг прерываний
3:://EIFR = 0;

sleep_enable();//уходим в PowerDown
powerdown();
#asm("cli")
ent_flag=1;//была нажата кнопка Ent

4:GICR&=0x3f;//запрещаем INT0 и INT1
4::EIMSK = 0;//запрещаем INT0 и INT1

//GIFR=0x00;//чистим флаг прерываний
#asm("sei")
}

Почему под мегу88 EICRA=0
EICRA регистр отвечает за условия генерации
прерываний INT0 и INT1(тобто по какому фронту или уровню), а = потому что вопрос был "Как установить INT0 по низкому уровню в ATMEge88
MCUCR&=??????",но если Вы используете 2 внешних прерывания тогда конечно EICRA &= ~(1‹‹ISC01 | 1‹‹ISC00);что бы не затронуть INT1.

И еще под ATMeg'у8 код OCR2=0x00
нужно изменить под Мегу88
OCR2A=0x00
OCR2B=0x00

да нет,просто на OCR2A=0x00 т.к. в ATMega88 два регистра сравнения в таймере 2,а в Mega8 - 1.

Для начала советую Вам подправить вектора прерываний
что бы чудес не было.

Удачи Вам.
DrunyaRuma вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход с НЧ на ВЧ retcom Электроника - это просто 8 28.03.2008 12:19
Переход на подпрограмму в CodeVisionAVR Andrewg Proteus, KiCAD и другие ECAD 9 17.07.2007 15:51
вычисляемый переход PIC16f877a ctefan Микроконтроллеры, АЦП, память и т.д 2 22.06.2007 21:09
Переход с 90S2313 на tiny2313 y256 Микроконтроллеры, АЦП, память и т.д 2 08.06.2007 11:06
Переход с PIC16F84 на PIC16F87 init_sub Микроконтроллеры, АЦП, память и т.д 4 21.03.2005 13:53


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


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