On Sat, 17 Mar 2012, charliewxj wrote:
> Hello, I just started using TS 7800 board. I just want to use DIO header to
> create a square wave. I tried to write a C code but it didn't succeed. I need
> help from all of you.
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <sys/stat.h>
> #include <sys/mman.h>
> #include <unistd.h>
> #include <fcntl.h>
>
> int main(void)
> {
>
> char input;
> int fd;
> unsigned long *ptr;
> unsigned long *dr;
try defining pointers as volatile
>
> printf("begin, square wave.\n");
>
> fd= open("/dev/mem",O_RDWR) ;
>
> ptr =
> mmap(NULL,getpagesize(),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0xe8000000);
>
> dr =ptr + 0x4; // 0x4 offset
I don't know the memory map of 7800, but here you are index the 4th integer
(23bits) from ptr. If you want the 4th byte then redefine your pointers as
unsigned char * , or divide the byte offset by 4.
> *dr=*dr & 0x0000;
> while(1)
> {
> usleep(1000000);
> *dr= ~ *dr;
> }
>
> return 0;
> }
>
>
>
>
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|