Schaltplan angeschlossener OW Geräte
Die Bibliothek muß intern mit den folgenden Parametern übersetzt werden. Dies kann durch Benutzung der originalen Boardkonfiguration über --enable-board=avrctrl-8535-8mhz
erreicht werden:
AVRHAL_LIB_OW_PORT="PORTD
"AVRHAL_LIB_OW_PORT_DDR="DDRD
"AVRHAL_LIB_OW_PORT_IN="PIND
"AVRHAL_LIB_OW_DQBIT="4
"avrctrl-8535-8mhz-small
benutzt werden. Dabei wird aber die Anzahl der benutzbaren Geräte automatisch auf 1 beschränkt. Das muß auch bei der Beschaltung beachtet werden!
#include <avrhal/delay.h>
#include <avrhal/lcd.h>
#include <avrhal/ow.h>
int main(void) { ow_device_st devarray[2]; unsigned char devices; unsigned int waiting = 5000; lcd_init((2 /* rows */ << 6) + 16 /* columns */); lcd_putstr("--= AVR-Ctrl =--"); lcd_control(1, 0, 0); // cursor block off if (!ow_init()) { lcd_putstr("ERROR: ow_init()"); while (1); } devices = ow_rom_search(devarray);
while (1) { unsigned char dev; lcd_gotoxy(0,1); lcd_cleol(); #ifdef __AVRHAL_LIB_SMALL lcd_putstr("OW_DEVICES: "); lcd_print2(devices); #else lcd_printf("OW_DEVICES: %d", devices); #endif delay_ms(waiting); for (dev = 0; dev < devices; dev++) { unsigned char snidx; #ifdef __AVRHAL_LIB_SMALL unsigned char *cp = (unsigned char *)&(devarray[dev].rom_code); #endif lcd_gotoxy(0,1); lcd_cleol(); #ifdef __AVRHAL_LIB_SMALL for (snidx = 0; snidx < sizeof(ow_rom_code_st); snidx++) { lcd_printhex(cp[snidx]); } #else lcd_printf("%x", devarray[dev].rom_code.family); for (snidx = 0; snidx < 6; snidx++) { lcd_printf("%x", devarray[dev].rom_code.serial[snidx]); } lcd_printf("%x", devarray[dev].rom_code.crc); #endif delay_ms(waiting); } } } /* main() */
doc/examples/ow
entnommen werden.devarray[]
übereinstimmen. In unserem Beispiel: ow_device_st devarray[2];
[avr@host] > avr-gcc -g -O2 -Wall -Wstrict-prototypes -Wa \ -mmcu=at90s8535 -DAVRHAL_CONFIG_avrctrl_8535_8mhz \ -c -o main.o main.c
[avr@host] > avr-gcc -Wl,-Map=ow.map,--cref -mmcu=at90s8535 \ -o ow.out main.o -lavrhal-avrctrl-8535-8mhz
[avr@host] > avr-objcopy -O binary -R .eeprom ow.out ow.out-rom.bin [avr@host] > avr-objcopy -O ihex -R .eeprom ow.out ow.out-rom.hex [avr@host] > avr-objcopy -O srec -R .eeprom ow.out ow.out-rom.s19
S00D00006F772D726F6D2E73313986 S113000010C02AC029C028C027C026C025C024C0CB S113001023C022C021C020C01FC01EC01DC01CC0E0 S11300201BC011241FBECFE5D2E0DEBFCDBF10E060 S1130030A0E6B0E0E6EAF8E003C0C89531960D9278 S1130040AA3AB107D1F710E0AAEAB0E001C01D92C4 S1130050A43BB107E1F701C0D3CFCDE4D2E0DEBFCA S1130060CDBF80E9D5D080E690E079D184E036D167 S113007021D2882321F481E790E071D1FFCF8C2F26 S11300809D2F0196CAD2982E482E552442E8242E3C S113009040E0342E6C2E7D2E0894611C711C31E9D5 S11300A0A32E30E0B32E61E080E02ED167D05F92C2 S11300B04F923F922F92D6D288E893E153D0EE2408 S11300C00F900F900F900F90E91468F761E080E0B3 S11300D01BD154D08E2D9927082F192F000F111FD3 S11300E0000F111F000F111F080F191F060D171DF8 S11300F0F12FE02F808199279F938F93BF92AF9226 S1130100B1D2FF240F900F900F900F90C02ED12EDC S11301100F5F1F4FF12FE02F81910E2F1F2F992773 S11301209F938F93BF92AF929DD20F900F900F9099 S11301300F90F394F5E0FF1568F7FD2DEC2D878102 S113014099279F938F93BF92AF928CD288E893E1C3 S113015009D00F900F900F900F90E394E91408F4D6 S1130160B5CFA1CFE82FF92F309639F0A0EDB7E045 S11301701197F1F7A8953197C9F70895CF93C091D6 S1130180B10080E2D6D08091B1008823D1F780916C S1130190B3008150682F8C2FB7D0CF91089584B3CA S11301A08870876084BBA99AA89881E090E016D3F0 S11301B0AA9A81E090E012D39F99F7CFAA9884B3CA S11301C0876F84BB0895282F85B38870922F907F02 S11301D0892B85BBAA9AAA9885B388702295207F1B S11301E0822B85BBAA9AAA980895282F95B3987054 S11301F0807F8160982B95BBAA9AAA9885B3887052 S11302002295207F2160822B85BBAA9AAA98089503 S1130210982F8F738093B00080939600805C8093B6 S11302209700892F829586958695837011F0833087 S113023021F483E08093B20005C0991F9927991F88 S11302409093B20084B3876F84BB80E29EE4C6D2ED S113025085B38870806385BBAA9AAA9888E893E1DD S1130260BDD285B38870806385BBAA9AAA988EE6AE S113027090E0B4D285B38870806385BBAA9AAA98AB S113028082E390E0ABD285B38870806285BBAA9A82 S1130290AA9882E390E0A2D285B38870806285BB7D S11302A0AA9AAA9885B38870806885BBAA9AAA98E6 S11302B082E390E093D285B3887085BBAA9AAA980A S11302C085B38870806685BBAA9AAA9882E390E079 S11302D085D28FD22AD087E001D00895CF93992771 S11302E082FF02C0CCE001C0C8E081FF02C0CA6046 S11302F001C0C86080FF02C0C96001C0C8604FDF90 S11303008C2F61DFCF910895282F962F8091B20012 S113031098239093B300E4E9F0E0E90FF11D2093F2 S1130320B1008081820F69D2089539DF82E04BDF0A S113033008951F93182F33DF812F57DF8091B10069 S11303408F5F8093B1009091B000891731F4809150 S1130350B3008F5F682F80E0D7DF1F910895CF939C S1130360DF93D92FC82F8881882329F08991E1DF71 S113037088818823D9F7DF91CF910895949880B329 S11303809927282F392F2071307084FD03C0932FB3 S1130390822F08958C9A80EE91E020D28C988CE381 S11303A090E01CD2849906C084EA91E017D281E0DF S11303B090E0089584EA91E011D280E090E00895FD S11303C008959498882341F08C9A86E090E006D2B0 S11303D08C9880E490E007C08C9A8CE390E0FED186 S11303E08C988AE090E0FAD108950895CF93DF9332 S11303F094988C9A86E090E0F1D18C9889E090E012 S1130400EDD180B39927D92FC82FC071D07084FD46 S113041006C087E390E0E2D18C2F9D2F05C087E3CF S113042090E0DCD181E090E0DF91CF910895FF92DC S11304300F931F93CF93DF93F82EC0E0D0E001E039 S113044010E0912F802F0C2E02C0880F991F0A9460 S1130450E2F78F21B6DFC00FD11FC830D1057CF37E S1130460912F802FE5E0CDB7DEB70EC20F931F9317 S1130470CF93DF9380E000E010E0C82FDD27B6DFE4 S1130480882359F081E090E0002E02C0880F991F64 S11304900A94E2F78C2B9D2B02C08C2F9D2F0F5FAB S11304A01F4F083011054CF39927DF91CF911F910D S11304B00F91089594988C981092AC005FDF882374 S11304C019F480E090E0089581E090E008950895A3 S11304D0AF92BF92CF92DF92EF92FF920F931F934E S11304E0CF93082F192F21E0E22ECC24AC2CFE2C24 S11304F0DC2C8091AF00882309F069C03FDF88239A S113050049F4C092AE00C092AF00C092AD0080E04A S113051090E06DC080EF8BDF69DFC82F67DFC130EB S113052019F4813009F440C0C81711F09C2F18C089 S11305308091AD00E81640F4F12FE02FEA0DF11D93 S113054090819F2129F003C090E0E81609F491E01E S1130550992331F4CE2C88E08E1510F0E092AE0091 S11305602A2D3327CE2DCF5FBF2CBB0C913039F40D S1130570F12FE02FE20FF31F80818F2907C0F12FA5 S1130580E02FE20FF31FF09480818F218083892F65 S113059018DFEC2EFB2CBB2019F4A39491E0F92E68 S11305A0E7E0EA1508F0B8CFF0E4FE1580F468E05F S11305B070E0912F802FEDD0882349F4C092AD00D4 S11305C0CC2019F481E08093AF0081E0D82EDD20A7 S11305D029F0F12FE02F8081882339F4DD24D09293 S11305E0AE00D092AF00D092AD008D2D9927CF915F S11305F01F910F91FF90EF90DF90CF90BF90AF903D S113060008951092AE001092AF001092AD0060DF1A S1130610992708955DDF992708959093AB008093FF S1130620AA001092AC00EDDF8823C1F08091AC00E9 S11306308F5F8093AC009927282F392F43E0220F36 S1130640331F4A95E1F7280F391F8091AA00909132 S1130650AB00820F931FDEDF882341F78091AC004B S113066099270895A0E0B0E0E7E3F3E0EAC04FE0A3 S1130670A42EB12CAC0EBD1EFB2DEA2DC190D19041 S1130680AE2EBF2EFD2DEC2D8191CE2EDF2E853288 S113069059F0882309F47BC04CDEFD2DEC2D8191AB S11306A0CE2EDF2E8532A9F7FD2DEC2D8191CE2E95 S11306B0DF2E282F332727FD309524363105B9F056 S11306C02536310524F42336310541F00EC0253793 S11306D0310569F02837310591F007C0FB2DEA2D6B S11306E022E030E0A20EB31E808123DECBCF3AE0BD S11306F0832E912C20E1E22E27E2F22E05C090E118 S1130700E92EF12C8E2C9F2CFB2DEA2D22E030E0DB S1130710A20EB31E008111818837ECF4843639F4BB S113072017FF05C0109501951F4F8DE202DE32E0E0 S1130730E316F10480F00E151F0568F49F2D8E2D2D S11307406AE070E062D0E62EF72E6230710518F090 S11307500617170798F3912F802F7F2D6E2D55D0F4 S1130760F72FE62FE856FF4F8081E3DD912F802F8E S11307707F2D6E2D4AD0082F192F9F2D8E2D792D68 S1130780682D43D0E62EF72E672B29F77BCFECE0BC S113079074C0F92FE82F40E0615070408FEF6F3F35 S11307A07807C9F05191A8E0252F3327842F992782 S11307B08227932780FF05C088E148274695406833 S11307C001C046955695A15079F7615070408FEF5E S11307D06F3F780739F7842F99270895E82FF92F69 S11307E0309631F000000000000000003197D1F78E S11307F00895D5DC81E0E7DC08951F93182FCFDC42 S11308001068812FE0DC1F910895AA1BBB1B51E1E6 S113081007C0AA1FBB1FA617B70710F0A61BB70B6C S1130820881F991F5A95A9F780959095682F792F5D S11308308A2F9B2F08952F923F924F925F926F922F S11308407F928F929F92AF92BF92CF92DF92EF925C S1130850FF920F931F93CF93DF93CDB7DEB7CA1BDD S1130860DB0B0FB6F894DEBF0FBECDBF09942A8808 S1130870398848885F846E847D848C849B84AA84B0 S1130880B984C884DF80EE80FD800C811B81AA813D S1130890B981CE0FD11D0FB6F894DEBF0FBECDBF08 S10908A0CA2FDB2F0895AE S11308A62D2D3D204156522D4374726C203D2D2D25 S11308B6004552524F523A206F775F696E69742829 S11308C629004F575F444556494345533A2025640A S11308D60025780000400000303132333435363795 S10D08E638394142434445460000FE S9030000FC
[avr@host] > avr-objdump -x ow.out > ow.inf [avr@host] > avr-size -d ow.out > ow.siz [avr@host] > avr-size -x ow.out >> ow.siz
text data bss dec hex filename 2214 74 10 2298 8fa ow.out text data bss dec hex filename 0x8a6 0x4a 0xa 2298 8fa ow.out