Proteus: вопросы и ответы

Обсуждаем цифровые устройства...
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

radio-kot писал(а):подскажите почему пропадают адреса перед строками кода исходника в proteus, номера на которых можно точки останова ставить?
Скорее всего из-за того, что в исходнике есть функции, которые программой не вызываются и фактически из прошивки их компилятор исключил. Все строки кода ниже этой функции становятся безадресными и точки останова поставить невозможно, хотя сама программа будет выполняться в полном объеме. Это особенность (наверно можно причислить к ошибкам) Proteus, а может CVAVR.
radio-kot писал(а):Может хитрость есть какая то?
Удалите или закомментируйте неиспользуемую функцию. Или перенесите ее в самый низ кода, если при дальнейшей разработке она все-таки будет востребована.
Реклама
Аватара пользователя
radio-kot
Собутыльник Кота
Сообщения: 2584
Зарегистрирован: Вт сен 14, 2010 10:27:19

Re: Proteus: вопросы и ответы

Сообщение radio-kot »

СПАСИБО! Вы абсолютно правы! Задействовал все функции в проге и адреса строк появились и асм распределился по Си коду. Ляпота! :beer:
Будете проходить мимо- проходите!
Реклама
amd9800
Опытный кот
Сообщения: 822
Зарегистрирован: Вс июн 02, 2013 12:23:03

Re: Proteus: вопросы и ответы

Сообщение amd9800 »

zifus писал(а):Здравствуйте !!
та модель что у тебя работает неправильно - максимальное ШИМ заполнение 25%.

держи нормальную модель.
Вложения
UC3842internet.zip
(24.09 КБ) 230 скачиваний
Аватара пользователя
Hudgun
Электрический кот
Сообщения: 1071
Зарегистрирован: Пн май 04, 2009 16:43:07
Откуда: Набережные Челны

Re: Proteus: вопросы и ответы

Сообщение Hudgun »

Почему Протеус 7.2 (пробовал 7.9 , 8 beta - результат тот же) не хочет работать с LCD дисплеем когда ножка RW посажена на землю? Судя по скринам в гугле у людей в таком варианте работает... В готовом проекте используется библиотека без выхода RW http://www.mikrocontroller.net/articles ... nsteuerung Мне этот проект исправить под свои нужды надо, а каждый раз прошивать 32 мегу слишком долго (AVR910 от Prottoss'a тормоз :) )

Изображение

P.S. дабы исключить глючность прошивки, специально создавал простой проект с выводом 1 строки и пробовал откидывать RW и сажать его на землю...
Реклама
Эиком - электронные компоненты и радиодетали
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

Hudgun писал(а):Почему Протеус 7.2 (пробовал 7.9 , 8 beta - результат тот же) не хочет работать с LCD дисплеем когда ножка RW посажена на землю?
У меня в 7.10 мои проекты работают с RW на общий провод с моделью LM016L. В Proteus (опять же 7.10, как в более ранних затрудняюсь сказать) есть примеры и с LM032L в которых RW используется. Но если их посадить на общий провод, то схема все равно симулируется, с выдачей соответствующих предупреждений, естественно...
Дадите свой проект - попробую запустить у себя...
Реклама
Аватара пользователя
Hudgun
Электрический кот
Сообщения: 1071
Зарегистрирован: Пн май 04, 2009 16:43:07
Откуда: Набережные Челны

Re: Proteus: вопросы и ответы

Сообщение Hudgun »

хммм, значит более раннюю 7.1 версию надо поискать. ладно попробую.
проект проверочный вот
Вложения
ПРОТЕУС.rar
(12.63 КБ) 216 скачиваний
Реклама
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

Hudgun писал(а):хммм, значит более раннюю 7.1 версию надо поискать
У меня версия 7.10.
Hudgun писал(а):проект проверочный вот
Без RW виснет наглухо на 0,4 секунде.
Ковыряйте код, что-то у Вас там не так. Вот мой пример, рабочий и в Proteus, и в железе. Еще раз повторюсь, в папке SAMPLES Proteus'а есть примеры с этим индикатором.
Brette333
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн янв 06, 2014 23:15:34

Re: Proteus: вопросы и ответы

Сообщение Brette333 »

Привет мои маленькие любители программы Proteus. :)) ,подскажите пожалуйста есть ли возможность в программе измерять температуру деталей.? например резистор хочу помереть.
Аватара пользователя
Murka
Мучитель микросхем
Сообщения: 441
Зарегистрирован: Ср июн 03, 2009 00:20:21
Откуда: Новороссия ЛНР Рубежное -> РФ Калуга
Контактная информация:

Re: Proteus: вопросы и ответы

Сообщение Murka »

Brette333 писал(а):хочу помереть.
Может не надо? Второй попытки не будет!
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Свободу можно завоевать, можно просрать, но высидеть свободу нельзя! ©
Всё, что меня не убивает - делает большую ошибку!
Не зли меня!!! :wink:
Brette333
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн янв 06, 2014 23:15:34

Re: Proteus: вопросы и ответы

Сообщение Brette333 »

Murka писал(а):
Brette333 писал(а):хочу помереть.
Может не надо? Второй попытки не будет!
как это не надо..) я хочу при симуляции или сразу после неё измерять температуру деталей. что, такой возможности нет в этой программе?
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Re: Proteus: вопросы и ответы

Сообщение isx »

Боюсь придётся воспользоваться рассчётами... :dont_know:
Если нажать на паузу, а потом щёлкуть по интересующему резистору, то выйдет инфа о токе, напряжении и мощности.... Эти данные могут помочь в рассчётах...
Аватара пользователя
YS
Друг Кота
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05
Контактная информация:

Re: Proteus: вопросы и ответы

Сообщение YS »

что, такой возможности нет в этой программе?
Тут такое дело - температуру деталей вам вряд ли какой симулятор схем посчитает. Мощность - пожалуйста. А вот температура уже более тонкая материя. Она зависит от геометрии компонента, температуры окружающей среды, характеристик корпуса компонента, наличия радиатора, ориентации детали в пространстве (в.т.ч. и относительно других компонентов), если устройство еще и в корпусе - то и от геометрии и характеристик корпуса. Так что это совершенно отдельные серьезные расчеты.

Такое, в частности, умеет SolidWorks. И вот в него можно подставлять рассчитаные в симуляторе схем мощности, а он рассчитает предполагаемую температуру деталей с учетом всего перечисленного выше и многого другого. :)
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Аватара пользователя
Hudgun
Электрический кот
Сообщения: 1071
Зарегистрирован: Пн май 04, 2009 16:43:07
Откуда: Набережные Челны

Re: Proteus: вопросы и ответы

Сообщение Hudgun »

Soir писал(а): Ковыряйте код, что-то у Вас там не так..
Ума не приложу, что там может быть не так :dont_know:
Спойлер

Код: Выделить всё

#include <mega32.h>

#asm
.equ __lcd_port=0x12
#endasm
#include <lcd.h>
 
void main(void)
{
PORTD=0x00;
DDRD=0x00;
 
lcd_init(16);

lcd_putsf("Hello, world!"); 
}; 
Аватара пользователя
Murka
Мучитель микросхем
Сообщения: 441
Зарегистрирован: Ср июн 03, 2009 00:20:21
Откуда: Новороссия ЛНР Рубежное -> РФ Калуга
Контактная информация:

Re: Proteus: вопросы и ответы

Сообщение Murka »

Hudgun , CVAVR?
Политика России будет выглядеть неоднозначной до тех пор, пока не будет решен исход битвы.
Свободу можно завоевать, можно просрать, но высидеть свободу нельзя! ©
Всё, что меня не убивает - делает большую ошибку!
Не зли меня!!! :wink:
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

Hudgun писал(а):Ума не приложу, что там может быть не так
Не так здесь: #include <lcd.h>
Точнее в подключаемой библиотеке lcd.lib
В ней используется RW, отсюда и проблемы при его отключении. И ковырять нужно там.
Или замените lcd.h на alcd.h
Кстати в CVAVR тоже полно примеров применения индикатора.
Аватара пользователя
Hudgun
Электрический кот
Сообщения: 1071
Зарегистрирован: Пн май 04, 2009 16:43:07
Откуда: Набережные Челны

Re: Proteus: вопросы и ответы

Сообщение Hudgun »

Murka писал(а):Hudgun , CVAVR?
да

Так ладно, c alcd.h дисплей заработал без RW. Значит выходит lcd-routines.h (http://www.mikrocontroller.net/articles ... nsteuerung) который используется в готовом проекте косячный (там уже работатет связка AVR Studio + WinAVR)?

lcd-rotines.c
Спойлер

Код: Выделить всё

// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus
// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
//
// Die Pinbelegung ist über defines in lcd-routines.h einstellbar
 
#include <avr/io.h>
#include "lcd-routines.h"
#include <util/delay.h>
#include <avr/eeprom.h>
 
// sendet ein Datenbyte an das LCD
 
void lcd_data(unsigned char temp1)
{
      LCD_PORT |= (1<<LCD_RS);        // RS auf 1 setzen

   lcd_send(temp1);
}
 
// sendet einen Befehl an das LCD
 
void lcd_command(unsigned char temp1)
{
   LCD_PORT &= ~(1<<LCD_RS);        // RS auf 0 setzen
   
   lcd_send(temp1);
}

//Eigentliche LCD-Zugriffs-Funktion; 4-Bit-Modus
void lcd_send(unsigned char data) {
   // oberes Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | ((data >> 4) & 0x0F);
  _delay_us(5);
  lcd_enable();
   // unteres Nibble setzen
  LCD_PORT = (LCD_PORT & 0xF0) | (data & 0x0F);
  _delay_us(5);
  lcd_enable();
  _delay_us(60);  
  LCD_PORT &= 0xF0;
}

// erzeugt den Enable-Puls
void lcd_enable(void)
{
	LCD_PORT |= (1<<LCD_EN1);
    _delay_us(10);                   // kurze Pause
   // Bei Problemen ggf. Pause gemäß Datenblatt des LCD Controllers verlängern
   // http://www.mikrocontroller.net/topic/80900
   LCD_PORT &= ~(1<<LCD_EN1);
}
 
// Initialisierung: 
// Muss ganz am Anfang des Programms aufgerufen werden.
 
void lcd_init(void)
{
	LCD_DDR = LCD_DDR | 0x0F | (1<<LCD_RS) | (1<<LCD_EN1);   // Port auf Ausgang schalten
	// muss 3mal hintereinander gesendet werden zur Initialisierung
	_delay_ms(30);
	LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x03;
	lcd_enable();

	_delay_ms(5);
	lcd_enable();

	_delay_ms(1);
	lcd_enable();
	_delay_ms(1);
	LCD_PORT = (LCD_PORT & 0xF0 & ~(1<<LCD_RS)) | 0x02;
	_delay_ms(1);
	lcd_enable();
	_delay_ms(1);

	// 4Bit / 2 Zeilen / 5x7
	lcd_command(CMD_SetIFOptions | 0x08);

	// Display ein / Cursor aus / kein Blinken
	lcd_command(CMD_SetDisplayAndCursor | 0x04);

	// inkrement / kein Scrollen    
	lcd_command(CMD_SetEntryMode | 0x02);	
	lcd_clear();
}
 
// Sendet den Befehl zur Löschung des Displays
 
void lcd_clear(void)
{
   lcd_command(CLEAR_DISPLAY);
   _delay_ms(5);
}
 
 
// Schreibt einen String auf das LCD
 
void lcd_string(char *data)
{
    while(*data) {
        lcd_data(*data);
        data++;
    }
}

//String aus EEPROM laden und an LCD senden
void lcd_eep_string(const unsigned char *data)
{	
	unsigned char c;
    while(1) {
		c = eeprom_read_byte(data);
		if(c==0) return;
        lcd_data(c);
        data++;
    }
}
lcd-routines.h
Спойлер

Код: Выделить всё

// Ansteuerung eines HD44780 kompatiblen LCD im 4-Bit-Interfacemodus
// http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
//

void lcd_data(unsigned char temp1);
void lcd_command(unsigned char temp1);
void lcd_send(unsigned char data);
void lcd_string(char *data);
void lcd_enable(void);
void lcd_init(void);
void lcd_clear(void);
void lcd_eep_string(const unsigned char *data);

//LCD-Befehle
#define CMD_SetEntryMode         0x04
#define CMD_SetDisplayAndCursor  0x08
#define CMD_SetIFOptions         0x20
#define CMD_SetCGRAMAddress      0x40    // für Custom-Zeichen
#define CMD_SetDDRAMAddress      0x80    // zum Cursor setzen

//Makros für LCD
#define Line1() SetCursor(1,0)	//An den Anfang der 1. Zeile springen
#define Line2() SetCursor(2,0)	//An den Anfang der 2. Zeile springen

#define SetCursor(y, x) lcd_command((uint8_t)(CMD_SetDDRAMAddress + (0x40*(y-1)) + x)) //An eine bestimmte Position springen

#define LCDLoadCustomChar() lcd_command(CMD_SetCGRAMAddress)	//Custom-Zeichen laden

//Eigene Zeichen
#define LCD_CHAR_OMEGA  244	//Omega-Zeichen
#define LCD_CHAR_U  228		//µ-Zeichen
#define LCD_CHAR_DIODE  0	//Dioden-Icon; wird als Custom-Character erstellt
  
// LCD Befehle
 
#define CLEAR_DISPLAY 0x01
 
// Pinbelegung für das LCD, an verwendete Pins anpassen
 
#define LCD_PORT      PORTD
#define LCD_DDR       DDRD
#define LCD_RS        PD4
#define LCD_EN1       PD5
Brette333
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн янв 06, 2014 23:15:34

Re: Proteus: вопросы и ответы

Сообщение Brette333 »

Будьте добры, подскажите поподробней как частоту мерять? хочу знать какая частоа на светодиод падает.
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

Brette333 писал(а):...как частоту мерять? хочу знать какая частоа на светодиод падает.
Как частота на светодиод падает я не знаю, но измерять можно так, как во вложении.
Вложения
freq.zip
(9.03 КБ) 186 скачиваний
Brette333
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Пн янв 06, 2014 23:15:34

Re: Proteus: вопросы и ответы

Сообщение Brette333 »

спасибо. ещё вопросик. как заменить компонент на другой компонент не удаляя старый. ?
Soir
Друг Кота
Сообщения: 3956
Зарегистрирован: Ср окт 14, 2009 10:37:49
Откуда: Украина

Re: Proteus: вопросы и ответы

Сообщение Soir »

Brette333 писал(а):... как заменить компонент на другой компонент не удаляя старый. ?
Это задача из серии "...нарисовать семь красных линий. Все они должны быть строго перпендикулярны, и кроме того, некоторые нужно нарисовать зеленым цветом, а еще некоторые — прозрачным..."?
Ответить

Вернуться в «Цифровая техника»