BASIC4MCU | 질문게시판 | 앱인벤터에 값을 표기하는데 앞에 ( 가 붙는데 떼고 싶습니다.
페이지 정보
작성자 어려운AVR 작성일2019-12-11 22:47 조회3,005회 댓글0건본문
#define F_CPU 8000000UL
#define __DELAY_BACKWARD_COMPATIBLE__
#include <avr/io.h>
#include <util/delay.h>
char c;
//
void USART_Init(unsigned int ubrr);
void USART_TX(unsigned char data);
unsigned char USART_RX();
void USART_Flush();
unsigned char CHKchar();
//
void RC_Motor(int angle){ // angle:-90도~+90도
int i;
if(angle<-90)angle=-90;
if(angle> 90)angle= 90;
i=(angle)*12+1499;
OCR1A=i; //PB5
}
void USART_Init(unsigned int ubrr)
{
UBRR1H = (unsigned char)(ubrr>>8);
UBRR1L = (unsigned char)ubrr;
UCSR1B = (1<<RXEN1)|(1<<TXEN1);
UCSR1C = 0x06; // UART Mode, 8 Bit Data, No Parity, 1 Stop Bit
}
void USART_TX(unsigned char data) // Transmit
{
while ( !( UCSR1A & (1<<UDRE1)) );
UDR1 = data;
}
unsigned char USART_RX() // Receive
{
while ( !(UCSR1A & (1<<RXC1)) );
return UDR1;
}
unsigned char CHKchar()
{
if(UCSR1A & (1<<RXC1)) //수신 문자가 있으면 1
return(1); //1 리턴
else
return(0);
}
void USART_Flush() // Flush
{
unsigned char dummy;
while ( UCSR1A & (1<<RXC1) ) dummy = UDR1;
}
//
int main(){
unsigned int num[10][8] = {
{0x18, 0x24, 0x24, 0x24, 0x24, 0x24, 0x24, 0x18}, // 0
{0x3E, 0x08, 0x08, 0x08, 0x08, 0x28, 0x18, 0x08}, // 1
{0x7E, 0x20, 0x10, 0x08, 0x04, 0x42, 0x42, 0x3C}, // 2
{0x3C, 0x42, 0x02, 0x02, 0x3C, 0x02, 0x42, 0x3C}, // 3
{0x08, 0x08, 0x08, 0xFF, 0x48, 0x28, 0x18, 0x08}, // 4
{0x7C, 0x02, 0x02, 0x02, 0x7C, 0x40, 0x40, 0x7E}, // 5
{0x3C, 0x42, 0x42, 0x42, 0x7C, 0x40, 0x42, 0x3C}, // 6/
{0x04, 0x04, 0x04, 0x04, 0x04, 0x24, 0x24, 0x3C}, // 7
{0x3C, 0x42, 0x42, 0x42, 0x3C, 0x42, 0x42, 0x3C}, // 8
{0x3C, 0x42, 0x02, 0x02, 0x3E, 0x42, 0x42, 0x3C} // 9
};
unsigned int Dot_Com[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
unsigned int Tem_tx[10] = {0,1,2,3,4,5,6,7,8,9};
int sec, j;
unsigned char ADCresult;
DDRA = 0xFF;
DDRB = 0x20;
DDRC = 0xFF;
DDRD = 0xFF;
ADMUX = 0xE0;//REFS 11 : Internal 2.5v w/ ext.capacitor
//ADLAR 1 : Left adjust ena.
//MUX 00000 : select ADC0 (No gain)
ADCSR = 0xA7; //ADEN 1 : Enable
//ADSC 0 : Start Conversion
//ADFR 1 : Free Running Select
//ADIF 0 : Interrupt Flag
//ADIE 0 : Interrupt Ena.
//ADPS 111 : Prescaler 128
ADCSR |= 0x40; //0100 0000 : Start Conversion
TCCR1A=0x82;
TCCR1B=0x1A;
OCR1A=1499;
ICR1=19999;
USART_Init(12);
while(1){
while( (ADCSR & 0x10) == 0); //0001 0000 : Interrupt Flag 0 -> 1
ADCSR |= 0x10; // ADCF 비트 클리어
ADCresult = ADCH; // 변환 결과를 읽음
for(sec=0; sec<10; sec++) {
for(j=0; j<8; j++) {
PORTC = (num[ADCresult%100/10][j]);
PORTD = num[ADCresult%10][j];
PORTA = Dot_Com[j];
USART_TX(Tem_tx[ADCresult%100/10]*10+Tem_tx[ADCresult%10]);
_delay_ms(1);
}
}
if(!CHKchar()) //CHKchar = 0 일때(수신 문자가 없을때)
{
continue;
}
c = USART_RX();
if(c=='1'){RC_Motor(90);_delay_ms(1);}
if(c=='2'){RC_Motor( 0);_delay_ms(1);}
}
}
코드는 이러한 형태이며 텍스트 표기는 이미지 처럼 나오고 있고 앱인벤터는 이미지처럼 설정 했습니다.
어느 부분을 수정하면 앞에 있는 괄호가 사라지나요?
댓글 0
조회수 3,005등록된 댓글이 없습니다.