Имам млада дъска 2.0 и се опитвам да я използвам за управление на този LCD чрез серия TTL.
Направих го да работи добре с моя Arduino uno и да пробвам Arduino код, но искам да го направя с тийнейджър и език C.
Тийнейджърът използва ATmega32u4 и ето листа с данни за този чип.
В листа с данни, започвайки на страница 186, ще намерите раздела на USART. На страница 192 има примерен код на език C за това как да инициализирате USART. Объркан съм на няколко реда и може да се нуждая от помощ.
Първо, не съм наясно какъв трябва да бъде номерът на скоростта на предаване. Моят LCD екран изисква 9600 бода с 1 стартов бит, 1 стоп бит, без бит за паритет и 8 бита за данни. На страница 189 от листа с данни ATmega32u4 направих изчислението на това каква трябва да бъде скоростта на предаване, която в случай на тийнейджърска и LCD комбинация трябва да бъде 103, тъй като честотата на чипа е 16mhz, а скоростта на предаване е 9600. Това също съвпада номерът в таблицата на страница 213 от листа с данни ATmega32u4. Така че това ли е правилният номер, който ще бъде предаден на функцията USART_Init за променливата в бод?
Аз също съм объркан от двата реда, които определят скоростта на предаване. Моето разбиране е, че въз основа на страница 209 от таблицата с данни ATmega32u4 регистрите на скоростта на предаване са разделени на висок регистър и нисък регистър, но само 8:10 бита се използват във високия регистър, което го прави 12-битов комбиниран регистър . Така че, връщайки се към кода, не разбирам някои неща:
- Защо неподписаният символ се изписва, защото предполагам, че UBRRHn трябва да е в двоична нотация?
- Също така не разбирам частта (baud >> 8), защото ако попълните 103 за baud, получавате (103 >> 8) и това не е правилно. Някой може ли да ми обясни този ред? Благодаря.
- Трябва ли бод да бъде 12-битовата двоична версия на 103, която е 00001100111? Ако е така, как ще бъде написан кодът?
Също така намерих някои примерни кодове (http://www.pjrc.com/teensy/uart.html) на уебсайта на teensy, които конфигурират UART и задават скоростта на предаване по следния начин:
Ако свържа числата, ще изглежда така:
- Числото 208 е различно от 103, така че не разбирам откъде получават уравнението, за да го изчислят.
- UBRRn се споменава само в таблицата с данни ATmega32u4 на страници 188 и 189. Изглежда, че има стойността на UBRRHn и UBRRLn. Горният код изглежда се опитва да зададе и двете едновременно, но като int. Толкова съм объркан, не е ли необходимо да е в двоична нотация?
Е, очаквам с нетърпение да преодолея тази гърбица и да продължа да танцувам LCD дисплея.:)
- BTS пуска стрийминг сериали, за да научи корейски
- Пет потенциални противника на Канело и как ще се изправят срещу мексиканския шампион в средна категория
- Регулируем стомашен балон как работи това лечение за отслабване
- 15 съвета и трикове, за да знаете как да отслабнете бързо
- MCT масло за отслабване Как действа и какви са ползите La Opinion