]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - embedded/app/usbcan/main.c
Used sysless functions for IRQ handling. Used access functions to the chip register...
[lincan.git] / embedded / app / usbcan / main.c
index 6053645608fc458720b3441d0ae185eb88134e61..71fb5e7a575e0352fe73f8ed390bfc61cc5a6e34 100644 (file)
 
 //#include "./can/ul_usb1.h"
 
-//#include "./can/setup.h"
+#include "./can/setup.h"
 
 #include "./usb/usb_defs.h"
 #include "./usb/usb_vend.h"
 
-// DEBUG CAN
+
 #include "can/lpc17xx_can.h"
-// DEBUG CAN - end
 
 #define MASK_EP1RX  0x01
 #define MASK_EP1TX  0x02
@@ -110,7 +109,6 @@ typedef void (*FNC)(); //function ptr
  * global variables
  ***********************************************************************/
 
-
 usb_device_t usb_device;
 
 usb_ep_t eps[NUM_ENDPOINTS];
@@ -210,7 +208,6 @@ int main(void)
        int i,size,m=0;
 
        CANMSG("Starting USBCAN module firmware...\n");
-       
 
 //     volatile int i=0;
        bootloader_run=0;
@@ -229,15 +226,13 @@ int main(void)
                sys_err();
        }
 
-// !!! DEBUG - first version, only transmitting CAN messages with usage of queue system from LinCAN
-
 
        //***********************************************************************
        // * CAN device initialization - device side (adapted from LinCAN setup.c)
        // ***********************************************************************
 
-       // DEBUG
-       //can_init(); // only for successful compiling (defined in can_lpcbusemu.c)
+//     useless with lpc17xx (defined in can_lpcbusemu.c)
+//     can_init();
 
 
        DEBUGMSG("Initiating CAN device initialization\n");
@@ -269,8 +264,8 @@ int main(void)
        
 
        // DEBUG
-       //ul_usb1_register(candev->hwspecops);  // only for successful compiling (defined in ul_usb1.c)
-       // register for another board
+       //ul_usb1_register(candev->hwspecops);  //(defined in ul_usb1.c)
+       // register for another board:
        can_lmc1_register(candev->hwspecops);
 
        
@@ -326,11 +321,12 @@ int main(void)
 
                chip->flags |= CHIP_ATTACHED;
 
-// Interrupts from chip are served in main cycle
-//             if(can_chip_setup_irq(chip)<0) {
-//                     CANMSG("Error to setup chip IRQ\n");
-//                     sys_err();
-//             }
+               // used with lpc17xx:
+               if(can_chip_setup_irq(chip)<0) {
+                       CANMSG("Error to setup chip IRQ\n");
+                       sys_err();
+               }
+
        }
 
        if (candev->flags & CANDEV_PROGRAMMABLE_IRQ)
@@ -433,7 +429,7 @@ int main(void)
                usb_check_events(&usb_device);
                usb_control_response(&usb_device);
 
-// DEBUG
+// useless with lpc17xx:
 //             if (!(IO0PIN&P0_SJA1000_INT_PIN)) //INT PIN is inverted
 //                     chip->chipspecops->irq_handler(0,chip);
 
@@ -470,7 +466,7 @@ int main(void)
                        
                                        slot->msg=canmsg;
                                        canque_put_inslot(qends, qedge, slot);
-                                       //CAN_send(&canmsg);
+
                                }
                                else
                                        canque_abort_inslot(qends,qedge,slot);
@@ -502,8 +498,7 @@ int main(void)
                        }*/
                }
 
-               // DEBUG - only transmitting CAN messages, no reading (yet)
-               /*
+               
                if(usb_device.ep_events & MASK_EP1TX){ //EP1TX - data transmitted
                        if(canque_test_outslot(qends, &qedge, &slot)>=0){
                                DEBUGMSG("CAN message ready to send over usb\n");
@@ -534,9 +529,11 @@ int main(void)
                                timer_tx_off=50;                //rozsviceni diod pri vysilani
                                CLR_OUT_PIN(LED_PORT,LED1_BIT);
                                usb_device.ep_events &= ~MASK_EP1TX;
+
                        }
+                       
                }
-               */
+               
 
                //if (usb_can_send && )