سلام.
ببخشید میشه بگید مشکل این کد چیه ؟ اگه بجای 9 عدد 8 یا کنتر رو بفرستم اون طرف میگیره ولی از 8 به بالا چیزی دریافت نمیشه :
قالب اطلاعات هم میخاستم به این شکل باشه : 8 بیت اطلاعات 1 بیت توقف و بیت توازن زوج
کد میکرو ARM : at91sam7s64 :
کد میکرو AVR :
ببخشید میشه بگید مشکل این کد چیه ؟ اگه بجای 9 عدد 8 یا کنتر رو بفرستم اون طرف میگیره ولی از 8 به بالا چیزی دریافت نمیشه :
قالب اطلاعات هم میخاستم به این شکل باشه : 8 بیت اطلاعات 1 بیت توقف و بیت توازن زوج
کد میکرو ARM : at91sam7s64 :
کد:
#include<Atmel/ioat91sam7s64.h> void main() { AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; AT91C_BASE_RSTC->RSTC_RMR = 0XA5000001; AT91C_BASE_CKGR->CKGR_MOR = 0XF01; AT91C_BASE_CKGR->CKGR_PLLR = 0X2903FFC; AT91C_BASE_PMC->PMC_MCKR = 0X3; AT91C_BASE_PMC->PMC_SCER = 0X1; AT91C_BASE_PMC->PMC_PCER = (1<<AT91C_ID_US1); AT91C_BASE_PIOA->PIO_PDR = (1<<21 | 1<<22); AT91C_BASE_PIOA->PIO_MDER = (1<<21 | 1<<22); AT91C_BASE_PIOA->PIO_ASR = (1<<21 | 1<<22); AT91C_BASE_US1->US_CR = 0X08; AT91C_BASE_US1->US_MR = 0XD0; AT91C_BASE_US1->US_BRGR = 0X27; AT91C_BASE_US1->US_CR = 0X40; while(1) { while((AT91C_BASE_US1->US_CSR&0X02)!=0X02); AT91C_BASE_US1->US_THR = 0X09; } }
کد:
/***************************************************** This program was produced by the CodeWizardAVR V2.05.3 Standard Automatic Program Generator © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l. http://www.hpinfotech.com Project : Version : Date : 05/31/2014 Author : Techno-Electro Company : If You Like This Software,Buy It Comments: Chip type : ATmega32A Program type : Application AVR Core Clock frequency: 8.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 512 *****************************************************/ #include <mega32a.h> #include <delay.h> #ifndef RXB8 #define RXB8 1 #endif #ifndef TXB8 #define TXB8 0 #endif #ifndef UPE #define UPE 2 #endif #ifndef DOR #define DOR 3 #endif #ifndef FE #define FE 4 #endif #ifndef UDRE #define UDRE 5 #endif #ifndef RXC #define RXC 7 #endif #define FRAMING_ERROR (1<<FE) #define PARITY_ERROR (1<<UPE) #define DATA_OVERRUN (1<<DOR) #define DATA_REGISTER_EMPTY (1<<UDRE) #define RX_COMPLETE (1<<RXC) // Get a character from the USART Receiver #ifndef _DEBUG_TERMINAL_IO_ #define _ALTERNATE_GETCHAR_ #pragma used+ char getchar(void) { char status,data; while (1) { while (((status=UCSRA) & RX_COMPLETE)==0); data=UDR; if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0) return data; } } #pragma used- #endif // Standard Input/Output functions #include <stdio.h> #define LED_DDR DDRA.0 #define LED_PORT PORTA.0 void main(void) { // Declare your local variables here // Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x00; DDRB=0x00; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer1 Stopped // Mode: Normal top=0xFFFF // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer2 Stopped // Mode: Normal top=0xFF // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: 8 Data, 1 Stop, Even Parity // USART Receiver: On // USART Transmitter: Off // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x10; UCSRC=0x26; UBRRH=0x00; UBRRL=0x33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; LED_DDR = 1; LED_PORT = 0; while (1) { int data = 0; int i=0; delay_ms(1000); data = getchar(); for(i=0; i<data; i++) { LED_PORT = 1; delay_ms(250); LED_PORT = 0; delay_ms(250); } delay_ms(1000); } }