ВУЗ:
Составители:
83
SIGNAL(SIG_UART_DATA) {
//ɡɚɜɟɪɲɟɧɢɟ ɩɟɪɟɞɚɱɢ
if(t_in != t_out) {
UDR = tbuf[t_out & TMASK];
t_out++;
}
else {
UCSRB &= ~(1<<UDRIE);
}
}
char tbuflen(void) {
// Retrieve pending chars in TX buffer
return(t_in – t_out);
}
int UART_putchar(char c) {
// Fills the transmit buffer, if it is full wait
while((TBUFSIZE – tbuflen()) <= 2); // Wait...
// Add data to the transmit buffer, enable TXCIE
tbuf[t_in & TMASK] = c;
t_in++;
UCSRB |= (1<<UDRIE); // Enable UDR empty interrupt
return(0);
}
char rbuflen(void) {
// Retrive pending chars in RX buffer
return(r_in – r_out);
}
int UART_getchar(void) {
// Retieves character from UART. This function is to be passed
// to fdevopen
unsigned char c;
while(rbuflen() == 0); // Wait...
c = rbuf[r_out & RMASK];
r_out++;
return(c);
}
void UART_first_init(void) {
UBRRL = 25;
UCSRB = (1<<RXCIE)|(1<<TXEN)|(1<<RXEN);
fdevopen(UART_putchar, UART_getchar, 0);
sei();
}
int main(void) {
char s[10];
84
int y,x;
char r[10];
UART_first_init(); // First init UART
for(;;) {
puts("Input and press ENTER");
while(scanf("%s",s) == 0);
x=atoi(s);
y=sqrt(x)–23;
itoa(y,r,10);
puts(r);
}
}
ɉɨɪɹɞɨɤ ɜɵɩɨɥɧɟɧɢɹ ɥɚɛɨɪɚɬɨɪɧɨɣ ɪɚɛɨɬɵ
ɇɟɨɛɯɨɞɢɦɨ ɜɵɩɨɥɧɢɬɶ ɜɫɟ ɧɟɨɛɯɨɞɢɦɵɟ ɨɩɟɪɚɰɢɢ ɫ ɩɪɨɟɤɬɨɦ Lab_8.prj ɢ
ɩɪɨɝɪɚɦɦɨɣ Lab8.c ɜɫɪɟɞɟ VMLab.
ɋɨɞɟɪɠɚɧɢɟ ɨɬɱɟɬɚ
Ɉɬɱɟɬ ɩɨ ɩɪɨɞɟɥɚɧɧɨɣ ɥɚɛɨɪɚɬɨɪɧɨɣ ɪɚɛɨɬɟ ɞɨɥɠɟɧ ɫɨɞɟɪɠɚɬɶ:
ɫɬɪɭɤɬɭɪɧɭɸ ɫɯɟɦɭ ɚɥɝɨɪɢɬɦɚ ɩɪɨɝɪɚɦɦɵ ɧɚ ɥɚɛɨɪɚɬɨɪɧɭɸ ɪɚɛɨɬɭ;
ɫɯɟɦɭ ɷɥɟɤɬɪɢɱɟɫɤɭɸ ɩɪɢɧɰɢɩɢɚɥɶɧɭɸ ɪɚɡɪɚɛɨɬɚɧɧɨɝɨ ɭɫɬɪɨɣɫɬɜɚ;
ɬɟɤɫɬ ɩɪɨɝɪɚɦɦɵ ɧɚ ɹɡɵɤɟ ɋɂ (ɪɚɫɩɟɱɚɬɤɚ ɮɚɣɥɚ *c);
ɪɚɫɩɟɱɚɬɤɚ ɮɚɣɥɚ ɩɪɨɟɤɬɚ (*.prj);
ɪɟɡɭɥɶɬɚɬɵ ɦɨɞɟɥɢɪɨɜɚɧɢɹ (ɨɤɧɨ VMLab ɫ ɡɚɩɭɳɟɧɧɨɣ ɩɪɨɝɪɚɦɦɨɣ ɢ
ɪɟɡɭɥɶɬɚɬɚɦɢ ɜɵɱɢɫɥɟɧɢɣ).
Ʉɨɧɬɪɨɥɶɧɵɟ ɜɨɩɪɨɫɵ
1. 8-ɪɚɡɪɹɞɧɵɣ ɬɚɣɦɟɪ/ɫɱɟɬɱɢɤ 0 ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
2. ɍɩɪɚɜɥɟɧɢɟ T/C0 ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
3. 16-ɪɚɡɪɹɞɧɵɣ ɬɚɣɦɟɪ/ɫɱɟɬɱɢɤ 1 ɦɢɤɪɨɤɨɧɬɪɨɥɥɟɪɚ ATmega16.
Страницы
- « первая
- ‹ предыдущая
- …
- 40
- 41
- 42
- 43
- 44
- …
- следующая ›
- последняя »