Hallo! Hab mir heute alles nötige für die kommunizierung über die Serielle schnittstelle mit dem PC zusammengebastelt. kennt jemand n kleines asm program für den ATmel128, RX1 + TX1, 9700baud 8N1 welches den inhalt eines arbeitsregisters über die rs232 auf nem terminal ausgibt??? Danke, Burt
Hallo. Ich habe es in C. Es dürfte kein Problem sein, das Programm in asm umzuschreiben. Hier ist der Code. //ICC-AVR application builder : 23.12.2005 18:30:31 // Target : M128 // Crystal: 16.000Mhz #include <iom128v.h> #include <macros.h> void port_init(void) { PORTA = 0xFF; DDRA = 0x00; PORTB = 0xFF; DDRB = 0x00; PORTC = 0xFF; //m103 output only DDRC = 0x00; PORTD = 0xFF; DDRD = 0x00; PORTE = 0xFF; DDRE = 0x00; PORTF = 0xFF; DDRF = 0x00; PORTG = 0x1F; DDRG = 0x00; } //UART1 initialisation // desired baud rate:9600 // actual baud rate:9615 (0,2%) // char size: 8 bit // parity: Disabled void uart1_init(void) { UCSR1B = 0x00; //disable while setting baud rate UCSR1A = 0x00; UCSR1C = 0x06; UBRR1L = 0x67; //set baud rate lo UBRR1H = 0x00; //set baud rate hi UCSR1B = 0x18; } //call this routine to initialise all peripherals void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts XDIV = 0x00; //xtal divider XMCRA = 0x00; //external memory port_init(); uart1_init(); MCUCR = 0x00; EICRA = 0x00; //extended ext ints EICRB = 0x00; //extended ext ints EIMSK = 0x00; TIMSK = 0x00; //timer interrupt sources ETIMSK = 0x00; //extended timer interrupt sources SEI(); //re-enable interrupts //all peripherals are now initialised } void main(void) { char c; init_devices(); while(1) { while (!(UCSR1A & (1<<RXC1))); /* Warte auf ein Zeichen */ c = UDR1; if(c=='\r') { c='\n'; while (!(UCSR1A & (1<<UDRE1))); /* warten bis Senden moeglich */ UDR1 = c; c='\r'; while (!(UCSR1A & (1<<UDRE1))); /* warten bis Senden moeglich */ UDR1 = c; } while (!(UCSR1A & (1<<UDRE1))); /* warten bis Senden moeglich */ UDR1 = c; } } Das Programm empfängt Zeichen über die serielle Schnittstelle und sendet sie zurück.
danke für den code! Zum hardware testen wäre das ja optimal. Aber mein AVR Studio (WinAVR) spuckt lauter fehler aus! Er kennt nicht mal die Ports usw.... Man muss sicherlich noch ne IncludeDatei oder sowas mit-verwenden. Mit C hab ich überhaupt keine erfahrungen darum sorry wenns ne blöde frage ist :-\ Danke, Burt
assunto nôa estou conseguindo configurar a usart do atmega 128 em asm no avr estudio
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.