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

 
 
> Помогите моргнуть лампочкой
Slev
сообщение Oct 20 2009, 08:53
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 18-09-09
Пользователь №: 52 449



Эта супер-программа должна моргать лампочкой со скважностью ~0,5 сек.
Собираю всё в EWB 3.21, шью - PonyProg2000.
Не получается заставить её работать в верхних 4 кб mega128.
Во фьюзах ставлю галочки у BOOTRST и BOOTSZ1.
Подправил адреса в xcl-файле (с 1F000 ).

Подскажите где я промахнулся...

Код
#include <iom128.h>
#include <ina90.h>
//-------------------------------------------------------
void main(void)
{
long t=0;
  
  __disable_interrupt();
  
   MCUCR=(1<<IVCE);MCUCR=(1<<IVSEL);

  PORTG = 0xff;
  DDRG |= 0x08;

  __enable_interrupt();
          
  while(1){    
    if(t++ > 100000){
      PORTG ^= 0x08;
      t=0;
    }
  }
}
//--------------------------------------------------------

Проект также прилагается.
Прикрепленные файлы
Прикрепленный файл  Micro.rar ( 16.14 килобайт ) Кол-во скачиваний: 24
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Xenia
сообщение Oct 20 2009, 11:27
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Обращаю внимание присутствующих (и особливо суперпривередливого супермодератора), что этот топик не так прост, как можно заключить из его названия. Дело тут не в примитивном ногодрыганьи, а в том, что код, нормально работающий в нижних адресах памяти, не работает в верхних.
На новичка Slev мало похож, новички xor-ом не моргают smile.gif. Данный пример программы, несомненно тестовый. И будь на месте человека, столкнувшегося с проблемой верхних адресов, профессионал, то он точно так же попытался бы запустить в этих адресах что-то моргающее светодиодиком.
Я, к сожалению, не могу ответить на вопрос автора топика, т.к. сама не работала на mega с объемом flash выше 64К и EWB не использую. Однако подозреваю, что здесь что-то не ладно с фузами. Что-то типа того, что стоит защита, запрещающая обращаться к верхним адресам памяти. Такое бывает сплошь и рядом из-за требований обезопасить загрузчик (верхнюю часть памяти от попыток его протестировать через нижную загружаемую часть). Возможно и то, что таблица векторов прерываний оказалась по недосмотру поднята вверх, а старт остался снизу. Тогда тоже может случиться, что main() не получает управления. А вот заниматься поиском ляпов в программе не стоит, поскольку на нижних адресах памяти она работает.
В любом случае, заданный вопрос достаточно серьезен, чтобы не вызывать раздражение модератора. Куда большие сомнения в отсутствии профессионализма следовало бы отнести к авторам реплик, не знающих механизма постинкрементации. Программа написана свершенно верно. Проблема же только в том, отчего она не работает в верхних 4К адресного пространства.
Go to the top of the page
 
+Quote Post
Палыч
сообщение Oct 20 2009, 12:41
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(Xenia @ Oct 20 2009, 14:27) *
...поскольку на нижних адресах памяти она работает... Проблема же только в том, отчего она не работает в верхних 4К адресного пространства.
Автор топика не сообщил: работает ли его программа в "нижних" адресах памяти... А не работать она может, например, потому, что используется порт G и установлен (заводская установка) fuse совместимости с m103...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Slev   Помогите моргнуть лампочкой   Oct 20 2009, 08:53
- - МП41   А разве можно прямо в проверке условия делать инкр...   Oct 20 2009, 10:53
|- - MrYuran   Цитата(МП41 @ Oct 20 2009, 14:53) А разве...   Oct 20 2009, 10:56
- - zltigo   Цитата(Slev @ Oct 20 2009, 11:53) Эта суп...   Oct 20 2009, 10:59
- - virtual9900   Цитата(МП41 @ Oct 20 2009, 13:53) А разве...   Oct 20 2009, 10:59
|- - Сергей Борщ   Цитата(virtual9900 @ Oct 20 2009, 13:59) ...   Oct 20 2009, 13:10
- - SSerge   Точно! По умолчанию в Меге128 прошит fuse M103...   Oct 20 2009, 12:45
- - mempfis_   Проверте настройки линкера - начало области загруз...   Oct 20 2009, 14:56
- - Slev   Спасибо всем, кто откликнулся (особенно Ксении - з...   Oct 20 2009, 22:01
|- - Dog Pawlowa   Цитата(Slev @ Oct 21 2009, 01:01) Посмотр...   Oct 21 2009, 03:51
- - Палыч   Цитата(Slev @ Oct 21 2009, 01:01) При сбо...   Oct 21 2009, 05:12
- - Slev   Вложил картинку про фузы. BOOTSZ=01 - 2048 words -...   Oct 21 2009, 08:01
|- - mempfis_   Цитата(Slev @ Oct 21 2009, 11:01) Вложил ...   Oct 21 2009, 09:13
- - Slev   memphis, твоя прошивка работает ! А в чём ты ...   Oct 21 2009, 09:39
|- - Сергей Борщ   Цитата(Slev @ Oct 21 2009, 12:39) Может э...   Oct 21 2009, 09:46
|- - mempfis_   Цитата(Slev @ Oct 21 2009, 12:39) memphis...   Oct 21 2009, 09:57
- - Slev   И ещё, самый первый вектор у нас разный: у меня 0С...   Oct 21 2009, 10:22
|- - mempfis_   ОК. map и lst в архиве. По поводу библиотек - особ...   Oct 21 2009, 11:00
- - SysRq   В нерабочем коде (дизасм ja tools\reavr): Код...   Oct 21 2009, 10:45
- - Slev   Нашёл! Проблема была не с CODE, а с DATA...   Oct 21 2009, 12:14


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

 


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


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