Перейти к содержанию
    

Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.

???......?

По большому счету технология программирования DSP мало чем отличается от программирования стандартных микроконтроллеров.

По подробней пожалуйста. Сформулируйте свою задачу технически грамотно...

Не понятно причем тут проц. и принципы программирования. Проц - железо, на котором реализуется hardware проекта, а программная реализация (на чем вы будете выражать свои мысли asm, С/С++) это его 'мозг' - способность Вашего абстрактного и логического мышления.

Если Вам надо теоретически изучить программирование читайте Дональд Кнут "Искусство Программирования" (3-и тома).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Советую скачать примеры программ для C28, они свободно доступны на сайте TI. Очень поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ещё один вопрос. У меня временно стоит 90 дневная Trial Version CCS. В ней прерывания например от таймеров вообще можно откатать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в моем cfg файле есть такая строка

cssi_modules pie, timer0, timer1, timer2;

это значит, что симулятор поддерживает таймеры

все остальное не поддерживается

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 andr2000

а имя файла не подскажете?

 

2 andr2000

Прошу прощения, нашёл cssi_modules pie, timer0, timer1, timer2. Но не как не могу отсмотреть переход в обработчик прерывания по timer0. Прога тестовая с ti.com скачанная. Флаги необходимые вроде стоят все . Но по переполнению прерывания не происходит . Не понятно почему.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

файл называется sim2810.cfg

не забудьте его добавить в конфигурацию симулятора:)

 

вот мой модуль для работы с таймером - может поможет

 

interrupt void TIMEOUT_IntHandlerTimer(void)

{

CpuTimer0Regs.TCR.bit.TIF=0;

//Acknowledge this interrupt to receive more interrupts from group 1

PieCtrlRegs.PIEACK.all|=PIEACK_GROUP1;

//enable nested interrupts

EINT;

//logic

LOGIC_TimerHandler();

//LED's

LED_TimerHandler();

}

 

void TIMEOUT_Init(void)

{

TDWord temp;

 

//setup interrupt vector table

EALLOW;

PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer;

EDIS;

//Initialize timer period:

temp=(TDWord)((XTAL/1000000.0)*(PV_DSP_TIMEOUT_TICK_WEIGHT_MS*1000.0));

CpuTimer0Regs.PRD.all=temp;

//Initialize pre-scale counter to divide by 1 (SYSCLKOUT):

CpuTimer0Regs.TPR.all=0;

CpuTimer0Regs.TPRH.all=0;

//Make sure timer is stopped:

CpuTimer0Regs.TCR.bit.TSS=1;

//Reload all counter register with period value:

CpuTimer0Regs.TCR.bit.TRB=1;

//Initialize timer control register:

CpuTimer0Regs.TCR.bit.SOFT = 1;

//Timer Free Run

CpuTimer0Regs.TCR.bit.FREE=1;

//0 = Disable/1 = Enable Timer Interrupt

CpuTimer0Regs.TCR.bit.TIE=1;

//start the timer

CpuTimer0Regs.TCR.bit.TSS=0;

//enable interrupt

IER|=M_INT1;

//Enable TINT0 in the PIE: Group 1 interrupt 7

PieCtrlRegs.PIEIER1.bit.INTx7=1;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 andr 2000

За фрагмент спасибо. я так полагаю что файл должен быть sim2812.cfg разве не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 andr 2000

В конфигураторе CCS он уже подключен. Посмотрел код, вообщем

то мой ничем не отличается. Там вообще по моему работа с таймерами без особых изысков. Наверное всё таки версия симулятора...... bad.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

возможно:) мне хватило того что есть

для написания полного проекта без

эмуляторов - при помощи загрузчика по SCI

и светодиода:)

так что если чем могу - помогу:)

правда тут и без меня целое стадо гуру:)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 andr 2000

У Вас в тексте есть такая строка

PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer;

Он в симуляторе фактически переходил к процедуре обработки

TIMEOUT_IntHandlerTimer? У меня таймер просто обнуляется , далее презагружается значением из CpuTimer0Regs.PRD и продолжает считать дальше. По логике вещей он хотя бы IFR флаг установить должен был. Но он и этого не делает. А просто продолжает считать дальше. Ещё один bug: поскольку в симуляторе (cssi_modules pie, timer0, timer1, timer2;) прописано что работает PIE то возможен откат также прерываний от ADC, так как этот источник находится в одной групп PIE, но там прерывания тоже не срабатывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

только что попробовал - в симуляторе не переходит:(

но в железе точно работает.

а насчет АЦП - очень сильно сомневаюсь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда я не понимаю как можно логику событий откатать. Этот симулятор что тёмный ящик? Я когда с AVR studio работал всё было проще. Например через определённое время после запуска АЦП происходило прерывание. Я просто вручную заталкивал в регистры результата определённые значения. И дальше можно было просто отследить логику работы программы. То же самое можно было делать с UARTом и т.д. . А тут получается камень для этого нужен. странно как - кто...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне так тоже вначале показалось, но потом я подумал

что людей, которые пытаются писать программы в симуляторе

под данную платформу, скорее всего, не так уж и много:(

так что поддерживать симулятор желания у народа похоже нет

логику своей программы я откатывал по кусочкам, обработчики

прерываний заменял обычными функциями и смотрел как

они выполняются. потом все это заливал по sci и смотрел как

работает уже в железе. так что...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...