سلام.
ببخشید میشه بگید مشکل این کد چیه ؟ اگه بجای 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);
}
}

