Luna
Buduća legenda
- Poruka
- 32.743
Donji video prikazuje kako da instalirate aplikaciju na početni ekran svog uređaja.
Napomena: This feature may not be available in some browsers.
zašto bre?![]()
el ste chuli da ce kafa nenormalno da poskupi![]()

Maco))
pa nisam te srela dva dana![]()


da idemo redom.. prvo žabica![]()

da idemo redom.. prvo žabica![]()

ne, bash bi bilo zanimljivo da se ti udash![]()

ne, bash bi bilo zanimljivo da se ti udash![]()

A moze i zabica kad toliko navaljuje![]()



kazi joj...sta ona tu potura mene![]()

odlični su đabo, svaki ti dao.#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#ifndef F_CPU
//define cpu clock speed if not defined
#define F_CPU 16000000
#endif
//set desired baud rate
#define BAUDRATE 57600
//calculate UBRR value
#define UBRRVAL ((F_CPU/(BAUDRATE*16UL))-1)
#define SET_SS() PORTB&=~(1<<PB0)
#define RESET_SS() PORTB|=(1<<PB0)
long unsigned int rawdata; //mlx raw data recieved via spi
long unsigned int ext_longangle; //extracted angle im 32 bits precision
unsigned int ext_angle_new=0; //extracted angle in 16 bits precision
unsigned char datas[7];
char poruka[] = "Zdravo! Ugao je:\n";
void USART_writechar(char data)
{
while(!(UCSRA & (1<<UDRE)));
UDR=data;
}
void USART_writestr(char *str)
{
while ( *str!='\0')
{
USART_writechar(*str ) ;
str++;
}
}
void InitSPI(void)
{
DDRB = ((1<<PB0)|(1<<PB3)|(1<<PB5)); // Set MOSI , SCK , and SS output
// SPI initialization
// SPI Type: Master
// SPI Clock Rate: 250 kHz
// SPI Clock Phase: Cycle Start
// SPI Clock Polarity: Low
// SPI Data Order: MSB First
SPCR = ((1<<SPE)|(1<<MSTR)|(1<<CPHA)|(1<<SPR1));
SPSR=0x00;
}
char spi(char byte)
{
SPDR = byte; //Load byte to Data register
while(!(SPSR & (1<<SPIF))); // Wait for transmission complete
byte=SPDR;
return byte;
}
void USART_Init()
{
//Set baud rate
UBRRL=UBRRVAL; //low byte
UBRRH=(UBRRVAL>>8); //high byte
//Set data frame format: asynchronous mode, even parity, 1 stop bit, 8 bit size
UCSRC=(1<<URSEL)|(0<<UMSEL)|(1<<UPM1)|(0<<UPM0)|(0<<USBS)|(0<<UCSZ2)|(1<<UCSZ1)|(1<<UCSZ0);
//Enable Transmitter and Receiver and Interrupt on receive complete
UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE);
//enable global interrupts
sei();
}
unsigned int MLXread(void)
{
unsigned int x;
//read MLX data until valid data obtained
//MLX select
SET_SS();
//wait for MLX to initialize transfer
_delay_us(6);
//send startbytes
spi(0x55);
spi(0x55);
USART_writechar('A');
//wait for MLX internal angle calculatins
_delay_us(16);
//DATA byte 1
x=spi(0x00);
_delay_us(13);
//DATA byte 2
x=(x<<8)|spi(0x00);
RESET_SS();
return x;
}
ISR(USART_RXC_vect)
{
cli();
unsigned char Temp;
//Store data to temp
Temp=UDR;
if(Temp=='A')
{
USART_writestr(poruka);
rawdata = MLXread(); //read sensor
USART_writestr(poruka);
ext_longangle = (21972*((long unsigned int)(rawdata)>>2))/10000; //angle calculation in integer aritmetic
ext_angle_new =(unsigned int)ext_longangle;
for(int i=5;i>-1;i--) //five digits number for string conversion
{
if(i==3) //add dot after 2 decimal digits
{
datas[i]='.';
i--;
}
switch(ext_angle_new%10)
{
case 0:
datas[i]='0';
break;
case 1:
datas[i]='1';
break;
case 2:
datas[i]='2';
break;
case 3:
datas[i]='3';
break;
case 4:
datas[i]='4';
break;
case 5:
datas[i]='5';
break;
case 6:
datas[i]='6';
break;
case 7:
datas[i]='7';
break;
case 8:
datas[i]='8';
break;
case 9:
datas[i]='9';
break;
}
ext_angle_new=ext_angle_new/10;
}
datas[6]='\0';
}
sei();
}
int main(void)
{
USART_Init();
InitSPI();
RESET_SS();
while(1);
//nothing here interrupts are working
return 0;
}
žabice, ja kažem da mi njega oženimo, vreme mu je![]()

jea. idem na Politiku da mu kupim ženu.![]()

ne udaraj se grdna ne bila, ko ce te ozeniti ako se nagrdish![]()
