Schaltplan des angeschlossenen LCD
Die Bibliothek muß intern mit den folgenden Parametern übersetzt werden. Dies kann durch Benutzung der originalen Boardkonfiguration über --enable-board=avrctrl-8535-8mhz
oder --enable-board=avrctrl-8535-8mhz-small
erreicht werden:
AVRHAL_LIB_LCD_PORT="PORTC
"AVRHAL_LIB_LCD_PORT_DDR="DDRC
"AVRHAL_LIB_LCD_PORT_IN="PINC
"AVRHAL_LIB_LCD_RS="0
"AVRHAL_LIB_LCD_RD="1
"AVRHAL_LIB_LCD_EN="2
"AVRHAL_LIB_LCD_UNUSED_BIT="3
"AVRHAL_LIB_LCD_COM=LCD_DELAY
AVRHAL_LIB_LCD_COM=LCD_POLLING
small
Boardkonfiguration, um kleineren Code zu erhalten. Es ist also AVRHAL_LIB_LCD_COM=LCD_DELAY
vorkonfiguriert.
#include <avrhal/delay.h>
#include <avrhal/lcd.h>
uint16_t cnt = 0; SIGNAL(SIG_OVERFLOW0) { cnt++; }
int main(void) { outp(BV(CS02)|BV(CS00), TCCR0); // tmr0 @ 7,8125 kHz timer_enable_int(BV(TOIE0)); sei(); lcd_init((2 /* rows */ << 6) + 16 /* columns */); lcd_putstr("--= AVR-Ctrl =--"); lcd_putstr("Counter = "); lcd_control(1, 0, 0); // cursor block off
while (1) { lcd_gotoxy(10,1); lcd_print5(cnt); } } /* main() */
doc/examples/display
entnommen werden.[avr@host] > avr-gcc -g -O2 -Wall -Wstrict-prototypes -Wa \ -mmcu=at90s8535 -DAVRHAL_CONFIG_avrctrl_8535_8mhz_small \ -c -o main.o main.c
[avr@host] > avr-gcc -Wl,-Map=display.map,--cref -mmcu=at90s8535 \ -o display.out main.o -lavrhal-avrctrl-8535-8mhz-small
[avr@host] > avr-objcopy -O binary -R .eeprom display.out display.out-rom.bin [avr@host] > avr-objcopy -O ihex -R .eeprom display.out display.out-rom.hex [avr@host] > avr-objcopy -O srec -R .eeprom display.out display.out-rom.s19
S0120000646973706C61792D726F6D2E73313971 S113000010C02AC029C028C027C026C025C024C0CB S113001023C023C021C020C01FC01EC01DC01CC0DF S11300201BC011241FBECFE5D2E0DEBFCDBF10E060 S1130030A0E6B0E0E0ECF3E003C0C89531960D9281 S1130040A038B107D1F710E0A0E8B0E001C01D92DC S1130050A638B107E1F718C0D3CF1F920F920FB69D S11300600F9211248F939F9380918000909181002F S1130070019690938100809380009F918F910F90BF S11300800FBE0F901F901895CFE5D2E0DEBFCDBF15 S113009085E083BF81E089BF789480E936D080E62B S11300A090E0C6D081E790E0C3D084E094D061E0D2 S11300B08AE0A7D08091800090918100C8D0F7CFCA S11300C0282F85B38870922F907F892B85BBAA9A9D S11300D0AA9885B388702295207F822B85BBAA9A23 S11300E0AA980895282F95B39870807F8160982BE3 S11300F095BBAA9AAA9885B388702295207F21601F S1130100822B85BBAA9AAA980895982F8F738093FF S1130110820080937E00805C80937F00892F82958B S113012086958695837011F0833021F483E0809363 S1130130840005C0991F9927991F9093840084B364 S1130140876F84BB80E29EE4E7D085B388708063C8 S113015085BBAA9AAA9888E893E1DED085B3887013 S1130160806385BBAA9AAA988EE690E0D5D085B321 S11301708870806385BBAA9AAA9882E390E0CCD069 S113018085B38870806285BBAA9AAA9882E390E0BE S1130190C3D085B38870806285BBAA9AAA9885B3B8 S11301A08870806885BBAA9AAA9882E390E0B4D04C S11301B085B3887085BBAA9AAA9885B3887080662F S11301C085BBAA9AAA9882E390E0A6D0B0D02AD0A0 S11301D087E001D00895992782FF02C02CE001C076 S11301E028E081FF02C02A6001C0286080FF02C0AD S11301F0296001C02860822F63DF82E390E08CD005 S11302000895282F962F8091840098239093850039 S1130210ECE7F0E0E90FF11D209383008081820F69 S11302208CD0089582E04CDF80ED97E075D008957E S1130230CF93DF93D92FC82F8881882329F0899100 S113024082D088818823D9F7DF91CF910895CF9206 S1130250DF92EF92FF920F931F93E82EF92E50E155 S1130260C52E57E2D52E7D2D6C2D94D0062F172F39 S1130270862F805D68D0912F802F7D2D6C2D78D0B6 S1130280E81AF90A48EEC42E43E0D42E9F2D8E2D91 S11302907D2D6C2D7FD0062F172F862F805D53D098 S11302A0912F802F7D2D6C2D63D0E81AF90A34E646 S11302B0C32ED12C9F2D8E2D7D2D6C2D6BD0062F12 S11302C0172F862F805D3FD0912F802F7D2D6C2D91 S11302D04FD0E81AF90A9F2D8E2D6AE070E05AD0AB S11302E0062F172F862F805D2ED0912F802F23E08D S11302F0880F991F2A95E1F7800F911F800F911F96 S1130300E81AF90A8E2D805D1ED01F910F91FF907F S1130310EF90DF90CF900895E82FF92F309631F0C9 S113032000000000000000003197D1F7089581E03B S1130330C7DE80ED97E0F0DF08958068C1DE80EDD0 S113034097E0EADF0895CEDE82E390E0E5DF809176 S113035083008F5F8093830090918200891731F42A S1130360809185008F5F682F80E04BDF08950895AA S11303705527002480FF02C0060E571F660F771F03 S11303806115710521F096958795009799F7952F3A S1130390802D0895AA1BBB1B51E107C0AA1FBB1FD8 S11303A0A617B70710F0A61BB70B881F991F5A95FD S11303B0A9F780959095682F792F8A2F9B2F089500 S11303C02D2D3D204156522D4374726C203D2D2D10 S11303D000436F756E746572203D2000004000007C S9030000FC
[avr@host] > avr-objdump -x display.out > display.inf [avr@host] > avr-size -d display.out > display.siz [avr@host] > avr-size -x display.out >> display.siz
text data bss dec hex filename 960 32 6 998 3e6 display.out text data bss dec hex filename 0x3c0 0x20 0x6 998 3e6 display.out