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

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

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

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

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

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

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

 
Опции темы
Непрочитано 26.12.2006, 09:09  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от paha1956
Вот, сбацал тут по-быстрому. Компилятор IAR 3.20.

Код:
#include ‹string.h›
#include ‹iom8.h›

void Out_LCD(unsigned char);

__flash unsigned char decode[10]="0123456789";

void main(void)
{
char Vr_level, i, V_string[15];
float Vr_level_f;

strcpy (V_string, "U=  .   V");

ADCSR=0x9f;       // Инициализация АЦП (постоянное преобразование)
ADMUX=0x61;
SFIOR=0x00;

PORTB=0xff;       // Инициализация порта B
DDRB=0xff;

PORTC=0x80;       // Инициализация порта C
DDRC=0x80;

ADCSR|=(1‹‹ADSC); // Запуск преобразования

while (1)
  {
  while ((ADCSR & 0x10) == 0)    // Ожидание окончания преобразования АЦП

  Vr_level=ADCH;                 // Считывание значения АЦП
  Vr_level_f=Vr_level/204.4;     // Учёт коэффициента
      
  // Перевод напряжения в двочно-десятичный вид
  V_string[3]=decode[(unsigned char)(Vr_level_f     -Vr_level_f/10*10)];
  V_string[5]=decode[(unsigned char)(Vr_level_f/10  -Vr_level_f/100*10)];
  V_string[6]=decode[(unsigned char)(Vr_level_f/100 -Vr_level_f/1000*10)];

  PORTB&=~0x04;  // Установка режима ввода команд в LCD
  
  Out_LCD(0x24); // Вывод команды установки курсора
                    в позицию (1,1) (данные взяты
                    "от балды", т.к. кодов команд
                    не знаю)
  Out_LCD(0x01); 
  Out_LCD(0x01); 

  // Вывод данных на LCD
  PORTB|=0x04; // Установка режима ввода данных
  i=0;
  while (V_string[i] != 0)
    {
    Out_LCD(V_string[i]); 
    }
  }
}

void Out_LCD(unsigned char data)
{
unsigned int k;

PORTB=data & 0x0f; // Младшая часть данных
PORTB|=0x08;       // Запись данных
for (k=0; k‹1000; k++) {;}
PORTB&=~0x08;      // Снятие сигнала записи данных

PORTB=(data››4) & 0x0f; // Старшая часть данных
PORTB|=0x08;       // Запись данных
for (k=0; k‹1000; k++) {;}
PORTB&=~0x08;      // Снятие сигнала записи данных
}
Получилось 1480 байт кода. Делал не проверяя, чисто чтоб размер посмотреть и сравнить. Стандартных функций не использовал, поэтому текст получился большой.
Что то я откомпилер в IARе v4.12A, и то пришлось почему-то заменить ADSC на 6. Получил hex но ничего не работает в Proteus?
Реклама:
moyaproba вне форума  
Непрочитано 27.12.2006, 07:48  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Ну кто-нибудь подскажет как сделать так, чтобы эта прога в протеусе заработала?
И почему IAR не делает cof файл?
Выдает ошибку
Fatal Error[e92]: Cannot use the 'coff' output format with this cpu
moyaproba вне форума  
Непрочитано 27.12.2006, 10:08  
wolfram
Прохожий
 
Регистрация: 18.10.2006
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wolfram на пути к лучшему
По умолчанию

Сообщение от moyaproba
Ну кто-нибудь подскажет как сделать так, чтобы эта прога в протеусе заработала?
И почему IAR не делает cof файл?
Выдает ошибку
Fatal Error[e92]: Cannot use the 'coff' output format with this cpu
С Proteus следует использовать формат Ubrof. В настройках линкера IAR следует выбрать строчку Ubrof-8 (forced). Кроме того, необходимо поставить галочку Override default и заменить расширение выходного файла на .d90. Что интересно, для PIC расширение должно быть .ubf.
wolfram вне форума  
Непрочитано 27.12.2006, 10:23  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от wolfram
Сообщение от moyaproba
Ну кто-нибудь подскажет как сделать так, чтобы эта прога в протеусе заработала?
И почему IAR не делает cof файл?
Выдает ошибку
Fatal Error[e92]: Cannot use the 'coff' output format with this cpu
С Proteus следует использовать формат Ubrof. В настройках линкера IAR следует выбрать строчку Ubrof-8 (forced). Кроме того, необходимо поставить галочку Override default и заменить расширение выходного файла на .d90. Что интересно, для PIC расширение должно быть .ubf.
если делать hex то работает, а cof нет и протеус ошибку выдает
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/27122006/2531622.JPG" frameborder="0" name="fr3480789" scrolling="yes" width="470" height="533" align="bottom"›[img]nuke/users_images/27122006/2531622.JPG[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›
‹center›
-- Прилагается рисунок: --
‹IFRAME src = "nuke/users_images/27122006/544068.JPG" frameborder="0" name="fr3317604" scrolling="yes" width="470" height="498" align="bottom"›[img]nuke/users_images/27122006/544068.JPG[/img]
‹font color=red›Рисунок не умещается на странице и поэтому сжат!‹/font›
Для того, чтобы просмотреть его полностью, щелкните здесь.

‹/IFRAME›
‹/center›
moyaproba вне форума  
Непрочитано 27.12.2006, 11:13  
wolfram
Прохожий
 
Регистрация: 18.10.2006
Сообщений: 7
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
wolfram на пути к лучшему
По умолчанию

Я же говорю, не надо использовать cof. Замените расширение .cof на .d90: ledchaiser.d90. В Proteus в свойствах контроллера выберете для свойства Program File соответствующий файл, т.е. в вашем случае ledchaiser.d90. В help по Proteus не рекомендуют пользоваться cof. Дословно:
COFF
This format, while supported, is not recommended where an ELF/DWARF option is available. This is because, unlike ELF/DWARF, the COF format is somewhat compiler dependant and open to interpretation. This means for example, that a PIC compiler may represent a float in COF as an IEEE float or in Microchip’s float format and provides no explicit information as to which format it has used. More information on supported compilers for the COF format can be found on the website. To use with Proteus specify COF as the debug format within the compiler and then use the .COF file in the program property of the processors Edit Component dialogue form.
wolfram вне форума  
Непрочитано 27.12.2006, 11:46  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от wolfram
Я же говорю, не надо использовать cof. Замените расширение .cof на .d90: ledchaiser.d90. В Proteus в свойствах контроллера выберете для свойства Program File соответствующий файл, т.е. в вашем случае ledchaiser.d90. В help по Proteus не рекомендуют пользоваться cof. Дословно:
COFF
This format, while supported, is not recommended where an ELF/DWARF option is available. This is because, unlike ELF/DWARF, the COF format is somewhat compiler dependant and open to interpretation. This means for example, that a PIC compiler may represent a float in COF as an IEEE float or in Microchip’s float format and provides no explicit information as to which format it has used. More information on supported compilers for the COF format can be found on the website. To use with Proteus specify COF as the debug format within the compiler and then use the .COF file in the program property of the processors Edit Component dialogue form.
Спасибо заработало!!!
moyaproba вне форума  
Непрочитано 28.12.2006, 07:46  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от paha1956
Вот, сбацал тут по-быстрому. Компилятор IAR 3.20.

Код:
#include ‹string.h›
#include ‹iom8.h›

void Out_LCD(unsigned char);

__flash unsigned char decode[10]="0123456789";

void main(void)
{
char Vr_level, i, V_string[15];
float Vr_level_f;

strcpy (V_string, "U=  .   V");

ADCSR=0x9f;       // Инициализация АЦП (постоянное преобразование)
ADMUX=0x61;
SFIOR=0x00;

PORTB=0xff;       // Инициализация порта B
DDRB=0xff;

PORTC=0x80;       // Инициализация порта C
DDRC=0x80;

ADCSR|=(1‹‹ADSC); // Запуск преобразования

while (1)
  {
  while ((ADCSR & 0x10) == 0)    // Ожидание окончания преобразования АЦП

  Vr_level=ADCH;                 // Считывание значения АЦП
  Vr_level_f=Vr_level/204.4;     // Учёт коэффициента
      
  // Перевод напряжения в двочно-десятичный вид
  V_string[3]=decode[(unsigned char)(Vr_level_f     -Vr_level_f/10*10)];
  V_string[5]=decode[(unsigned char)(Vr_level_f/10  -Vr_level_f/100*10)];
  V_string[6]=decode[(unsigned char)(Vr_level_f/100 -Vr_level_f/1000*10)];

  PORTB&=~0x04;  // Установка режима ввода команд в LCD
  
  Out_LCD(0x24); // Вывод команды установки курсора
                    в позицию (1,1) (данные взяты
                    "от балды", т.к. кодов команд
                    не знаю)
  Out_LCD(0x01); 
  Out_LCD(0x01); 

  // Вывод данных на LCD
  PORTB|=0x04; // Установка режима ввода данных
  i=0;
  while (V_string[i] != 0)
    {
    Out_LCD(V_string[i]); 
    }
  }
}

void Out_LCD(unsigned char data)
{
unsigned int k;

PORTB=data & 0x0f; // Младшая часть данных
PORTB|=0x08;       // Запись данных
for (k=0; k‹1000; k++) {;}
PORTB&=~0x08;      // Снятие сигнала записи данных

PORTB=(data››4) & 0x0f; // Старшая часть данных
PORTB|=0x08;       // Запись данных
for (k=0; k‹1000; k++) {;}
PORTB&=~0x08;      // Снятие сигнала записи данных
}
Получилось 1480 байт кода. Делал не проверяя, чисто чтоб размер посмотреть и сравнить. Стандартных функций не использовал, поэтому текст получился большой.
Да кстати, почему эта прога после компиляции не работает в протеусе? что за глюки?
moyaproba вне форума  
Непрочитано 28.12.2006, 09:53  
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию

проверьте прошивку в VMLAB.nm.ru
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума  
Непрочитано 28.12.2006, 09:56  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Сообщение от avr123-nm-ru
проверьте прошивку в VMLAB.nm.ru
Это еще зачем? В протеусе всегда до этого все работало, даже прога которая на бейсике написана выше...
А здесь где-то глюк...
moyaproba вне форума  
Непрочитано 28.12.2006, 12:59  
moyaproba
Временная регистрация
 
Регистрация: 14.09.2006
Сообщений: 58
Сказал спасибо: 0
Сказали Спасибо 5 раз(а) в 1 сообщении
moyaproba на пути к лучшему
По умолчанию

Неужели никто не знает, как сделать чтобы прога заработала?
moyaproba вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Тестирование компиляторов для AVR SwanSwan Микроконтроллеры, АЦП, память и т.д 22 19.02.2009 01:04
[Решено] тест коэфицента интеллекта radiotexnika Отвлекитесь, эмбеддеры! 1 26.01.2009 11:09
о выборе компиляторов...замолвите слово... picavr Микроконтроллеры, АЦП, память и т.д 12 03.12.2008 01:38
Тест памяти и регистров. Andrewg Микроконтроллеры, АЦП, память и т.д 5 05.01.2007 14:12
Тест таймера и др. BigBolt Микроконтроллеры, АЦП, память и т.д 1 06.03.2006 14:53


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


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