]> rtime.felk.cvut.cz Git - mf6xx.git/commitdiff
Added function for reading DI.
authorRostislav Lisovy <lisovy@gmail.com>
Tue, 5 Apr 2011 19:32:47 +0000 (21:32 +0200)
committerRostislav Lisovy <lisovy@gmail.com>
Tue, 5 Apr 2011 19:32:47 +0000 (21:32 +0200)
src/uio/mf624/userspace/test_application/main.c

index af3ae78924255a01787f36676b2c2870eb957f92..226528649bd713d78eb06cbfb6381b20b5f2d8d2 100644 (file)
@@ -29,13 +29,23 @@ int BAR0_phys_addr;
 int BAR2_phys_addr;
 int BAR4_phys_addr;
 
+void print_8bin(int nr)
+{
+       int i;
+       for (i = 7; i >= 0; i--) {
+               printf("%d" , ((nr & (1 << i)) > 0));
+       }
+
+       printf("\n");
+}
+
 static inline int16_t mf624_read16(uint16_t *ptr)
 {
-       return *ptr;
+       return (volatile uint16_t) *ptr;
 }
 static inline int32_t mf624_read32(uint32_t *ptr)
 {
-       return *ptr;
+       return (volatile uint32_t) *ptr;
 }
 
 static inline void mf624_write16(uint16_t val, uint16_t *ptr)
@@ -53,6 +63,10 @@ void DIO_set(int16_t val)
        mf624_write16(val, ((uint16_t*) mf624_BAR2) + (DOUT_reg/2)); 
 }
 
+uint16_t DIO_read()
+{
+       return mf624_read16(((uint16_t*) mf624_BAR2) + (DOUT_reg/2)) & 0xF; 
+}
 
 int open_device(char* path) {
        status = open(path, O_RDWR);
@@ -280,6 +294,9 @@ int main(int argc, char* argv[])
        if (device_fd != -1) {
 
                while (1){
+                       printf("Reading DIO = ");
+                       print_8bin(DIO_read());
+                       
                        printf("Setting DIO to 0xff\n");
                        DIO_set(0xff);
                        sleep(1);