/* * File: fixed01.c * Author: kubalik * * Created on 23. brezna 2019, 19:43 */ #include "p33EV32GM002.h" #pragma config FNOSC = FRC // pracujeme s FRC oscilatorem 7.37MHz #pragma config OSCIOFNC = ON //OSC2 is general purpose digital I/O pin #pragma config IOL1WAY = ON //Allow Only One reconfiguration pro PPS #pragma config FWDTEN = OFF // WDT and SWDTEN Disabled Watchdog vypnut /* * */ void main() { signed _Fract a , b ; unsigned _Fract c ; float d, e, f; int g,h,i; d = 0.125 ; // sem si dejte breakpoint a = (_Fract) d ; b = (_Fract) d ; b = ( signed _Fract )(-1) * b ; // funguje // e = ( float ) b ; tak na tomhle pretypovani se to hrouti e = 0.5 ; a = (_Fract) e ; c = (_Fract) e ; a = a ; b = (signed _Fract) (-1.0); // tohle NEfunguje b = ( signed _Fract )(-1) * 0.5 ; // a tohle funguje b = (signed _Fract) (-0.999); // NEfunguje b = ( signed _Fract )(-1) * 0.9999 ; // a tohle FRUNGUJE b = ( signed _Fract )(-1) * 1.0 ; // a tohle TAKY FUNGUJE b = ( signed _Fract )(-1) ; // a tohle FUNGUJE b = ( signed _Fract )(-1) * 0.12345 ; b = b ; /* Takze ASi zaver: * neumi to pretypovat zaporna cisla float * UMI to pretypovat kladna fload v rozsahu < 0; 1 ) * UMI to pretypovat integer -1 * NEUMI to pretypovat float -1.0 * Takze zaporne konstanty tomu vnutime takto: ( signed _Fract )(-1) * 0.12345 ; */ e = -0.5 ; // a pri pokusu o pretypovani zaporneho cisla se to hrouti a = (_Fract) e ; // tady je vysledek 0 -NEFUNGUJE c = (_Fract) e ; a = a ; while(1) { // sem napiseme to, co se v programu dela porad dokolecka asm(" nop " ); asm(" nop " ); asm(" nop " ); asm(" nop " ); } }