Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: NIOS
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
artem79
Помогите кто может начинающему разобраться 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
dim99
Попробуйте следующим образом:

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

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

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

Удалил явно излишнее цитирование. Модератор
PeterD
Уменя вот так заработало но почемуто только в пошаговой трасировке если запустить на исполнение программу светодиодики не моргают 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;


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


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

Осцилографом тоже ничего не видно проверил первым делом. В качестве испытуемого Cyclone II EP2C20 на DE1.
А вот IOWR_ALTERA_AVALON_PIO_DATA(LEDR_BASE, i); работает и в пошаговом и когда на исполнение пускаеш.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.