This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:avr:usart [2014/01/30 12:29] – rellermaa | et:avr:usart [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| Muide, saatepuhver ja vastuvõtupuhver on füüsiliselt küll erinevad registrid, kuid jagavad sama mäluaadressi ja neil on ühine nimi. Ühine andmeregister toimib nii, et sellesse kirjutades jõuab sõna saatepuhvrisse ja sellest lugedes tuleb see vastuvõtupuhvrist. Veel ühe täpsustusena tuleks arvestada, et 9-bitiste andmesõnade puhul edastatakse ja loetakse üheksandat bitti hoopis ühe seaderegistri kaudu. | Muide, saatepuhver ja vastuvõtupuhver on füüsiliselt küll erinevad registrid, kuid jagavad sama mäluaadressi ja neil on ühine nimi. Ühine andmeregister toimib nii, et sellesse kirjutades jõuab sõna saatepuhvrisse ja sellest lugedes tuleb see vastuvõtupuhvrist. Veel ühe täpsustusena tuleks arvestada, et 9-bitiste andmesõnade puhul edastatakse ja loetakse üheksandat bitti hoopis ühe seaderegistri kaudu. | ||
| - | |||
| - | ~~PB~~ | ||
| <box 100% round # | <box 100% round # | ||
| Line 18: | Line 16: | ||
| <code c> | <code c> | ||
| - | // Boodi kiiruseks 9600 bps seadmine. | + | // Boodi kiiruseks 9600 bps seadmine. |
| - | // Jagamistegur | + | // Valem: jagamistegur |
| // UBRR = 8000000 / 16 / 9600 - 1 = ~51 | // UBRR = 8000000 / 16 / 9600 - 1 = ~51 | ||
| UBRR0H = 0; | UBRR0H = 0; | ||
| UBRR0L = 51; | UBRR0L = 51; | ||
| - | // Saatja lubamine | + | UCSR0B = (1 << TXEN0); |
| - | UCSR0B = (1 << TXEN0); | + | |
| // Asünkroonse režiimi seadistamine, | // Asünkroonse režiimi seadistamine, | ||
| Line 41: | Line 38: | ||
| </ | </ | ||
| - | Seadistada 32 MHz taktsagedusel töötav | + | Seadistada 32 MHz taktsagedusel töötav |
| <code c> | <code c> | ||
| - | // Boodi kiiruseks 9600 bps seadmine. | + | // Boodi kiiruseks 9600 bps seadmine |
| // Vaja on valida skaala konstant BSCALE -7..7 | // Vaja on valida skaala konstant BSCALE -7..7 | ||
| - | // Vaja on leida perioodi seade BSEL. Valem: | + | // Vaja on leida perioodi seade BSEL |
| - | // BSEL = (F_CPU / (2^BSCALE * 16 * baudrate))-1 | + | // Valem: |
| USARTD0.BAUDCTRLA = 12; | USARTD0.BAUDCTRLA = 12; | ||
| USARTD0.BAUDCTRLB = (4<< | USARTD0.BAUDCTRLB = (4<< | ||
| - | // Saatja lubamine | + | USARTD0.CTRLB |= (USART_TXEN_bm); |
| - | USARTD0.CTRLB |= (USART_TXEN_bm); | + | |
| // Asünkroonse režiimi seadistamine, | // Asünkroonse režiimi seadistamine, | ||