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

 
 
 
Reply to this topicStart new topic
> NIOS, простая программа NIOS
artem79
сообщение Feb 28 2009, 07:36
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 4-01-07
Из: Казань
Пользователь №: 24 091



Помогите кто может начинающему разобраться bb-offtopic.gif

Хочу создать простенький проект с cpu ("подергать ножкой").

Мои шаги:
Определил CPU, память (on_chip), PIO.
С генерировал вроде все ОК.
Создал проект в nios.

-------------------------------------
CODE
#include "alt_types.h"
#include "system.h"
#include "altera_avalon_pio_regs.h"

#define LED ((char *) 0x00009000)

int main (void) __attribute__ ((weak, alias ("alt_main")));

int alt_main(void)
{

while(1)
{
*LED = 1;
*LED = 0;
*LED = 1;
*LED = 0;
}

return 0;
}

------------------------------------------------------------------------------

С компелировал в nios - OK.

С компелировал в Quartus - OK.

В итоге при просмотре на осцелографе получаю не понятный импульс длительностью 100 мс. и периодом 1,5с.

В чем загвоздка.
HELP!!!!!!!!!!!!!!! 1111493779.gif

Сообщение отредактировал Omen_13 - Feb 28 2009, 19:15
Go to the top of the page
 
+Quote Post
dim99
сообщение Mar 1 2009, 09:15
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 8-02-09
Из: Мытищи
Пользователь №: 44 580



Попробуйте следующим образом:

определить через тип alt_u8 led = 0x1;

и выводить результат на pio IOWR_ALTERA_AVALON_PIO_DATA(ALT_YOUR_PIO_BASE, led);

В Quartus'е создать блок тестовой индикации.

Удалил явно излишнее цитирование. Модератор

Сообщение отредактировал Omen_13 - Mar 2 2009, 17:31
Go to the top of the page
 
+Quote Post
PeterD
сообщение Mar 16 2009, 07:56
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 26-10-07
Пользователь №: 31 743



Уменя вот так заработало но почемуто только в пошаговой трасировке если запустить на исполнение программу светодиодики не моргают crying.gif

CODE

#include <stdio.h>
#include "system.h"



int main()


{

unsigned long *Adres_led= LEDR_BASE;
unsigned int i;


while(1) {

printf("Hello NIOS II !!\n");

for (i=0; i<9; i++)
*Adres_led = i;
printf("*Adres_led =%x !!\n",*Adres_led);
printf("Adres_led =%x !!\n",Adres_led);
printf("End NIOS II !!\n");
}
return 0;


Отредактировано модератором
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Mar 16 2009, 15:41
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(PeterD @ Mar 16 2009, 10:56) *
Уменя вот так заработало но почемуто только в пошаговой трасировке если запустить на исполнение программу светодиодики не моргают crying.gif


Можно предположить, что светодиодики у вас горят в пол-силы? ;-) Попробуйте задержек поставить.
Go to the top of the page
 
+Quote Post
PeterD
сообщение Mar 17 2009, 06:50
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 26-10-07
Пользователь №: 31 743



Цитата(alexadmin @ Mar 16 2009, 18:41) *
Можно предположить, что светодиодики у вас горят в пол-силы? ;-) Попробуйте задержек поставить.

Осцилографом тоже ничего не видно проверил первым делом. В качестве испытуемого Cyclone II EP2C20 на DE1.
А вот IOWR_ALTERA_AVALON_PIO_DATA(LEDR_BASE, i); работает и в пошаговом и когда на исполнение пускаеш.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th June 2025 - 14:01
Рейтинг@Mail.ru


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