Страница 1 из 2

Mega64 и код на разных языках

Добавлено: Пн май 12, 2008 00:17:35
ipkin
одно и тоже устройство не хочет работать с кодом на разных языках
на асме работает на Си не хочет
состав устройства мега64 видеопроц V9990 датафлэш45db161
причём с кодом на си я вижу выход данных с датафлэш с помошью осцилографа а картинку не получаю
на асме всё ок
по фьюзам
SUT0=0 BOOTSZ0=0 BOOTSZ1=0
если M103C=0 на Си не вижу выхода данных с датафлэш при 1 они есть
если M103C=1 то код на асме не работает
растолкуйте что не так
пожалуйста

Добавлено: Пн май 12, 2008 22:13:15
Mozart
вы вот этими строчками

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

unsigned char Port0 @0x1000;
unsigned char Port3 @0x1300;
unsigned char Port4 @0x1400;
unsigned char Port7 @0x1700;
что хотели сказать?

Добавлено: Вт май 13, 2008 10:44:44
ipkin
Mozart писал(а):вы вот этими строчками

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

unsigned char Port0 @0x1000;
unsigned char Port3 @0x1300;
unsigned char Port4 @0x1400;
unsigned char Port7 @0x1700;
что хотели сказать?
у меня видео проц подключен по схеме внешней памяти но без регистра защёлки
данные видеопроца (D0-D7) сидят на (AD0-AD7)Mega64
(A0-A2)видеопроца сидят на (A8-A10) Mega64 ну и RD WR соответственно

Добавлено: Вт май 13, 2008 10:49:38
Mozart
вы меня не поняли я не спрашивал что куда что подключено, я просто спросил что вы хотели написать вот этими строчками

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

unsigned char Port0 @0x1000; 
unsigned char Port3 @0x1300; 
unsigned char Port4 @0x1400; 
unsigned char Port7 @0x1700;
или какой у вас компилятор? потому что я смутно припоминаю где используется вот это - "@"...

Добавлено: Вт май 13, 2008 10:50:51
Mozart
да и ещё в цикле while(1) надо что-то написать...

Добавлено: Вт май 13, 2008 11:08:30
tych
Mozart писал(а):я смутно припоминаю где используется вот это - "@"...
в CVAVR при размещении переменных в регистры.

Добавлено: Вт май 13, 2008 11:16:34
ipkin
Mozart писал(а):вы меня не поняли я не спрашивал что куда что подключено, я просто спросил что вы хотели написать вот этими строчками

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

unsigned char Port0 @0x1000; 
unsigned char Port3 @0x1300; 
unsigned char Port4 @0x1400; 
unsigned char Port7 @0x1700;
или какой у вас компилятор? потому что я смутно припоминаю где используется вот это - "@"...
избавляемся от необходимости ставить регистр-защёлку (74HC573) на младшие адреса контроллера A0..A7 для адреса

да работаю в CVAVR
для того чтоб на внешней шине сгенерировалось обращение ко ВНЕШНЕЙ ПАМЯТИ (вместо неё висит V9990) а не к адресам внутренней,
посылаем какой-нить старший бит адреса=1, тоесть:

Биты AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7 A8 A9 A10 A11 A12 A13 A14 A15 - контроллер
* * * * * * * * A0 A1 A2 q w e r t - V9990 (порты)

* - ничего не значащие биты (при нулевых битах A8..A15 - внутреннее ОЗУ контроллера)
A0..A2 - порты V9990
q,w,e,r,t - биты с произвольным значением (по крайней мере какой-то из них должен быть равен 1 - чтоб сделать цикл обращения к внешней шине сделать)

В данном примере: Port0 - эта переменная позволяющая обращаться к порту 0 V9990 (*=0,A0( A8 )=0, A1(A9)=0,A2(A10)=0,q=1(хотя бы один бит=1),w=0,e=0,r=0,t=0)
Тоесть её адрес получается 0x1000 (unsigned char Port0 @0x1000)

Остальные переменные - аналогично.

Добавлено: Вт май 13, 2008 11:35:41
DUKER
Версия CWAVR не бета?? у меня у беты наблюдались глюки... потом тот-же код на релизе нормально работал...

Добавлено: Вт май 13, 2008 11:47:43
ipkin
DUKER писал(а):Версия CWAVR не бета?? у меня у беты наблюдались глюки... потом тот-же код на релизе нормально работал...
по моему какаято ограниченая я как то пытался впихнуть код так она мне выдала что мол код большой и это чёто там евалютион

Добавлено: Вт май 13, 2008 11:55:23
DUKER
качайте не бету, не эвалюшн... например 1.25.5

Добавлено: Вт май 13, 2008 12:11:02
ipkin
DUKER писал(а):качайте не бету, не эвалюшн... например 1.25.5
скачал 1.25.5 Patched by Banzay

Добавлено: Вт май 13, 2008 12:13:23
DUKER
Ну так, по крайней мере вы будете уверенны что дело не в компиляторе... а то может и так....

Добавлено: Вт май 13, 2008 21:07:28
ipkin
поставил 1.25.9 тоже самое не в компиляторе дело
блин уже голова пухнет

Добавлено: Вт май 13, 2008 21:18:04
DUKER
ну может сишный код не успевает?? там задача-то скоростная??

Добавлено: Вт май 13, 2008 21:30:14
ipkin
вообще код изначально был написан для Меги8515
я его хочу приспособить для Меги64
вот код для меги8515
#include <mega8515>
#include <stdlib>
#include <delay>

void Init()
{
PORTA=0x00;
DDRA=0x00;
DDRB=0b00010000;
PORTB=0b00011111;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
PORTE=0x00;
DDRE=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
MCUCR=0xC0;
EMCUCR=0x02;
TIMSK=0x00;
ACSR=0x80;
}
как правильно его переложить для 64меги помимо хидера mega64.h

Добавлено: Вт май 13, 2008 21:47:14
ARV
ipkin писал(а): как правильно его переложить для 64меги помимо хидера mega64.h
начать с того, что все обнуления просто исключить - после сброса во всех регистрах ввода-вывода и так нули. а оставшихся будет очень немного - надо установить соответствие устанавливаемых битов и регистров в этих МК. с помощью даташитов это несложно.

Добавлено: Вт май 13, 2008 22:25:34
ipkin
ARV писал(а):
ipkin писал(а): как правильно его переложить для 64меги помимо хидера mega64.h
начать с того, что все обнуления просто исключить - после сброса во всех регистрах ввода-вывода и так нули. а оставшихся будет очень немного - надо установить соответствие устанавливаемых битов и регистров в этих МК. с помощью даташитов это несложно.
вроде так и делаю
мега8515 MCUCR=0xC0 для меги64 те же биты 7и 6
далее
мега8515 EMCUCR=0x02 для меги64 это XMCRA опять тот же бит 1(SRW11)

Добавлено: Ср май 14, 2008 03:58:18
PLL
мля, ну чо ты на всех форумах стонеш??? :o
никто за тебя ничо писать не будет!

тебе дали сорцы, есть даташит (можно и на русском найти).

ну не знаешь ты Си, ну чо ты да*бываеш ВСЕХ своими тупыми вопросами.

Уже интернет испещрён твоими высказываниями!!! :shock:

А теперь представь себя на месте людей - у всех свои дела, проекты, время! НИКТО не будет "просто так" писать за тебя фрагменты кода или весь код.

Проанализировав твои высказывания на фырумах прихожу к мнению что под Ыпкином скрывается ну совершенно туповастый человек - елехтрониха не для него :(

Официально добавлю, что тупые вопросы от господина Ыпкина льются и на мой почтовый ящик, нескончаемо как поток гавна...

Этот талайопп даже здесь цитирует мои письма... Чтоже - весьма лестно ;)

Добавлено: Ср май 14, 2008 07:49:37
ipkin
Эх жалко нет в этом форуме раздела "Разборки" можно было бы пообщаться.
Вообще то уважаемый PLL или как Вас там Rom****ch форумы для того и делаются чтобы люди могли общаться ,решать какие то вопросы , не все такие УМНЫЕ как ВЫ (наверное родились с паяльником в руках).
Обсир*****ть это у нас всегда пожалусто и сколько угодно.
Спасибо Вам за столь понятливый ответ на мой вопрос.
Всё равно найдутся люди кто поможет(разъяснит)как правильнее сделать :)

Добавлено: Ср май 14, 2008 12:03:00
Aheir
Уважаемые, вы рискуете проследовать в баню..