/* See sfuntmpl_doc.c for more details on the macros below */
ssSetNumSFcnParams(S, 1); /* Number of expected parameters */
/* See sfuntmpl_doc.c for more details on the macros below */
ssSetNumSFcnParams(S, 1); /* Number of expected parameters */
ssSetNumContStates(S, 0);
ssSetNumDiscStates(S, 0);
ssSetNumContStates(S, 0);
ssSetNumDiscStates(S, 0);
if(ADCCMask > 255 || ADCCMask < 0) {
ssSetErrorStatus(S,"Invalid parameter mask, set to 0-255");
}
if(ADCCMask > 255 || ADCCMask < 0) {
ssSetErrorStatus(S,"Invalid parameter mask, set to 0-255");
}
int ADCCMask = (int)MASK_PRM(S);
if(ADCCMask > 255 || ADCCMask < 0) {
ssSetErrorStatus(S,"Invalid parameter mask, set to 0-255");
}
int ADCCMask = (int)MASK_PRM(S);
if(ADCCMask > 255 || ADCCMask < 0) {
ssSetErrorStatus(S,"Invalid parameter mask, set to 0-255");
}
mf624_write16(mfst->ADC_enabled, MFST2REG(mfst, 2, ADCTRL_reg));
mf624_write16(mfst->ADC_enabled, MFST2REG(mfst, 2, ADCTRL_reg));
- mf624_read16(MFST2REG(mfst, 2, ADSTART_reg));
-
+ mf624_read16(MFST2REG(mfst, 2, ADSTART_reg));
+ #endif /*WITHOUT_HW*/
+
+ y = alloca(ADCChannels * sizeof(*y));
+
for(i=0; i < ADCChannels;i++){
y[i]=ssGetOutputPortSignal(S,i);
}
for(i=0; i < ADCChannels;i++){
y[i]=ssGetOutputPortSignal(S,i);
}
- while((mf624_read32(MFST2REG(mfst, 0, GPIOC_reg)) & GPIOC_EOLC_mask)) {
- for (i = 0; i < 1000; i++) {} // small wait
- }
-
-
- for(i=1; i < ADCChannels;i+=2){
+ while((mf624_read32(MFST2REG(mfst, 0, GPIOC_reg)) & GPIOC_EOLC_mask)) {
+ for (i = 0; i < 1000; i++) {} // small wait
+ }
+
+ for(i=1; i < ADCChannels;i+=2){
res = mf624_read32(MFST2REG(mfst, 2, ADDATA0_reg));
res1= res >> 16;
res = res & 0xFFFF;
*y[i-1] = (real_T) (10.0 * ((int16_t) (res << 2)) / (double) 0x8000);
*y[i] = (real_T) (10.0 * ((int16_t) (res1 << 2)) / (double) 0x8000);
}
res = mf624_read32(MFST2REG(mfst, 2, ADDATA0_reg));
res1= res >> 16;
res = res & 0xFFFF;
*y[i-1] = (real_T) (10.0 * ((int16_t) (res << 2)) / (double) 0x8000);
*y[i] = (real_T) (10.0 * ((int16_t) (res1 << 2)) / (double) 0x8000);
}
if(i == ADCChannels){
res = mf624_read16(MFST2REG(mfst, 2, ADDATA0_reg));
*y[ADCChannels-1]=(real_T)(10.0 * ((int16_t) (res << 2)) / (double) 0x8000);
}
if(i == ADCChannels){
res = mf624_read16(MFST2REG(mfst, 2, ADDATA0_reg));
*y[ADCChannels-1]=(real_T)(10.0 * ((int16_t) (res << 2)) / (double) 0x8000);
}