- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
/*
* control.c * * Created on: 2012-11-15 * Author: zhanghan */ # include "alt_types.h"# include "altera_avalon_timer_regs.h"# include "sys/alt_irq.h"# include "system.h"# include <stdio.h># include <unistd.h> void timer_ISR(void); void init_spi(void); int d; int main(void) { printf("\nWelcome!!!\n"); init_spi(); printf("\nSpi initial succeed!\n"); while(1) { } return 0; } void init_spi(void) { d=0; IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE,0x00); // IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE,25000>>16); // IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE,25000 && 0xffff); IOWR_ALTERA_AVALON_TIMER_CONTROL(TIMER_BASE,0x07); //start the timer alt_irq_register(TIMER_IRQ,(void*)TIMER_BASE,(void*)timer_ISR); } //interrupt service routine void timer_ISR(void) { printf("\nthe data is %d \n" ,d); d++; IOWR_ALTERA_AVALON_TIMER_STATUS(TIMER_BASE, 0x00); //clear the timeout bit }Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
if i add these codes:IOWR_ALTERA_AVALON_TIMER_PERIODH(TIMER_BASE,25000> >16);
IOWR_ALTERA_AVALON_TIMER_PERIODL(TIMER_BASE,25000 && 0xffff); the program won't work,why i have ready selected the"writable period"- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You probably meant '25000 & 0xffff' instead of '25000 && 0xffff' which will result in 25000 instead of 1.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
thanks very much,i'll try it,but i've already used that two statements many times before in my project,and there is nothing wrong.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page