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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> разочеровался в PROTEUSE, может есть чтонибудь аналогичное
*SERG
сообщение Jan 19 2006, 04:45
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



sad.gif
Работает только с маленькими програмками, не любит подпрограммы обработки прерывания (то работает то нет, так и не понял в чём проблемма)

AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jan 19 2006, 05:36
Сообщение #2


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(*SERG @ Jan 19 2006, 12:45) *
sad.gif
Работает только с маленькими програмками, не любит подпрограммы обработки прерывания (то работает то нет, так и не понял в чём проблемма)

AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал


Ну чтож... у меня тоже самое было... в железе все работало, а в Proteus'е - нет! Потом на Телесистемах мне сказали, что все эти софтовые отладчики - игрушки. Я их и не использовал ни разу, не Proteus, не Vmlab. Хотя вполне возможно, что где-то они могут и помочь.

А насчет схемной отладки - так лучше реально собранного железа ничего быть не может, а если еще Jtag прикрутить, то вообще жизнь медом кажется smile.gif Правда я и Jtag не использовал, я про него говорю со слов вполне компетентных людей, которым я доверяю.

P.S. Да вот еще... AVRStudio на мой взгляд работает вполне сносно, правда есть тоже глюки, но я ни разу не встречался с ними. В основном я на студии проверял ход првильности алгоритма и время выполнения "куска" кода.

Сообщение отредактировал haker_fox - Jan 19 2006, 05:38


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 19 2006, 07:32
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



smile.gif
Сижу щас и собираю JTAG, посмотрю что получится
Go to the top of the page
 
+Quote Post
defunct
сообщение Jan 19 2006, 08:50
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(*SERG @ Jan 19 2006, 06:45) *
AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал


Дык а зачем оно Вам? Эмуляторы тормозят.. на готовом железе куда приятней и полезней отлаживать. AvrStudio+ jtag+железо - лучшего отладчика для avr не найти.
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 19 2006, 09:43
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Цитата(*SERG @ Jan 19 2006, 08:45) *
sad.gif
Работает только с маленькими програмками, не любит подпрограммы обработки прерывания (то работает то нет, так и не понял в чём проблемма)

AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал


Наверна проблемма твоя в версии Протеуса
У меня 6.73 СП3 ПРО -
Счас работаю с программой на 17к (атмега 32) + Прога на 4 К (атмега 8) + модель 24с04
Когда работал в 6.5 - проблеммы были.
Тоже говорят мне о Демо версиях переделаных в ПРО

Аналогов программы нету (развечто WMLAB но он корявый и неудобный)

Ищи проблеммы у себя
Для отладки советую отключить оптимизацию кода компиллером (если это возможно)

По крайне мере с отладкой формата IAR проблемм нету.

На саите производителя Протеуса есть форум
Может тебе там чтото подскажут.

Про эмуляторы:
1. Эмулятор останавливает процессор а вся переферия + обект управления проболжает безконтрольно работать.
2. Есть еще Реалтайм мониторы но они крадут быстродействие ....
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 19 2006, 13:42
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



У меня то ж такая версия, но код в Си написан, может в этом и проблемма???
А на счёт ошибок....AWRSTUDIO работает как нада а Протеусу что то не нравится, вот элемнтарный пример:
Всё смотреть не надо, достаточно того, что есть подпрограмма обработки прерывания( interrupt [TWI] void twi_isr(void)) , все прерывания разрешены(#asm("sei")).........
формируем СТАРТ с разрешением последушего прерывания....
А после посылки старта, программа даже не переходит на подпрограмму прерывания, хотя все условия выполняются (смотрел регистры)............
Ну вот и не пойму в чём проблемма то?

/*****************************************************
This program was produced by the
CodeWizardAVR V1.24.6 Standard
Automatic Program Generator
© Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
e-mail:office@hpinfotech.com

Project :
Version :
Date : 18.01.2006
Author : TeleSys Embedded
Company : FastmanSoft Inc.
Comments:


Chip type : ATmega16
Program type : Application
Clock frequency : 16,000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/

#include <mega16.h>

#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7

#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)

// USART Receiver buffer
#define RX_BUFFER_SIZE 8
char rx_buffer[RX_BUFFER_SIZE];

#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif

// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;

// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
#endif

// USART Transmitter buffer
#define TX_BUFFER_SIZE 8
char tx_buffer[TX_BUFFER_SIZE];

#if TX_BUFFER_SIZE<256
unsigned char tx_wr_index,tx_rd_index,tx_counter;
#else
unsigned int tx_wr_index,tx_rd_index,tx_counter;
#endif

// USART Transmitter interrupt service routine
interrupt [USART_TXC] void usart_tx_isr(void)
{
if (tx_counter)
{
--tx_counter;
UDR=tx_buffer[tx_rd_index];
if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
};
}

#ifndef _DEBUG_TERMINAL_IO_
// Write a character to the USART Transmitter buffer
#define _ALTERNATE_PUTCHAR_
#pragma used+
void putchar(char c)
{
while (tx_counter == TX_BUFFER_SIZE);
#asm("cli")
if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
{
tx_buffer[tx_wr_index]=c;
if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
++tx_counter;
}
else
UDR=c;
#asm("sei")
}
#pragma used-
#endif

// Standard Input/Output functions
#include <stdio.h>

// 2 Wire bus interrupt service routine
interrupt [TWI] void twi_isr(void)
{
#asm
nop;
#endasm
// Place your code here

}

// Declare your global variables here

void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// 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;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRB=0xD8;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x67;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// 2 Wire Bus initialization
// Generate Acknowledge Pulse: On
// 2 Wire Bus Slave Address: 0h
// General Call Recognition: On
// Bit Rate: 400,000 kHz
TWSR=0x00;
TWBR=0x0C;
TWAR=0x01;
TWCR=0x45;

// Global enable interrupts
#asm("sei")
TWCR=0B10100101;//?????
while (1)
{
// Place your code here

};
}


Цитата(defunct @ Jan 19 2006, 11:50) *
Цитата(*SERG @ Jan 19 2006, 06:45) *

AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал


Дык а зачем оно Вам? Эмуляторы тормозят.. на готовом железе куда приятней и полезней отлаживать. AvrStudio+ jtag+железо - лучшего отладчика для avr не найти.


К этому пока всё и идёт smile.gif
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 19 2006, 14:05
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Если хочеш - Скинь исходники в архиве с откомпилиным КОФом
Ато у мя нету твоего компиллера
И файл с можелью протеуса тоже пригодица
Разберемся вместе
Проект никому непродам =) Обещаю =)

У меня толькачто заработал ТВИ Слейв на атмеге 8 под протеусом =)
Но прирывания я неиспользовал.

ukrniisip@mail.ru

А протеус точно ПРО ???

Ты с диска ставил или демо ломал ??
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 19 2006, 22:39
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



У меня на ПРОТЕУСЕ прекрасно работает мастер-приемник,мастер-передачик как по прерыванию так и без,Слейв-приемник и слейв-передатчик по прерыванию.Версия демо 6.73 SP0.
Так что ройтесь в своем коде.
Смотрел вашу инициализацию TWI в принципе верно.TWCR=$45 не нужно,лишнее.
Я в Си плох,так что скажите где у вас вектор на прерываение TWI,может быть там засада.
Кроме того в таблице векторов TWI почти последнее, и при таком количестве прерываний вполне
может "пасти хвосты"
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 20 2006, 03:15
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Цитата(bodja74 @ Jan 20 2006, 01:39) *
У меня на ПРОТЕУСЕ прекрасно работает мастер-приемник,мастер-передачик как по прерыванию так и без,Слейв-приемник и слейв-передатчик по прерыванию.Версия демо 6.73 SP0.
Так что ройтесь в своем коде.
Смотрел вашу инициализацию TWI в принципе верно.TWCR=$45 не нужно,лишнее.
Я в Си плох,так что скажите где у вас вектор на прерываение TWI,может быть там засада.
Кроме того в таблице векторов TWI почти последнее, и при таком количестве прерываний вполне
может "пасти хвосты"


На счёт TWCR=$45 - это понятно, т.к потом его всёравно писать, генератор CVAVR просто так генерит, да и собственно проблемма не в этом smile.gif

Подпрограмма прерывания начинеатся со строки interrupt [TWI] void twi_isr(void), там обна вставка на асме "nop" и всё. ПРОБЛЕММА ТО В ТОМ ЧТО ОН ДАЖЕ НЕ НА ПРЕРЫВАНИЕ НЕ ПЕРЕХОДИТ

Цитата(DeXteR @ Jan 19 2006, 17:05) *
Если хочеш - Скинь исходники в архиве с откомпилиным КОФом
Ато у мя нету твоего компиллера
И файл с можелью протеуса тоже пригодица
Разберемся вместе
Проект никому непродам =) Обещаю =)

У меня толькачто заработал ТВИ Слейв на атмеге 8 под протеусом =)
Но прирывания я неиспользовал.

ukrniisip@mail.ru

А протеус точно ПРО ???

Ты с диска ставил или демо ломал ??


ОК сегодня что нибудь элементарное напишу и скину, проектом не особо охото раскидываться smile.gif blush.gif
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 20 2006, 04:49
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Proteus качнул из интернета, но ничего неломал, при установке кнопки понажимал, где я так понял надо было вводить фаил лецензии, у меня там перепрыгнуло что то из одного окошка в другое. Нажал отмена и вперёд всё установилось.
При входе в HELP->ABOUT ISIS такая вот картина. Может дествительно ломать ещё дополнительно как то надо. Или если есть у тебя с диска скинь пожалуста на ISQSERG@YANDEX.RU
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 20 2006, 05:21
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Вот ещё одина непонятка, кусок из вс ей программы

while (!(col_pered_bait_simvola==0))//
{
mass_i2_peredan=0;
pered_bait_mass_i2=0;
mas_peredachi_i2[0]=0b10100000;
mas_peredachi_i2[2]=*ukaz_m_hl;
mas_peredachi_i2[1]=*++ukaz_m_hl;
mas_peredachi_i2[3]=*++ukazatel[prinat_ussap-delta_hex];
col_simv_pered_bait_mass_i2=4;
TWCR=0B10100101;

while (mass_i2_peredan==0)
{
};
TWCR=0B10010101;
delay_us(400);
col_pered_bait_simvola--;
adres_m++;
*--ukaz_m_hl;
};

Когда первый раз заходит в цикл "mass_i2_peredan=0;" понимает и зацикливается на этом "while (mass_i2_peredan==0) { };", а при входе второй раз просто игнорирует и проскакивает этот цикл. angry.gif
Чесно говоря уже неделю или две БАДАЮСЬ с этим протеусом и кроме "СЮРПРИЗОВ" ничего хорошего sad.gif

Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701a


Что то такое ощущение либо протеус не полный какойто, либо его всё таки крякать надо. Таких же элементарных ошибок быть не доложно!!!

Сообщение отредактировал *SERG - Jan 20 2006, 05:48
Go to the top of the page
 
+Quote Post
DeXteR
сообщение Jan 20 2006, 09:46
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 319
Регистрация: 2-08-05
Из: Одесса
Пользователь №: 7 287



Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701a


Это демоверсия половина файлов которой заменино на про и заставлино работать =)
Глючить такая штука должна по определению. smile.gif

Фулл версия весит 300 метров
К сожалению немогу залить сюда
Инет слабенький.

Если есть знакомые в Одессе - присылайте =)
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 20 2006, 11:33
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Цитата(DeXteR @ Jan 20 2006, 12:46) *
Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701a


Это демоверсия половина файлов которой заменино на про и заставлино работать =)
Глючить такая штука должна по определению. smile.gif

Фулл версия весит 300 метров
К сожалению немогу залить сюда
Инет слабенький.

Если есть знакомые в Одессе - присылайте =)


ohmy.gif ohmy.gif ohmy.gif УПС........................материца не охота, вотблин а........................столько времени............эх........... sad.gif
Ну хорошо хоть выяснилось что к чему, всё что не делается всё к лучшему. smile.gif
Огроменное спасибо!!!
Буду искать

А на ftp есть полная версия???

Ой сорри, я и не заметил что меня в "свои" перевели. УРААААААААААААААААААААА товарищчи!!! biggrin.gif biggrin.gif biggrin.gif
Спасибо модерам и админам!!!
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jan 20 2006, 18:36
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(*SERG @ Jan 20 2006, 06:15) *
Подпрограмма прерывания начинеатся со строки interrupt [TWI] void twi_isr(void), там обна вставка на асме "nop" и всё. ПРОБЛЕММА ТО В ТОМ ЧТО ОН ДАЖЕ НЕ НА ПРЕРЫВАНИЕ НЕ ПЕРЕХОДИТ


Ну я это понял ,я просто спрашивал по какому адрессу у вас находиться вектор на это прерывание,
вполне возможно он расположен не по тому адрессу.Кроме того есть ограничение на использование
команды относительного перехода в пределах 2048 байт,вполне возможно ваша подпрограмма
находиться за этим пределом.

300 кБ ПРОТЕУС это прога с пдфками (документацией на компоненты)
То что демка слабовата на хелп это не секрет.
Начиная с 6.2 также урезали SDK для создания своих моделей.
Скорее всего Вы наложили версию поновее поверх и перетащили ключи в ЛИЦЕНЗЕ.ЭХЭ
Если у Вас проект сохраняется а также можете делать трассировку плат и сохранять,считайте
что у Вас прога работает.

Ну а заморочки в любой проге есть,не стоит так растраиваться,что ПРОТЕУС не может ткнуть
пальцем на Ваши ошибки в проге.
Go to the top of the page
 
+Quote Post
*SERG
сообщение Jan 21 2006, 05:46
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 274
Регистрация: 10-08-05
Из: Екатеринбург
Пользователь №: 7 517



Да вроде получилось что то, на железе проверю сегодня и выложу. TWI по прерываниям
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 10th July 2025 - 05:02
Рейтинг@Mail.ru


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