]> rtime.felk.cvut.cz Git - mf624-simulink.git/blobdiff - mf624_SIMULINK.c
IRC inputs support implemented.
[mf624-simulink.git] / mf624_SIMULINK.c
index 59242a577a2105777acceafea5ee2ffb74eb57fe..ebd22760240c5939ad75a629dcb5cf01c19b04ac 100644 (file)
@@ -216,6 +216,16 @@ double ADC_read(mf624_state_t* mfst, adc_channel_t channel)
        return 10.0 * ((int16_t) (result << 2)) / (double) 0x8000;
 }
 
+extern uint32_t IRC_mode_change(mf624_state_t* mfst, uint32_t change_mask, uint32_t change_val)
+{
+       /* This sequence should be protected by mutex to protect changes in multirate systems */
+       mfst->IRC_mode = (mfst->IRC_mode & ~change_mask) | (change_val & change_mask);
+       mf624_write32(mfst->IRC_mode, MFST2REG(mfst, 4, IRCCTRL_reg));
+        /*printf("change_mask 0x%08x, change_val 0x%08x\n", change_mask, change_val);*/
+        /*printf("IRC mode set to %08lx\n", mfst->IRC_mode);*/
+       return mfst->IRC_mode;
+}
+
 
 static int open_device(char* path) {
        int device_fd;