c語(yǔ)言沒(méi)辦法保留分?jǐn)?shù),只有小數(shù),要寫(xiě)分?jǐn)?shù)就要用到復(fù)雜的數(shù)據(jù)結(jié)構(gòu)
創(chuàng)新互聯(lián)公司主營(yíng)豐寧網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,App定制開(kāi)發(fā),豐寧h5小程序定制開(kāi)發(fā)搭建,豐寧網(wǎng)站營(yíng)銷(xiāo)推廣歡迎豐寧等地區(qū)企業(yè)咨詢(xún)
根號(hào)就是一個(gè)函數(shù)sqrt(x)
用sqrt時(shí)候記得
#includemath.h
主機(jī):
//SPI雙機(jī)通信 主機(jī)//發(fā)送0x09,接收方PD0~3,對(duì)應(yīng)點(diǎn)小燈
//包含所需頭文件
#include avr/io.h
#include avr/interrupt.h
#include avr/signal.h
// SS PB4
// MOSI PB5
// MISO PB6
// SCK PB7
/*------宏定義------*/
#define uchar unsigned char
#define uint unsigned int
#define BIT(x) (1(x))
#define NOP() asm("nop")
#define WDR() asm("wdr")
/*------函數(shù)定義------*/
void spi_write(uchar sData);
uchar spi_read(void);
//端口初始化
void port_init(void)
{
DDRD = 0XFF;
PORTB=PORTB|0b11110000; //SCK MISO MOSI SS 使能上拉
DDRB=DDRB0b10111111; //MISO 置為輸入
DDRB=DDRB|0b10110001; //SCK MOSI SS 置為輸出
}
void spi_init(void) //spi初始化
{
DDRB|=(~(1PB5))|(1PB7)|(1PB4)|(~(1PB4));
SPCR = 0xF1;
SPSR = 0x01;
}
SIGNAL(SIG_SPI) //一個(gè)字節(jié)發(fā)送或接收完成中斷
{
PORTD=SPDR;
}
void spi_write(uchar sData)//功能:使用SPI發(fā)送一個(gè)字節(jié)
{
SPDR = sData;
while(!(SPSR BIT(SPIF)));
//sData=SPDR;//讀從機(jī)發(fā)回來(lái)的數(shù)據(jù)
}
uchar spi_read(void)//功能:使用SPI接收一個(gè)字節(jié)
{
SPDR = 0x00;
while(!(SPSR BIT(SPIF)));
return SPDR;
}
void init_devices(void)
{
cli(); //禁止所有中斷
MCUCR = 0x00;
MCUCSR = 0x80;//禁止JTAG
GICR = 0x00;
port_init();
spi_init();
sei();//開(kāi)全局中斷
}
//主函數(shù)
int main(void)
{
init_devices();
spi_write(0X09);
while(1)
{
NOP();
}
return 0;
}
從機(jī):
//SPI雙機(jī)通信 從機(jī)
//發(fā)送0x06,PA0~3接收
//包含所需頭文件
#include avr/io.h
#include avr/interrupt.h
#include avr/signal.h
/*------宏定義------*/
#define uchar unsigned char
#define uint unsigned int
#define BIT(x) (1(x))
#define NOP() asm("nop")
#define WDR() asm("wdr")
/*------函數(shù)定義------*/
void spi_write(uchar sData);
uchar spi_read(void);
//端口初始化
void port_init(void)
{
DDRA = 0XFF;
PORTB=PORTB|0b11110000; //SCK MISO MOSI SS 使能上拉
DDRB=DDRB0b01001111; // SCK MOSI SS 置為輸入
DDRB=DDRB|0b01000001; // MISO 置為輸出
}
void spi_init(void) //spi初始化
{
DDRB|=(1PB5)|(~(1PB7))|(~(1PB4))|(~(1PB4));
SPCR = 0xE1;
SPSR = 0x00;
}
SIGNAL(SIG_SPI) //一個(gè)字節(jié)發(fā)送或接收完成中斷
{
DDRA=0XFF;
PORTA=spi_read();
}
//功能:使用SPI發(fā)送一個(gè)字節(jié)
void spi_write(uchar sData)
{
SPDR = sData;
while(!(SPSR BIT(SPIF)));
//sData=SPDR;//讀從機(jī)發(fā)回來(lái)的數(shù)據(jù)
}
//功能:使用SPI接收一個(gè)字節(jié)
uchar spi_read(void)
{
SPDR = 0x00;
while(!(SPSR BIT(SPIF)));
return SPDR;
}
void init_devices(void)
{
cli(); //禁止所有中斷
MCUCR = 0x00;
MCUCSR = 0x80;//禁止JTAG
GICR = 0x00;
port_init();
spi_init();
sei();//開(kāi)全局中斷
}
//主函數(shù)
int main(void)
{
init_devices();
spi_write(0X06);
while(1)
{
NOP();
}
return 0;
}
c語(yǔ)言 函數(shù), 是有類(lèi)型的。當(dāng)你沒(méi)有寫(xiě)明類(lèi)型時(shí),默認(rèn)是整型。
函數(shù) 里通常要有 return 語(yǔ)句。return 語(yǔ)句 用來(lái) 返回?cái)?shù)值。
只有 void 型函數(shù) 沒(méi)有 返回值, 不需要 return 語(yǔ)句。
main 函數(shù) 是主函數(shù),它也 需要 return 語(yǔ)句,習(xí)慣上,大家都用 return 0;
main 函數(shù)的返回值 是送返給操作系統(tǒng),初級(jí)編程人員可以不必細(xì)究 它的作用,程序里寫(xiě)上 return 0; 或 return 1; 即可。
一個(gè)函數(shù)可以有多個(gè)return 語(yǔ)句,根據(jù)符合某條件執(zhí)行相應(yīng)的return 語(yǔ)句。 程序執(zhí)行到 return 語(yǔ)句就 送返 返回值,結(jié)束本函數(shù)。
return 語(yǔ)句 應(yīng)寫(xiě)成
return 表達(dá)式;
最簡(jiǎn)單的 表達(dá)式 是 1個(gè)常數(shù),例如 0。
少數(shù)編譯器允許就寫(xiě) return ; 這時(shí) 默認(rèn) 返回 0。