|
|
  |
разочеровался в PROTEUSE, может есть чтонибудь аналогичное |
|
|
|
Jan 19 2006, 05:36
|

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

|
Цитата(*SERG @ Jan 19 2006, 12:45)  Работает только с маленькими програмками, не любит подпрограммы обработки прерывания (то работает то нет, так и не понял в чём проблемма) AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал Ну чтож... у меня тоже самое было... в железе все работало, а в Proteus'е - нет! Потом на Телесистемах мне сказали, что все эти софтовые отладчики - игрушки. Я их и не использовал ни разу, не Proteus, не Vmlab. Хотя вполне возможно, что где-то они могут и помочь. А насчет схемной отладки - так лучше реально собранного железа ничего быть не может, а если еще Jtag прикрутить, то вообще жизнь медом кажется  Правда я и Jtag не использовал, я про него говорю со слов вполне компетентных людей, которым я доверяю. P.S. Да вот еще... AVRStudio на мой взгляд работает вполне сносно, правда есть тоже глюки, но я ни разу не встречался с ними. В основном я на студии проверял ход првильности алгоритма и время выполнения "куска" кода.
Сообщение отредактировал haker_fox - Jan 19 2006, 05:38
--------------------
Выбор.
|
|
|
|
|
Jan 19 2006, 09:43
|

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

|
Цитата(*SERG @ Jan 19 2006, 08:45)  Работает только с маленькими програмками, не любит подпрограммы обработки прерывания (то работает то нет, так и не понял в чём проблемма) AVRSTUDIO есть, но он програмный отладчик, лучше бы схемный. Может есть что нибудь аналогичное PROTEUSU, что б с COF файлами работал, или каким то образом Си понимал Наверна проблемма твоя в версии Протеуса У меня 6.73 СП3 ПРО - Счас работаю с программой на 17к (атмега 32) + Прога на 4 К (атмега 8) + модель 24с04 Когда работал в 6.5 - проблеммы были. Тоже говорят мне о Демо версиях переделаных в ПРО Аналогов программы нету (развечто WMLAB но он корявый и неудобный) Ищи проблеммы у себя Для отладки советую отключить оптимизацию кода компиллером (если это возможно) По крайне мере с отладкой формата IAR проблемм нету. На саите производителя Протеуса есть форум Может тебе там чтото подскажут. Про эмуляторы: 1. Эмулятор останавливает процессор а вся переферия + обект управления проболжает безконтрольно работать. 2. Есть еще Реалтайм мониторы но они крадут быстродействие ....
|
|
|
|
|
Jan 19 2006, 13:42
|

Местный
  
Группа: Свой
Сообщений: 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.come-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 не найти. К этому пока всё и идёт
|
|
|
|
|
Jan 20 2006, 03:15
|

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

|
Цитата(bodja74 @ Jan 20 2006, 01:39)  У меня на ПРОТЕУСЕ прекрасно работает мастер-приемник,мастер-передачик как по прерыванию так и без,Слейв-приемник и слейв-передатчик по прерыванию.Версия демо 6.73 SP0. Так что ройтесь в своем коде. Смотрел вашу инициализацию TWI в принципе верно.TWCR=$45 не нужно,лишнее. Я в Си плох,так что скажите где у вас вектор на прерываение TWI,может быть там засада. Кроме того в таблице векторов TWI почти последнее, и при таком количестве прерываний вполне может "пасти хвосты" На счёт TWCR=$45 - это понятно, т.к потом его всёравно писать, генератор CVAVR просто так генерит, да и собственно проблемма не в этом Подпрограмма прерывания начинеатся со строки interrupt [TWI] void twi_isr(void), там обна вставка на асме "nop" и всё. ПРОБЛЕММА ТО В ТОМ ЧТО ОН ДАЖЕ НЕ НА ПРЕРЫВАНИЕ НЕ ПЕРЕХОДИТ Цитата(DeXteR @ Jan 19 2006, 17:05)  Если хочеш - Скинь исходники в архиве с откомпилиным КОФом Ато у мя нету твоего компиллера И файл с можелью протеуса тоже пригодица Разберемся вместе Проект никому непродам =) Обещаю =)
У меня толькачто заработал ТВИ Слейв на атмеге 8 под протеусом =) Но прирывания я неиспользовал.
ukrniisip@mail.ru
А протеус точно ПРО ???
Ты с диска ставил или демо ломал ?? ОК сегодня что нибудь элементарное напишу и скину, проектом не особо охото раскидываться
|
|
|
|
|
Jan 20 2006, 04:49
|

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

|
Proteus качнул из интернета, но ничего неломал, при установке кнопки понажимал, где я так понял надо было вводить фаил лецензии, у меня там перепрыгнуло что то из одного окошка в другое. Нажал отмена и вперёд всё установилось. При входе в HELP->ABOUT ISIS такая вот картина. Может дествительно ломать ещё дополнительно как то надо. Или если есть у тебя с диска скинь пожалуста на ISQSERG@YANDEX.RU
Эскизы прикрепленных изображений
|
|
|
|
|
Jan 20 2006, 05:21
|

Местный
  
Группа: Свой
Сообщений: 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) { };", а при входе второй раз просто игнорирует и проскакивает этот цикл. Чесно говоря уже неделю или две БАДАЮСЬ с этим протеусом и кроме "СЮРПРИЗОВ" ничего хорошего  Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701aЧто то такое ощущение либо протеус не полный какойто, либо его всё таки крякать надо. Таких же элементарных ошибок быть не доложно!!!
Сообщение отредактировал *SERG - Jan 20 2006, 05:48
|
|
|
|
|
Jan 20 2006, 09:46
|

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

|
Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701aЭто демоверсия половина файлов которой заменино на про и заставлино работать =) Глючить такая штука должна по определению. Фулл версия весит 300 метров К сожалению немогу залить сюда Инет слабенький. Если есть знакомые в Одессе - присылайте =)
|
|
|
|
|
Jan 20 2006, 11:33
|

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

|
Цитата(DeXteR @ Jan 20 2006, 12:46)  Протеус качал от сюда http://www.rivstech.ru/downloads/index.php...c2988398337701aЭто демоверсия половина файлов которой заменино на про и заставлино работать =) Глючить такая штука должна по определению. Фулл версия весит 300 метров К сожалению немогу залить сюда Инет слабенький. Если есть знакомые в Одессе - присылайте =)  УПС........................материца не охота, вотблин а........................столько времени............эх........... Ну хорошо хоть выяснилось что к чему, всё что не делается всё к лучшему. Огроменное спасибо!!! Буду искать А на ftp есть полная версия??? Ой сорри, я и не заметил что меня в "свои" перевели. УРААААААААААААААААААААА товарищчи!!! Спасибо модерам и админам!!!
|
|
|
|
|
Jan 20 2006, 18:36
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(*SERG @ Jan 20 2006, 06:15)  Подпрограмма прерывания начинеатся со строки interrupt [TWI] void twi_isr(void), там обна вставка на асме "nop" и всё. ПРОБЛЕММА ТО В ТОМ ЧТО ОН ДАЖЕ НЕ НА ПРЕРЫВАНИЕ НЕ ПЕРЕХОДИТ Ну я это понял ,я просто спрашивал по какому адрессу у вас находиться вектор на это прерывание, вполне возможно он расположен не по тому адрессу.Кроме того есть ограничение на использование команды относительного перехода в пределах 2048 байт,вполне возможно ваша подпрограмма находиться за этим пределом. 300 кБ ПРОТЕУС это прога с пдфками (документацией на компоненты) То что демка слабовата на хелп это не секрет. Начиная с 6.2 также урезали SDK для создания своих моделей. Скорее всего Вы наложили версию поновее поверх и перетащили ключи в ЛИЦЕНЗЕ.ЭХЭ Если у Вас проект сохраняется а также можете делать трассировку плат и сохранять,считайте что у Вас прога работает. Ну а заморочки в любой проге есть,не стоит так растраиваться,что ПРОТЕУС не может ткнуть пальцем на Ваши ошибки в проге.
|
|
|
|
|
Jan 23 2006, 10:22
|

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

|
Цитата(*SERG @ Jan 23 2006, 12:50)  DeXteR Проверь файл пожалуста на своём протеусе. Интересно как будет работать Код +00000000: 940C1C00 JMP 0x00001C00 Jump +00000002: 0000 NOP No operation +00000003: 0000 NOP No operation +00000004: 0000 NOP No operation +00000005: 0000 NOP No operation +00000006: 0000 NOP No operation +00000007: 0000 NOP No operation +00000008: 0000 NOP No operation +00000009: 0000 NOP No operation +0000000A: 0000 NOP No operation +0000000B: 0000 NOP No operation +0000000C: 0000 NOP No operation +0000000D: 0000 NOP No operation +0000000E: 0000 NOP No operation +0000000F: 0000 NOP No operation +00000010: 0000 NOP No operation +00000011: 0000 NOP No operation +00000012: 0000 NOP No operation +00000013: 0000 NOP No operation +00000014: 0000 NOP No operation +00000015: 0000 NOP No operation +00000016: 0000 NOP No operation +00000017: 0000 NOP No operation +00000018: 0000 NOP No operation +00000019: 0000 NOP No operation +0000001A: 0000 NOP No operation +0000001B: 0000 NOP No operation +0000001C: 0000 NOP No operation +0000001D: 0000 NOP No operation +0000001E: 0000 NOP No operation +0000001F: 0000 NOP No operation +00000020: 0000 NOP No operation +00000021: 0000 NOP No operation +00000022: 0000 NOP No operation +00000023: 0000 NOP No operation +00000024: 0000 NOP No operation +00000025: 0000 NOP No operation +00000026: 0000 NOP No operation +00000027: 0000 NOP No operation +00000028: 0000 NOP No operation +00000029: 0000 NOP No operation +0000002A: 0000 NOP No operation +0000002B: 0000 NOP No operation +0000002C: 0000 NOP No operation +0000002D: 0000 NOP No operation +0000002E: 0000 NOP No operation +0000002F: 0000 NOP No operation +00000030: 0000 NOP No operation +00000031: 0000 NOP No operation +00000032: 0000 NOP No operation +00000033: 0000 NOP No operation +00000034: 0000 NOP No operation +00000035: 0000 NOP No operation +00000036: 0000 NOP No operation +00000037: 0000 NOP No operation +00000038: 0000 NOP No operation +00000039: 0000 NOP No operation +0000003A: 0000 NOP No operation +0000003B: 0000 NOP No operation +0000003C: 0000 NOP No operation +0000003D: 0000 NOP No operation +0000003E: 0000 NOP No operation Прирывания непроисходит потомучто нету вектора =) S A0 A 00 A 02 A 01 A P S A0 A 00 A 02 A Sr A1 A 01 N Это то что видно в I2C мониторе
|
|
|
|
|
Jan 23 2006, 10:52
|

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

|
Цитата(DeXteR @ Jan 23 2006, 13:22)  Цитата(*SERG @ Jan 23 2006, 12:50)  DeXteR Проверь файл пожалуста на своём протеусе. Интересно как будет работать
Код +00000000: 940C1C00 JMP 0x00001C00 Jump +00000002: 0000 NOP No operation +00000003: 0000 NOP No operation +00000004: 0000 NOP No operation +00000005: 0000 NOP No operation +00000006: 0000 NOP No operation +00000007: 0000 NOP No operation +00000008: 0000 NOP No operation +00000009: 0000 NOP No operation +0000000A: 0000 NOP No operation +0000000B: 0000 NOP No operation +0000000C: 0000 NOP No operation +0000000D: 0000 NOP No operation +0000000E: 0000 NOP No operation +0000000F: 0000 NOP No operation +00000010: 0000 NOP No operation +00000011: 0000 NOP No operation +00000012: 0000 NOP No operation +00000013: 0000 NOP No operation +00000014: 0000 NOP No operation +00000015: 0000 NOP No operation +00000016: 0000 NOP No operation +00000017: 0000 NOP No operation +00000018: 0000 NOP No operation +00000019: 0000 NOP No operation +0000001A: 0000 NOP No operation +0000001B: 0000 NOP No operation +0000001C: 0000 NOP No operation +0000001D: 0000 NOP No operation +0000001E: 0000 NOP No operation +0000001F: 0000 NOP No operation +00000020: 0000 NOP No operation +00000021: 0000 NOP No operation +00000022: 0000 NOP No operation +00000023: 0000 NOP No operation +00000024: 0000 NOP No operation +00000025: 0000 NOP No operation +00000026: 0000 NOP No operation +00000027: 0000 NOP No operation +00000028: 0000 NOP No operation +00000029: 0000 NOP No operation +0000002A: 0000 NOP No operation +0000002B: 0000 NOP No operation +0000002C: 0000 NOP No operation +0000002D: 0000 NOP No operation +0000002E: 0000 NOP No operation +0000002F: 0000 NOP No operation +00000030: 0000 NOP No operation +00000031: 0000 NOP No operation +00000032: 0000 NOP No operation +00000033: 0000 NOP No operation +00000034: 0000 NOP No operation +00000035: 0000 NOP No operation +00000036: 0000 NOP No operation +00000037: 0000 NOP No operation +00000038: 0000 NOP No operation +00000039: 0000 NOP No operation +0000003A: 0000 NOP No operation +0000003B: 0000 NOP No operation +0000003C: 0000 NOP No operation +0000003D: 0000 NOP No operation +0000003E: 0000 NOP No operation Прирывания непроисходит потомучто нету вектора =) S A0 A 00 A 02 A 01 A P S A0 A 00 A 02 A Sr A1 A 01 N Это то что видно в I2C мониторе  чудеса какието, если в Си написано (загрузить coff), то при отладке программы она прыгает на прерывание, это видно в отладчике, а из выше написанного на асме следует что прерываний нет  Ни чего не понимаю!!!
|
|
|
|
|
Jan 23 2006, 11:31
|

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

|
Вовсем виноват человеческий фактор =) + Глюкавость Всяких компиляторов =) Хе, больше просто некому  Буду бится дальше. А так то интересный результат............... По этому наверно и аврстудио на прерывания не реагирует, потомучто его нат в асме, придётся асм вставку писать наверно
|
|
|
|
|
Jan 23 2006, 11:57
|

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

|
А какой ты прогой воспользовался и какой файл там открыл, чтоб в таком виде код получить??? Токрыл файл с расширение obj (в AVRSTUDIO), пишет что вектор есть ;INTERRUPT VECTORS JMP __RESET JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP 0x00 JMP _twi_isr - вот он JMP 0x00 JMP 0x00 JMP 0x00 И если там же открыть файл асм, то всё ок, по этой ссылке и начинается программа обработки прерывания
|
|
|
|
|
Jan 23 2006, 15:45
|

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

|
Цитата(DeXteR @ Jan 23 2006, 16:36)  В железе будет хуже чем в протеусе - вектора нетам Или ты их уже переставил наместо Линкер - То что делает из скомпиленого ОБЖ файла ХЕКС и КОФ Входит в состав твоего Си компилятора
У тебя ОБЖ нормальный А КОФФ и ХЕКС - кривой Так и есть, ерунда какаято, то ж также делает, только с одной ячейкой работает и всё............. а потом ерунда какаято А как в этот линкер залесть и изменить там что нибудь реально или нет???
|
|
|
|
|
Jan 24 2006, 03:14
|

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

|
Цитата(bodja74 @ Jan 24 2006, 00:24)  +00000000: 940C1C00 JMP 0x00001C00 Jump
Смахивает на выход в сектор бутлоадера,гляньте свои настройки,может не догадываясь пишете прогу под него.
Кстати нашел где можно подключить в протеусе внешний файл ЕЕПРОМ,в том же списке где указываются фузы. С настройками всё ок. Но возможно что прогу которую прикрепил - для бутлоадера, но помоему она должна работать и там и там
|
|
|
|
|
Jan 24 2006, 03:58
|

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

|
Вот файл с векторм (расширение txt замените на rar и всё распакуется, почемуто не разрешает с расширением rar прикреплять), старый файл удалил. DEXTER ПРОВЕРЬ ПОЖАЛУСТА в ПРОТЕУСЕ. Сорри за назойливойсть ЗЫ Или кто нибудь, проверьте на рабочей версии протеуса
|
|
|
|
|
Jan 25 2006, 03:08
|

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

|
Всё.......................... наконецто получилось с помощью DEXTERa Распаковывается так же как выше прикреплённый
|
|
|
|
|
Jan 25 2006, 13:32
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(san822 @ Jan 25 2006, 16:24)  Я смотрю тут много "Протеусников" собралось. В связи с этим не могу не задать вам пару вопросов, которые меня интересуют: 1) Из каких источников вы предпочитаете брать модели для Протеуса ? Я понимаю, что можно набрать в поисковике запрос " модели для Протеуса" и найти что-то, но меня интересует именно ваша оценка(мнение) различных сайтов. Я конечно дико извиняюсь, а что, есть большой выбор?  Мне в свое время пришлось весьма долго копать интернет, пока нашел единственную не особо глючную модель для DS18B20. Цитата(san822 @ Jan 25 2006, 16:24)  2) Насколько правдоподобно моделируются в Протеусе интерфейсы(CAN,USB и др.)? А они там моделируются? Про CAN вроде видел модели каких-то процессоров с CAN на борту, USB вообще не встречал.
--------------------
WBR, ROC.
|
|
|
|
|
Jan 25 2006, 15:58
|

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

|
Цитата(DeXteR @ Jan 25 2006, 11:13)  Поздравляю =) В железе тоже пашет ?? Это малекнькая но нужна часть в моей проге. Конкретно то что прикрепил на железе не проверял. Но в свою основную прогу добавил stop:) и всё заработало как надо. Протеус работает довольно "ПРАВИЛЬНО" на счёт этого протокола. Что заметил...........протеус не любит присвоение байтовых переменных, в основной программе вреде "ест" (main - Си), а в подпрограммах (процедурах, функциях, и т.д. и т.п.) любит только инверсию ('~' -Си). ИМХО. НЕ хочет работать с большими программами!!!
|
|
|
|
|
Jan 25 2006, 19:38
|

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

|
Цитата(bodja74 @ Jan 25 2006, 20:31)  Да согласен DeXter , моделей вполне навалом для того чтобы собрать несложный девайс. Искать то особо и не нужно.
To Serg
Протеус работает по факту от прошивки ,а не от исходников,поэтому ему все равно какое имя переменной Вы присвоите,эта задача относиться к компиллеру. Я присваивал более 50 одно и двухбайтовых переменных-нормально. А большие программы Вы и не делайте,разбивайте на куски и отлаживайте,А уже всю прогу отлаживайте в железе. У меня в реальном железе было переполнение стека через 12 секунд, на протеусе я бы этот глюк долго дожидался бы. А в какой програмее пишите? Блииииииииииииииииин опять ошибочно написал, не БАЙТОВЫХ, а БИТОВЫХ т.е. флагов...!!! А с байтовыми дружит вроде.
|
|
|
|
|
Jan 25 2006, 19:40
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(bodja74 @ Jan 25 2006, 20:31)  Да согласен DeXter , моделей вполне навалом для того чтобы собрать несложный девайс. Искать то особо и не нужно. Да? Некие общие модели есть, а вот конкретный девайс зачастую бывает весьма непросто сэмулировать. Например, модели для х51 есть, а для AT89C4051? Поискать и набегаться.... Цитата(bodja74 @ Jan 25 2006, 20:31)  [some bytes skipped] А большие программы Вы и не делайте,разбивайте на куски и отлаживайте,А уже всю прогу отлаживайте в железе. У меня в реальном железе было переполнение стека через 12 секунд, на протеусе я бы этот глюк долго дожидался бы. У меня было веселее. В эмуляторе - работает, код написан вроде правильно. В железе - ни в какую, беда да и только. Отправляю в девайс 0хFF, доходит только 0хEF. Достал у ребят железный эмулятор от Nohau, после буквально первого прогона стало понятно - 5-й бит отсох напрочь, не меняется никак и никогда, долго и нудно пропаивал всё "по пути следования", таки нашел неконтакт! Так вот, сколько бы это пришлось ловить в Proteus'e? И поймалось ли бы оно вообще? Нужно быть полностью уверенным, что железо спаяно и работает как следует, что в Proteuse модели не глючат, тогда - да, отлаживаемся, моделируем и радуемся, ибо экономим ресурс отладочного кристалла на лишних и бесполезных прошивках и наблюдаем свой аппарат во всей красе - с лампочками, индикаторами, дисплеями и переключателями всякими. Это я к чему, собственно? Ни один Proteus не отловит плохую пайку, сдохший электролит или обрыв дорожки, соответственно - если модель вдруг глючит в "нужную сторону", в железе этот глюк, увы, не воспроизвести никогда. А хардварные эмуляторы таких денег стОят....
--------------------
WBR, ROC.
|
|
|
|
|
Jan 25 2006, 21:21
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(ROC @ Jan 25 2006, 22:40)  Да? Некие общие модели есть, а вот конкретный девайс зачастую бывает весьма непросто сэмулировать. Например, модели для х51 есть, а для AT89C4051? Поискать и набегаться.... Ну это лишнее,с таким же самым успехом можно например пообижаться на AVRstudio за то что у нее нет поддержки PIC. Протеус начинал свою карьеру с ПИКов,поэтому расчитывать на всю линейку от атмела как бы и не стоит. Цитата У меня было веселее. В эмуляторе - работает, код написан вроде правильно. В железе - ни в какую, беда да и только. Отправляю в девайс 0хFF, доходит только 0хEF. Достал у ребят железный эмулятор от Nohau, после буквально первого прогона стало понятно - 5-й бит отсох напрочь, не меняется никак и никогда, долго и нудно пропаивал всё "по пути следования", таки нашел неконтакт! Так вот, сколько бы это пришлось ловить в Proteus'e? И поймалось ли бы оно вообще? Нужно быть полностью уверенным, что железо спаяно и работает как следует, что в Proteuse модели не глючат, тогда - да, отлаживаемся, моделируем и радуемся, ибо экономим ресурс отладочного кристалла на лишних и бесполезных прошивках и наблюдаем свой аппарат во всей красе - с лампочками, индикаторами, дисплеями и переключателями всякими. Ну никто отладочное железо не отменял юзать,я об этом не раз говорил. Протеус бы не нашел подобную неисправность. А может ли Nohau провериль согласованную работу СРАЗУ нескольких контроллеров? Цитата Это я к чему, собственно? Ни один Proteus не отловит плохую пайку, сдохший электролит или обрыв дорожки, соответственно - если модель вдруг глючит в "нужную сторону", в железе этот глюк, увы, не воспроизвести никогда. А хардварные эмуляторы таких денег стОят.... Ну что я могу сказать в ответ? Ни один железный отладчик "не отходя от кассы" не нарисует Вам принципиальную схему и разведет печатку. Я к чему веду? Нет смысла сравнивать работу фундаментально разных вещей,здесь уж каждому свое.
|
|
|
|
|
Jan 26 2006, 10:41
|

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

|
Присоединяюсь к bodja74 + скажу от себя То что работает в Протеусе на 99.99999 % заработает в железе - проверено =) Может и наоборот и невсегда ..... Если в железе непашет то что в протеусе - Это проблеммы быстродействия переферии + помех =) Поэтому эту прогу УВАЖАЮ
|
|
|
|
|
Jan 26 2006, 16:16
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(bodja74 @ Jan 26 2006, 00:21)  Ну никто отладочное железо не отменял юзать,я об этом не раз говорил. Протеус бы не нашел подобную неисправность. А может ли Nohau провериль согласованную работу СРАЗУ нескольких контроллеров? Нет. Не думаю. Можно попинать slave, чтобы говорил, что надо, потом master'a, чтобы слушал, что надо. Но без Nohau было бы еще сложнее разбираться... Цитата(bodja74 @ Jan 26 2006, 00:21)  Ну что я могу сказать в ответ? Ни один железный отладчик "не отходя от кассы" не нарисует Вам принципиальную схему и разведет печатку. Orcad, Pcad, Protel & целая куча всего остального (тот же Eagle, etc.) уже не в кассу?  А Proteus сам мне и не нарисует ничего, это в нем надо долго и нудно все это рисовать, проверять и т.д. Тем более - сильно сомневаюсь, что хоть одна лавочка по производству PCB возьмет Proteus'овский файл. Не помню, он Gerber-то хоть генерит? А еще "железные отладчики" не умеют варить кофе, гладить шнурки и бегать за сигаретами/пивом..  Какой-то беспредметный разговор получается...  Цитата(DeXteR @ Jan 26 2006, 13:41)  Присоединяюсь к bodja74 + скажу от себя То что работает в Протеусе на 99.99999 % заработает в железе - проверено =) Может и наоборот и невсегда ..... Если в железе непашет то что в протеусе - Это проблеммы быстродействия переферии + помех =) Поэтому эту прогу УВАЖАЮ  Да не наезжаю я на Proteus! Мне тоже эта софтина нравится, я считаю её полезной, но нельзя безоговорочно верить симуляторам. В конце концов - там только модель компонента. Errata всякие никогда не читали? Да что далеко ходить, в соседних ветках люди вон баги в ядре Tiny26 ловят. А если в Proteuse такая же модель реализована? "Никому нельзя верить" (С)
--------------------
WBR, ROC.
|
|
|
|
|
Jan 26 2006, 19:09
|

Частый гость
 
Группа: Свой
Сообщений: 175
Регистрация: 26-01-06
Из: Sevastopol
Пользователь №: 13 664

|
Цитата(*SERG @ Jan 25 2006, 21:38)  Блииииииииииииииииин опять ошибочно написал, не БАЙТОВЫХ, а БИТОВЫХ т.е. флагов...!!! В свое время при отладке кусков программы работы с графическим LCD на протеусе (где чистая логика, а потому использование симулятора вполне оправдано) и при переходе к регистровым переменным тоже обнаружил, что, как минимум, одна инструкция проверки битов (не помню, какая) не работает для битов с номером >0, а IAR активно эту команду использовал. Размещал в регистре битовые флаги и нарвался. Пришлось добавить для симулятора условную компиляцию. Это было в ATmega32. Что касается моделей, то некоторые несложные цифровые модели можно писать самим. Информации по их написанию достаточно мало, но кое-что удалось найти. Результаты того, что получилось у меня, выкладывал на телесистемах (дублирую ниже - может, пригодится кому). А на самом деле действительно интересно, можно ли как-то прикрутить новую модель AVR.DLL к Proteus 6.73? Размер заметно вырос, могли появиться новые варианты устройств и поправиться баги старых. А прямая замена вешает симулятор. ------- О моделях протеуса: Привет всем! Потратил определенное время на поиск информации по написанию моделей цифровых компонентов для Proteus. Нашел ссылку на модели Андрея, написавшего статью про создание DLL. К сожалению, самой статьи не нашел (убрана по требованию Labcenter), и ответить на письмо автор не пожелал. Ладно, спасибо и на этом. Его модель счетчика послужила толчком к освоению VSM DSIM SDK (с аналоговыми моделями не разбирался, там серьезная теория). В итоге выкладываю на общее пользование в рапидшару SDK (взят из Proteus 6.3 Pro - не крякнутое демо) и пример модели 74LS670 (регистровый файл 4 на 4 с тристабильным выходом и независимой записью-чтением) с исходниками. По отношению к счетчику добавлена интерпретация пинов как шин (сильно упрощает код), тристабильные выходы, задержка записи и чтения (согласно типичным параметрам из data sheet), индикация всплывающего окна с содержимым регистровой памяти при остановленной симуляции. Компилировано с помощью VCToolkit от Microsoft (бесплатный C++ компилятор командной строки, совместимый с .NETовским) и утилиты nmake.exe того же производителя. Можно использовать и другие среды разработки (Visual Studio, VS.NET). Может, кому-то пригодится. А если кто-то разберется с тем, как с минимумом затрат создать смешанную модель (скажем, АЦП с цифровым интерфейсом, где от аналога нужно-то только чтение входного потенциала из модели) - буду рад получить весточку на мыло. VSM SDK with sample digital model
|
|
|
|
|
Jan 26 2006, 19:47
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(ROC @ Jan 26 2006, 19:16)  Нет. Не думаю. Можно попинать slave, чтобы говорил, что надо, потом master'a, чтобы слушал, что надо. Но без Nohau было бы еще сложнее разбираться... Ну я так раньше и делал.Теперь наброски на протеусе,"вылизывание" на железном отладчике. А бывает и сразу все Ок. Цитата Orcad, Pcad, Protel & целая куча всего остального (тот же Eagle, etc.) уже не в кассу?  А Proteus сам мне и не нарисует ничего, это в нем надо долго и нудно все это рисовать, проверять и т.д. Тем более - сильно сомневаюсь, что хоть одна лавочка по производству PCB возьмет Proteus'овский файл. Не помню, он Gerber-то хоть генерит? Аяяяй!!! И это говорит человек который якобы юзал ПРОТЕУС Выходные форматы принципиальной схемы BMP EMF DXF EPS HGL Выходные форматы печатной платы BMP EMF DXF EPS HGL TXT PCB PKP TPI И это не считая чисто протеусовских форматов. Смысл мне рисовать схему и писать прогу в протеусе потом отлаживать схему и прогу.А потом опять рисовать для печатки? Да и не заказываю я в конторах печатки,как то сам несложные научился делать. Цитата А еще "железные отладчики" не умеют варить кофе, гладить шнурки и бегать за сигаретами/пивом..  Какой-то беспредметный разговор получается...  Да полностью согласен  Я каждый день по 8 часов держу паяльник в руках зарабатывая на хлеб, И могу с полной уверенностью сказать,что гораздо легче поменять резистор ,транзистор,дорожку,микросхему и т.д. в проге и посмотреть гуд или не гуд, чем на макетке. И тут не дело в том ,любитель ли ты симуляторов или нет,я в крайности не кидаюсь, просто считаю что каждый стремится к более удобному,быстрому и понятному для себя пути ваяния своего девайса. А то что пути разные бывают.......Это выбор каждого.
|
|
|
|
|
Jan 27 2006, 08:35
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(bodja74 @ Jan 26 2006, 22:47)  Аяяяй!!! И это говорит человек который якобы юзал ПРОТЕУС
Выходные форматы принципиальной схемы .... [some skipped] Ну не надо вот так-то сразу.  Просто никогда не интересовался, что умеет генерить Proteus на выходе, за полной ненадобностью; для меня это "вещь в себе", вполне замкнутая и самодостаточная. А PCB как-то привычнее рисовать в Eagle или Protel'е.... Цитата(bodja74 @ Jan 26 2006, 22:47)  Я каждый день по 8 часов держу паяльник в руках зарабатывая на хлеб, И могу с полной уверенностью сказать,что гораздо легче поменять резистор ,транзистор,дорожку,микросхему и т.д. в проге и посмотреть гуд или не гуд, чем на макетке.
И тут не дело в том ,любитель ли ты симуляторов или нет,я в крайности не кидаюсь, просто считаю что каждый стремится к более удобному,быстрому и понятному для себя пути ваяния своего девайса. А то что пути разные бывают.......Это выбор каждого. Мне проще. У меня паяльник в руках бывает от силы 8 часов в неделю, иногда - в месяц. Эта... Типа... Радиолюбитель я...  В худшем смысле этого слова  Лет 10 назад ушел из электронной лавочки и занимаюсь WIN32 софтом. Но инструмент действительно каждый выбирает сам - от отвертки до компилятора (если в ТЗ не прописано иное  )
--------------------
WBR, ROC.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|