Changeset e5dd493 in avrstuff
- Timestamp:
- Sep 8, 2019, 9:09:42 AM (5 years ago)
- Branches:
- main
- Children:
- c956fd4
- Parents:
- 6f22754
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
libs/usart/usart.c
r6f22754 re5dd493 8 8 #endif 9 9 10 #ifdef __AVR_ATmega128__11 10 // FIXME there are two USARTs in this case and we should be able to drive either 12 #define UBRRH UBRR0H 13 #define UBRRL UBRR0L 14 #define UCSRA UCSR0A 15 #define UCSRC UCSR0C 16 #define UCSRB UCSR0B 17 #define UDR UDR0 11 12 // Compatibility for devices with single USART only 13 #ifdef __AVR_ATmega8__ 14 #define UBRR0H UBRRH 15 #define UBRR0L UBRRL 16 #define UCSR0A UCSRA 17 #define UCSR0C UCSRC 18 #define UCSR0B UCSRB 19 #define UDR0 UDR 20 #define UDRE0 UDRE 21 #define RXC0 RXC 18 22 #endif 19 23 20 //This function is used to initialize the USART21 24 void USARTInit() 22 25 { … … 51 54 52 55 53 //This fuction writes the given "data" to54 //the USART which then transmit it via TX line55 56 void USARTWriteChar(char data) 56 57 { … … 67 68 68 69 69 //This function is used to read the available data70 //from USART. This function will wait untill data is71 //available.72 70 char USARTReadChar() 73 71 { -
libs/usart/usart.h
r6f22754 re5dd493 1 1 /* USART i/o library 2 * Copyright 2010-201 4, Adrien Destugues <pulkomandy@pulkomandy.tk>2 * Copyright 2010-2019, Adrien Destugues <pulkomandy@pulkomandy.tk> 3 3 * Distributed under the terms of the MIT Licence */ 4 4 5 #include <stdint.h> 5 /** Initialize the USART. 6 * 7 * Baudrate is set according to the BAUD define. 8 * Currently the USART is set to 8N1, except on ATmega128 where it's set to 7E1 9 * (don't ask why, I don't remember). This should be made configurable. 10 * 11 * On ATmega128, this always uses the first USART. 12 */ 13 void USARTInit(); 6 14 7 void USARTInit(); 15 /** Write a byte to the USART. 16 * 17 * This function blocks if the USART is not ready to accept any data. There is 18 * no IO buffering. 19 */ 8 20 void USARTWriteChar(char data); 21 22 /** Write an 8bit integer as hex to the USART. 23 */ 9 24 void USARTWriteHex(unsigned char i); 25 26 /** This function is used to read the available data from USART. 27 * 28 * It waits untill data is available. 29 */ 30 char USARTReadChar(); -
test_uart/Makefile
r6f22754 re5dd493 1 MCU=atmega8 2 BAUD=57600 3 FCPU=16000000 4 PROG=avr109 -P /dev/ports/usb0 -b $(BAUD) -u 5 1 6 testusart.hex: testusart.bin 2 7 avr-objcopy -j .text -j .data -O ihex testusart.bin testusart.hex 3 8 4 9 testusart.bin: usart.o main.o 5 avr-gcc usart.o main.o -o testusart.bin -mmcu= atmega8-Os10 avr-gcc usart.o main.o -o testusart.bin -mmcu=$(MCU) -Os 6 11 7 12 main.o: testuart.c ../libs/usart/usart.h 8 avr-gcc -c testuart.c -mmcu= atmega8 -Os -o main.o -mmcu=atmega8 -Os13 avr-gcc -c testuart.c -mmcu=$(MCU) -Os -o main.o 9 14 10 15 usart.o: ../libs/usart/usart.c ../libs/usart/usart.h 11 avr-gcc -c ../libs/usart/usart.c -o usart.o -mmcu=atmega8 -Os 16 avr-gcc -c ../libs/usart/usart.c -o usart.o -mmcu=$(MCU) -DBAUD=$(BAUD) -DF_CPU=$(FCPU) -Os 17 18 flash: testusart.hex 19 avrdude -c $(PROG) -p $(MCU) -Uflash:w:testusart.hex 20 21 clean: 22 rm *.bin *.o *.hex -
test_uart/testuart.c
r6f22754 re5dd493 3 3 void main(void) 4 4 { 5 USARTInit( 51);5 USARTInit(); 6 6 USARTWriteChar('Z'); 7 7 while(1); -
test_uart/testusart.hex
r6f22754 re5dd493 2 2 :1000100012C011C010C00FC00EC00DC00CC00BC06C 3 3 :100020000AC009C008C011241FBECFE5D4E0DEBF5E 4 :10003000CDBF26D02 BC0E4CF89B990BD86E880BD665 :100040008 8E18AB908955D9BFECF8CB908955F9BC66 :10005000 FECF8CB10895982F92959F709A3010F42E7 :10006000 905D01C0995C5D9BFECF9CB98F708A301A8 :10007000 10F4805D01C0895C5D9BFECF8CB90895529 : 1000800083E390E0D9DF8AE5DEDFFFCFF894FFCF8E4 :10003000CDBF26D029C0E4CF10BC82E289B9599A3D 5 :1000400086E880BD88E18AB908955D9BFECF8CB9B2 6 :1000500008955F9BFECF8CB10895CF93C82F8295F2 7 :100060008F708A3048F4805DF0DF8C2F8F708A307B 8 :1000700028F4805DCF91E9CF895CF6CF895CFACF17 9 :0C008000DBDF8AE5E2DFFFCFF894FFCF62 10 10 :00000001FF
Note:
See TracChangeset
for help on using the changeset viewer.