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

 
 
> разочеровался в 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
 
Start new topic
Ответов
*SERG
сообщение Jan 19 2006, 13:42
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 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

Сообщений в этой теме
- *SERG   разочеровался в PROTEUSE   Jan 19 2006, 04:45
- - haker_fox   Цитата(*SERG @ Jan 19 2006, 12:45) Рабо...   Jan 19 2006, 05:36
- - *SERG   Сижу щас и собираю JTAG, посмотрю что получится   Jan 19 2006, 07:32
- - defunct   Цитата(*SERG @ Jan 19 2006, 06:45) AVRSTU...   Jan 19 2006, 08:50
- - DeXteR   Цитата(*SERG @ Jan 19 2006, 08:45) Рабо...   Jan 19 2006, 09:43
- - DeXteR   Если хочеш - Скинь исходники в архиве с откомпилин...   Jan 19 2006, 14:05
- - bodja74   У меня на ПРОТЕУСЕ прекрасно работает мастер-прием...   Jan 19 2006, 22:39
|- - *SERG   Цитата(bodja74 @ Jan 20 2006, 01:39) У ме...   Jan 20 2006, 03:15
|- - bodja74   Цитата(*SERG @ Jan 20 2006, 06:15) Подпро...   Jan 20 2006, 18:36
- - *SERG   Proteus качнул из интернета, но ничего неломал, пр...   Jan 20 2006, 04:49
- - *SERG   Вот ещё одина непонятка, кусок из вс ей программы ...   Jan 20 2006, 05:21
- - DeXteR   Протеус качал от сюда http://www.rivstech.ru/downl...   Jan 20 2006, 09:46
|- - *SERG   Цитата(DeXteR @ Jan 20 2006, 12:46) Проте...   Jan 20 2006, 11:33
- - *SERG   Да вроде получилось что то, на железе проверю сего...   Jan 21 2006, 05:46
- - James D.   От себя добавлю: после того, как вы изменили свою ...   Jan 21 2006, 20:32
- - _Diman_   Кстати в PROTEUS некоторые модели AVR глючные, нап...   Jan 22 2006, 19:54
- - *SERG   DeXteR Проверь файл пожалуста на своём протеусе. И...   Jan 23 2006, 08:50
- - DeXteR   Цитата(*SERG @ Jan 23 2006, 12:50) DeXteR...   Jan 23 2006, 10:22
|- - *SERG   Цитата(DeXteR @ Jan 23 2006, 13:22) Цитат...   Jan 23 2006, 10:52
- - DeXteR   =) Просто отладка в Сишном отладчике идет както не...   Jan 23 2006, 11:25
- - *SERG   Вовсем виноват человеческий фактор =) + Глюкавость...   Jan 23 2006, 11:31
- - DeXteR   Лучше проконсультируйся по настройкам Линкера для ...   Jan 23 2006, 11:52
- - *SERG   А какой ты прогой воспользовался и какой файл там ...   Jan 23 2006, 11:57
- - DeXteR   Я использовал КОФ и пробывал ХЕКС Там тожесамое. ...   Jan 23 2006, 12:40
- - *SERG   А что такое линкер??? И с чем его едят??? Кстати ...   Jan 23 2006, 12:48
- - DeXteR   В железе будет хуже чем в протеусе - вектора нетам...   Jan 23 2006, 13:36
|- - *SERG   Цитата(DeXteR @ Jan 23 2006, 16:36) В жел...   Jan 23 2006, 15:45
- - DeXteR   Этого к сожалению незнаю Никогда непользовался тв...   Jan 23 2006, 16:10
|- - *SERG   Цитата(DeXteR @ Jan 23 2006, 19:10) Этого...   Jan 23 2006, 16:25
- - bodja74   +00000000: 940C1C00 JMP 0x00001C00 ...   Jan 23 2006, 21:24
|- - *SERG   Цитата(bodja74 @ Jan 24 2006, 00:24) +000...   Jan 24 2006, 03:14
- - *SERG   ДЕЙСТВИТЕЛЬНО, прога записанна в сектор бутлоадера...   Jan 24 2006, 03:38
- - *SERG   Вот файл с векторм (расширение txt замените на rar...   Jan 24 2006, 03:58
- - DeXteR   Твоя версия Протеуса похоже рабочая. Вектора стоят...   Jan 24 2006, 08:27
- - bodja74   Если прогу пишете для бутлоадера попробуйте помен...   Jan 25 2006, 00:14
- - *SERG   Всё.......................... наконецто получилось...   Jan 25 2006, 03:08
- - DeXteR   Поздравляю =) В железе тоже пашет ??   Jan 25 2006, 08:13
|- - *SERG   Цитата(DeXteR @ Jan 25 2006, 11:13) Поздр...   Jan 25 2006, 15:58
- - san822   Я смотрю тут много "Протеусников" собрал...   Jan 25 2006, 13:24
|- - ROC   Цитата(san822 @ Jan 25 2006, 16:24) Я смо...   Jan 25 2006, 13:32
- - san822   И где же удалось найти ? Какие сайты пришлось пе...   Jan 25 2006, 13:49
- - DeXteR   НиКАкиХ =) Для моих задачь пока прикрасно подходя...   Jan 25 2006, 14:20
- - bodja74   Да согласен DeXter , моделей вполне навалом для то...   Jan 25 2006, 17:31
|- - *SERG   Цитата(bodja74 @ Jan 25 2006, 20:31) Да с...   Jan 25 2006, 19:38
||- - osnwt   Цитата(*SERG @ Jan 25 2006, 21:38) Блииии...   Jan 26 2006, 19:09
|- - ROC   Цитата(bodja74 @ Jan 25 2006, 20:31) Да с...   Jan 25 2006, 19:40
|- - bodja74   Цитата(ROC @ Jan 25 2006, 22:40) Да? Неки...   Jan 25 2006, 21:21
|- - ROC   Цитата(bodja74 @ Jan 26 2006, 00:21) Ну н...   Jan 26 2006, 16:16
|- - bodja74   Цитата(ROC @ Jan 26 2006, 19:16) Нет. Не ...   Jan 26 2006, 19:47
|- - ROC   Цитата(bodja74 @ Jan 26 2006, 22:47) Аяяя...   Jan 27 2006, 08:35
- - DeXteR   Присоединяюсь к bodja74 + скажу от себя То что ...   Jan 26 2006, 10:41


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

 


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


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