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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Вопрос по F2812
Rem5
сообщение Nov 28 2005, 10:20
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.
Go to the top of the page
 
+Quote Post
BVU
сообщение Nov 28 2005, 11:13
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Rem5 @ Nov 28 2005, 13:20) *
Вопрос в следующем . Взялся за разработку некоего устройства на данном проце. Технической документации прочитал достаточно. Но вот не знаю с какого боку подступиться с точки зрения программирования. Хотелось бы понять основные принципы построения программ для данных контроллеров.

???......?
По большому счету технология программирования DSP мало чем отличается от программирования стандартных микроконтроллеров.
По подробней пожалуйста. Сформулируйте свою задачу технически грамотно...
Не понятно причем тут проц. и принципы программирования. Проц - железо, на котором реализуется hardware проекта, а программная реализация (на чем вы будете выражать свои мысли asm, С/С++) это его 'мозг' - способность Вашего абстрактного и логического мышления.
Если Вам надо теоретически изучить программирование читайте Дональд Кнут "Искусство Программирования" (3-и тома).


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Dr.NoA
сообщение Nov 28 2005, 19:01
Сообщение #3


Местный
***

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



Советую скачать примеры программ для C28, они свободно доступны на сайте TI. Очень поможет.
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 1 2005, 11:21
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



Ещё один вопрос. У меня временно стоит 90 дневная Trial Version CCS. В ней прерывания например от таймеров вообще можно откатать?
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 1 2005, 12:54
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



в моем cfg файле есть такая строка
cssi_modules pie, timer0, timer1, timer2;
это значит, что симулятор поддерживает таймеры
все остальное не поддерживается
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 1 2005, 13:42
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



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

2 andr2000
Прошу прощения, нашёл cssi_modules pie, timer0, timer1, timer2. Но не как не могу отсмотреть переход в обработчик прерывания по timer0. Прога тестовая с ti.com скачанная. Флаги необходимые вроде стоят все . Но по переполнению прерывания не происходит . Не понятно почему.
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 2 2005, 08:21
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



файл называется sim2810.cfg
не забудьте его добавить в конфигурацию симулятораsmile.gif

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

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;
}
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 2 2005, 10:54
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



2 andr 2000
За фрагмент спасибо. я так полагаю что файл должен быть sim2812.cfg разве не так?
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 2 2005, 12:32
Сообщение #9


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



да, я просто под 2810 писалsmile.gif
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 2 2005, 13:01
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



2 andr 2000
В конфигураторе CCS он уже подключен. Посмотрел код, вообщем
то мой ничем не отличается. Там вообще по моему работа с таймерами без особых изысков. Наверное всё таки версия симулятора...... bad.
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 2 2005, 13:13
Сообщение #11


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



возможноsmile.gif мне хватило того что есть
для написания полного проекта без
эмуляторов - при помощи загрузчика по SCI
и светодиодаsmile.gif
так что если чем могу - помогуsmile.gif
правда тут и без меня целое стадо гуруsmile.gif
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 5 2005, 07:02
Сообщение #12


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



2 andr 2000
У Вас в тексте есть такая строка
PieVectTable.TINT0=&TIMEOUT_IntHandlerTimer;
Он в симуляторе фактически переходил к процедуре обработки
TIMEOUT_IntHandlerTimer? У меня таймер просто обнуляется , далее презагружается значением из CpuTimer0Regs.PRD и продолжает считать дальше. По логике вещей он хотя бы IFR флаг установить должен был. Но он и этого не делает. А просто продолжает считать дальше. Ещё один bug: поскольку в симуляторе (cssi_modules pie, timer0, timer1, timer2;) прописано что работает PIE то возможен откат также прерываний от ADC, так как этот источник находится в одной групп PIE, но там прерывания тоже не срабатывают.
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 5 2005, 15:16
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



только что попробовал - в симуляторе не переходитsad.gif
но в железе точно работает.
а насчет АЦП - очень сильно сомневаюсь
Go to the top of the page
 
+Quote Post
Rem5
сообщение Dec 6 2005, 06:47
Сообщение #14


Участник
*

Группа: Новичок
Сообщений: 17
Регистрация: 28-11-05
Из: Санкт-Петербург
Пользователь №: 11 485



Тогда я не понимаю как можно логику событий откатать. Этот симулятор что тёмный ящик? Я когда с AVR studio работал всё было проще. Например через определённое время после запуска АЦП происходило прерывание. Я просто вручную заталкивал в регистры результата определённые значения. И дальше можно было просто отследить логику работы программы. То же самое можно было делать с UARTом и т.д. . А тут получается камень для этого нужен. странно как - кто...
Go to the top of the page
 
+Quote Post
andr2000
сообщение Dec 6 2005, 07:29
Сообщение #15


Участник
*

Группа: Свой
Сообщений: 36
Регистрация: 26-05-05
Из: Киев
Пользователь №: 5 406



мне так тоже вначале показалось, но потом я подумал
что людей, которые пытаются писать программы в симуляторе
под данную платформу, скорее всего, не так уж и многоsad.gif
так что поддерживать симулятор желания у народа похоже нет
логику своей программы я откатывал по кусочкам, обработчики
прерываний заменял обычными функциями и смотрел как
они выполняются. потом все это заливал по sci и смотрел как
работает уже в железе. так что...
Go to the top of the page
 
+Quote Post

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

 


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


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