@ -28,27 +28,21 @@ interrupt void cpu_timer1_isr(void);
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				interrupt  void  canb_isr ( void ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				interrupt  void  canb_box_isr ( void ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				Periphery  periphery ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// Periphery periphery;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				RUDRIVEFRAMEWORK : : SinglePhaseSetup               power_hw_setup ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				RUDRIVEFRAMEWORK : : SinglePhase                    power_hw ( ( uint16_t * ) 0x4000 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				WEINBUS : : WeinbusSlave                            hmi ( power_hw . crc ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				MODBUSRTU : : ModbusRTUTransceiverConfiguration     modbus_port_configuration ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//----------------------------------------------------------------------------------------
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// DSP28335::SCISetup              SCIbSetup;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// DSP28335::SCIB                  scib(ScibRegs);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				DSP28335 : : SCISetup               SCIbSetup ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				DSP28335 : : SCIB                   scib ( ScibRegs ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// DSP28335::MeasureTimeInterval   interval_measure(CpuTimer2);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				DSP28335 : : MeasureTimeInterval    interval_measure ( CpuTimer2 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//  //  MODBUS RTU - PORT & HMI
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// MODBUSRTU::ModbusRTUTransceiverSetup modbus;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// MODBUSRTU::ModbusRTUCRC     crc;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// MODBUSRTU::ModbusRTUTransceiver                 modbus_port(scib, interval_measure, crc);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//  MODBUS RTU - PORT & HMI
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				MODBUSRTU : : ModbusRTUTransceiverSetup  modbus ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				MODBUSRTU : : ModbusRTUCRC      crc ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				MODBUSRTU : : ModbusRTUTransceiver                  modbus_port ( scib ,  interval_measure ,  crc ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// WEINBUS::WeinbusSlave       hmi(crc);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// MODBUSRTU::ModbusRTUTransceiverConfiguration    modbus_port_configuration;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				WEINBUS : : WeinbusSlave        hmi ( crc ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				MODBUSRTU : : ModbusRTUTransceiverConfiguration     modbus_port_configuration ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				// Registers to testing HMI interface
 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -102,7 +96,7 @@ void main()
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    PieVectTable . ECAN1INTB  =  & canb_box_isr ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    EDIS ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // InitCpuTimers();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    InitCpuTimers ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ConfigCpuTimer ( & CpuTimer0 ,  150 ,  1000 ) ;   // 1ms
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ConfigCpuTimer ( & CpuTimer1 ,  150 ,  5000 ) ;   // 5ms
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -114,38 +108,34 @@ void main()
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    PieCtrlRegs . PIEIER9 . bit . INTx7  =  1 ;   // from 5 to 8
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    PieCtrlRegs . PIEIER9 . bit . INTx8  =  1 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    periphery . config ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // periphery.config();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//----------------------------------------------------------------------------------------
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // SCIbSetup.config.baudrate = SCIB_BAUDRATE_DEFAULT;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // SCIbSetup.config.parity   = SCIB_PARITY_DEFAULT;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // SCIbSetup.config.stopbits = SCIB_STOPBITS_DEFAULT;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // SCIbSetup.config.lenght   = SCIB_LENGHT_DEFAULT;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // SCIbSetup.gpio_setup      = SCIB_GPIO_SETUP_DEFAULT;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    SCIbSetup . config . baudrate  =  SCIB_BAUDRATE_DEFAULT ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    SCIbSetup . config . parity    =  SCIB_PARITY_DEFAULT ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    SCIbSetup . config . stopbits  =  SCIB_STOPBITS_DEFAULT ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    SCIbSetup . config . lenght    =  SCIB_LENGHT_DEFAULT ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    SCIbSetup . gpio_setup       =  SCIB_GPIO_SETUP_DEFAULT ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus.gpio_re_de_setup = &DSP28335::GPIO::gpio_scib_re_de_setup;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus.gpio_driver_enable = &DSP28335::GPIO::gpio_scib_re_de_set;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus.gpio_receiver_enable = &DSP28335::GPIO::gpio_scib_re_de_clear;
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus . gpio_re_de_setup  =  & DSP28335 : : GPIO : : gpio_scib_re_de_setup ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus . gpio_driver_enable  =  & DSP28335 : : GPIO : : gpio_scib_re_de_set ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus . gpio_receiver_enable  =  & DSP28335 : : GPIO : : gpio_scib_re_de_clear ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // scib.setup(SCIbSetup);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    scib . setup ( SCIbSetup ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // interval_measure.set_magic((Uint32)0);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // interval_measure.reset();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    interval_measure . set_magic ( ( Uint32 ) 0 ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    interval_measure . reset ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus_port.setup(modbus);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus_port . setup ( modbus ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//----------------------------------------------------------------------------------------
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // Enable global Interrupts and higher priority real-time debug events:
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    EINT ;    // Enable Global interrupt INTM
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    ERTM ;    // Enable Global realtime interrupt DBGM
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    periphery . updateVersionFPGA ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // periphery.updateVersionFPGA();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//----------------------------------------------------------------------------------------
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    power_hw . get_hard_code_setup ( power_hw_setup ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modify_hardware_setup ( power_hw_setup ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    power_hw . setup ( power_hw_setup ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				//----------------------------------------------------------------------------------------    
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // MODBUS RTU
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    //
 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -157,17 +147,13 @@ void main()
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    //
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    test_init_hmi_buffers ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus_port.configure(modbus_port_configuration);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    power_hw . modbus_port . configure ( modbus_port_configuration ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus_port . configure ( modbus_port_configuration ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    clear_array ( ( uint16_t  * ) hmi . rxStack ,  sizeof ( hmi . rxStack ) / sizeof ( uint16_t ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    clear_array ( ( uint16_t  * ) hmi . txStack ,  sizeof ( hmi . txStack ) / sizeof ( uint16_t ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus_port.setRXBuffer((uint16_t*)hmi.rxStack, &hmi.rxLength);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // modbus_port.setTXBuffer((uint16_t*)hmi.txStack, &hmi.txLength);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    power_hw . modbus_port . setRXBuffer ( ( uint16_t * ) hmi . rxStack ,  & hmi . rxLength ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    power_hw . modbus_port . setTXBuffer ( ( uint16_t * ) hmi . txStack ,  & hmi . txLength ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus_port . setRXBuffer ( ( uint16_t * ) hmi . rxStack ,  & hmi . rxLength ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    modbus_port . setTXBuffer ( ( uint16_t * ) hmi . txStack ,  & hmi . txLength ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // interval_measure.set_magic(19);
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -188,19 +174,19 @@ void idle_loop()
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        infCounter + + ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        periphery . initExternalModbus ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        // periphery.initExternalModbus();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				                //
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        // MODBUS RTU HMI Service
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        //
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if ( power_hw.  modbus_port. compare_state ( MODBUSRTU : : BREAK ) ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        if (  modbus_port. compare_state ( MODBUSRTU : : BREAK ) ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            power_hw.  modbus_port. port_reset ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             modbus_port. port_reset ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            //
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        else 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            power_hw.  modbus_port. execute ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				             modbus_port. execute ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            hmi . execute ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				            //
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        } //if else
 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -213,7 +199,7 @@ void idle_loop()
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				interrupt  void  cpu_timer0_isr ( void ) 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				{ 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    periphery . processDigitalOutput ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // periphery.processDigitalOutput();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    PieCtrlRegs . PIEACK . all  | =  PIEACK_GROUP1 ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} //end
 
 
			
		 
		
	
	
		
			
				
					
						
						
						
							
								 
							 
						
					 
				
			
			 
			 
			
				@ -222,7 +208,7 @@ interrupt void cpu_timer0_isr(void)
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				interrupt  void  cpu_timer1_isr ( ) { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    CpuTimer1 . InterruptCount + + ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    periphery . processDigitalInput ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    // periphery.processDigitalInput();
 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				}