]> rtime.felk.cvut.cz Git - mf624-simulink.git/blobdiff - mf624_SIMULINK.h
IRC inputs support implemented.
[mf624-simulink.git] / mf624_SIMULINK.h
index 5c57b1d56654138b19df000a7b882cfec23fef69..c369410568041a951afbc182749e3112b20eac44 100644 (file)
@@ -7,6 +7,14 @@
 
 #include "simstruc.h"
 
+/*masked fields macros*/
+#ifndef __val2mfld
+#define __val2mfld(mask,val) (((mask)&~((mask)<<1))*(val)&(mask))
+#endif
+#ifndef __mfld2val
+#define __mfld2val(mask,val) (((val)&(mask))/((mask)&~((mask)<<1)))
+#endif
+
 /* Hardware specific */
 /* BAR0 */
 #define GPIOC_reg              0x54
@@ -137,7 +145,8 @@ typedef struct mf624_state_t {
        bar_mapping_t bar4;
        int status;
        int ADC_enabled; // Which ADCs are enabled
-    int DOut;
+       int DOut;
+       uint32_t IRC_mode;
 } mf624_state_t;
 
 //extern mf624_state_t mf624_state;
@@ -197,6 +206,8 @@ extern int ADC_enable(mf624_state_t* mfst, adc_channel_t channel);
 
 extern double ADC_read(mf624_state_t* mfst, adc_channel_t channel);
 
+extern uint32_t IRC_mode_change(mf624_state_t* mfst, uint32_t change_mask, uint32_t change_val);
+
 int mf624_init(SimStruct *S);
 int mf624_check(SimStruct *S);
 int mf624_done();