<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE DjVuXML>
<DjVuXML>
<BODY>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0000.djvu" width="2481">
<PARAM name="PAGE" value="sources_0000.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,132,1664,104,132">README</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2405,132,2416,104,132">1</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,278,314,249,277">USB</WORD>
<WORD coords="329,286,451,254,277">support</WORD>
<WORD coords="466,277,513,249,277">for</WORD>
<WORD coords="536,277,652,249,277">Atmels</WORD>
<WORD coords="666,278,836,249,277">AT90USB</WORD>
<WORD coords="850,277,1107,249,277">microcontroller</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,327,449,299,327">Enumeration</WORD>
<WORD coords="465,333,552,299,327">(with</WORD>
<WORD coords="573,327,670,299,327">Linux</WORD>
<WORD coords="688,334,773,299,327">host)</WORD>
<WORD coords="798,327,854,299,327">and</WORD>
<WORD coords="875,328,959,299,327">basic</WORD>
<WORD coords="987,327,1054,299,327">data</WORD>
<WORD coords="1089,327,1215,299,327">transfer</WORD>
<WORD coords="1249,334,1414,299,327">(LibUSB)</WORD>
<WORD coords="1427,327,1525,299,327">works</WORD>
<WORD coords="1539,327,1598,299,327">fine</WORD>
<WORD coords="1619,327,1698,299,327">now!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,377,265,349,377">A</WORD>
<WORD coords="278,386,385,349,377">simple</WORD>
<WORD coords="405,386,542,349,377">example</WORD>
<WORD coords="554,386,695,358,377">program</WORD>
<WORD coords="709,377,756,349,377">for</WORD>
<WORD coords="778,377,876,349,377">Linux</WORD>
<WORD coords="892,377,1017,349,377">console</WORD>
<WORD coords="1045,378,1070,349,377">is</WORD>
<WORD coords="1099,377,1239,349,377">included</WORD>
<WORD coords="1264,377,1341,358,377">now.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,428,326,399,427">Basic</WORD>
<WORD coords="349,427,594,399,427">documentation</WORD>
<WORD coords="612,427,720,399,427">should</WORD>
<WORD coords="740,427,778,399,427">be</WORD>
<WORD coords="808,427,953,399,427">available</WORD>
<WORD coords="984,427,1024,408,427">on</WORD>
<WORD coords="1040,436,1091,408,427">my</WORD>
<WORD coords="1103,436,1281,399,427">homepage,</WORD>
<WORD coords="1296,427,1345,408,427">see</WORD>
<WORD coords="1363,436,1425,399,427">http</WORD>
<WORD coords="1445,428,1477,399,427">://</WORD>
<WORD coords="1488,428,1976,399,427">www.ssalewski.de/Misc.html</WORD>
</LINE>
<LINE>
<WORD coords="237,476,378,448,476">License:</WORD>
<WORD coords="405,477,511,448,476">GPL—</WORD>
<WORD coords="516,476,534,448,0">2</WORD>
</LINE>
<LINE>
<WORD coords="238,527,268,498,527">S.</WORD>
<WORD coords="294,527,439,498,526">Salewski</WORD>
<WORD coords="461,527,636,498,526">2006/2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,627,314,598,626">USB</WORD>
<WORD coords="328,626,591,598,626">Documentation:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,677,303,649,676">H.J.</WORD>
<WORD coords="330,681,428,648,676">Kelm,</WORD>
<WORD coords="442,677,519,648,676">USB</WORD>
<WORD coords="533,679,592,648,677">2.0,</WORD>
<WORD coords="610,677,779,648,676">LRANZIS</WORD>
</LINE>
<LINE>
<WORD coords="238,727,251,699,727">J</WORD>
<WORD coords="262,726,266,722,726">.</WORD>
<WORD coords="293,729,438,698,726">Axelson,</WORD>
<WORD coords="461,727,538,698,726">USB</WORD>
<WORD coords="552,735,720,698,726">Complete,</WORD>
<WORD coords="734,726,893,698,726">Lakeview</WORD>
<WORD coords="906,726,1056,698,726">Research</WORD>
</LINE>
<LINE>
<WORD coords="237,784,920,747,775">www.beyondlogic.org/usbnutshell/usb—</WORD>
<WORD coords="924,775,985,747,775">in—</WORD>
<WORD coords="989,776,1035,756,775">a—</WORD>
<WORD coords="1040,784,1238,747,775">nutshell.pdf</WORD>
</LINE>
<LINE>
<WORD coords="237,825,347,797,825">Atmel:</WORD>
<WORD coords="370,826,532,797,825">Datasheet</WORD>
<WORD coords="558,825,606,797,825">for</WORD>
<WORD coords="629,826,798,797,825">AT90USB</WORD>
</LINE>
<LINE>
<WORD coords="237,875,347,847,875">Atmel:</WORD>
<WORD coords="367,878,519,847,875">AVR329,</WORD>
<WORD coords="533,876,610,847,875">USB</WORD>
<WORD coords="623,875,782,847,875">Lirmware</WORD>
<WORD coords="795,875,1000,847,875">Architecture</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="243,975,321,947,975">Piles</WORD>
<WORD coords="336,975,341,956,975">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1025,596,996,1024">AT90USB-Errata.txt</WORD>
</LINE>
<LINE>
<WORD coords="237,1075,406,1046,1074">com_def.h</WORD>
</LINE>
<LINE>
<WORD coords="237,1133,401,1096,1124">daq_dev.c</WORD>
</LINE>
<LINE>
<WORD coords="237,1183,293,1146,1174">daq</WORD>
<WORD coords="312,1174,403,1146,1174">dcv.li</WORD>
</LINE>
<LINE>
<WORD coords="243,1224,358,1196,1224">defines</WORD>
<WORD coords="374,1224,405,1196,1224">.h</WORD>
</LINE>
<LINE>
<WORD coords="237,1273,363,1254,1273">macros,</WORD>
<WORD coords="367,1273,386,1245,1273">h</WORD>
</LINE>
<LINE>
<WORD coords="238,1323,383,1295,1323">Makefile</WORD>
</LINE>
<LINE>
<WORD coords="237,1373,411,1345,1373">README</WORD>
</LINE>
<LINE>
<WORD coords="247,1432,413,1395,1423">ringbuffer</WORD>
<WORD coords="430,1423,457,1404,1423">.c</WORD>
</LINE>
<LINE>
<WORD coords="247,1482,413,1445,1473">ringbuffer</WORD>
<WORD coords="430,1473,461,1445,1473">.h</WORD>
</LINE>
<LINE>
<WORD coords="238,1524,397,1495,1523">SUDAP.c</WORD>
</LINE>
<LINE>
<WORD coords="238,1573,375,1544,1572">SUDD.c</WORD>
</LINE>
<LINE>
<WORD coords="240,1631,435,1594,1622">usart_debug</WORD>
<WORD coords="448,1622,452,1618,1622">.</WORD>
<WORD coords="461,1622,476,1603,1622">c</WORD>
</LINE>
<LINE>
<WORD coords="240,1681,435,1644,1672">usart_debug</WORD>
<WORD coords="448,1672,452,1668,1672">.</WORD>
<WORD coords="461,1672,480,1644,1672">h</WORD>
</LINE>
<LINE>
<WORD coords="244,1722,394,1694,1722">usart.drv</WORD>
<WORD coords="411,1722,439,1703,1722">.c</WORD>
</LINE>
<LINE>
<WORD coords="244,1773,394,1744,1772">usart.drv</WORD>
<WORD coords="411,1772,443,1744,1772">.h</WORD>
</LINE>
<LINE>
<WORD coords="239,1830,361,1793,1821">usb_api</WORD>
<WORD coords="374,1821,401,1802,1821">.c</WORD>
</LINE>
<LINE>
<WORD coords="239,1880,361,1843,1871">usb_api</WORD>
<WORD coords="374,1871,378,1867,1871">.</WORD>
<WORD coords="386,1871,405,1843,1871">h</WORD>
</LINE>
<LINE>
<WORD coords="237,1922,363,1893,1921">usb_drv</WORD>
<WORD coords="374,1921,378,1917,1921">.</WORD>
<WORD coords="386,1921,401,1902,1921">c</WORD>
</LINE>
<LINE>
<WORD coords="237,1972,363,1943,1971">usb.drv</WORD>
<WORD coords="374,1971,378,1967,1971">.</WORD>
<WORD coords="386,1971,405,1943,0">h</WORD>
</LINE>
<LINE>
<WORD coords="244,2021,358,1993,2021">usbJsr</WORD>
<WORD coords="374,2021,401,2002,2021">.c</WORD>
</LINE>
<LINE>
<WORD coords="243,2072,299,2043,2071">usb</WORD>
<WORD coords="304,2080,450,2048,2071">.requests</WORD>
<WORD coords="467,2071,496,2052,2071">.c</WORD>
</LINE>
<LINE>
<WORD coords="244,2121,299,2092,2120">usb</WORD>
<WORD coords="304,2129,450,2097,2120">requests</WORD>
<WORD coords="467,2120,471,2116,2120">.</WORD>
<WORD coords="480,2120,499,2092,2120">h</WORD>
</LINE>
<LINE>
<WORD coords="237,2179,381,2142,2170">usb.spec</WORD>
<WORD coords="392,2170,396,2166,2170">.</WORD>
<WORD coords="405,2170,420,2151,2170">c</WORD>
</LINE>
<LINE>
<WORD coords="239,2221,294,2192,2220">usb</WORD>
<WORD coords="312,2229,381,2201,2220">spec</WORD>
<WORD coords="392,2220,396,2216,2220">.</WORD>
<WORD coords="405,2220,424,2192,0">h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="249,2329,484,2292,2320">gen.postscript</WORD>
<WORD coords="504,2320,508,2316,2320">.</WORD>
<WORD coords="523,2320,565,2297,2320">txt</WORD>
<WORD coords="692,2329,789,2292,2320">Script</WORD>
<WORD coords="820,2320,867,2292,2320">for</WORD>
<WORD coords="896,2329,1069,2292,2320">generating</WORD>
<WORD coords="1108,2329,1269,2292,2320">postscript</WORD>
<WORD coords="1301,2320,1381,2292,2320">from</WORD>
<WORD coords="1399,2320,1519,2301,2320">sources</WORD>
<WORD coords="1548,2320,1596,2292,2320">for</WORD>
<WORD coords="1627,2329,1758,2292,2320">printout</WORD>
<WORD coords="1788,2329,1876,2292,2320">using</WORD>
<WORD coords="1908,2329,2038,2292,2320">enscript</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2378,437,2341,2369">gen_pdf.tex</WORD>
<WORD coords="686,2370,780,2341,2369">Small</WORD>
<WORD coords="797,2369,910,2341,2369">LaTeX</WORD>
<WORD coords="927,2369,977,2341,2369">file</WORD>
<WORD coords="1003,2378,1092,2341,2369">using</WORD>
<WORD coords="1129,2378,1246,2341,2369">listings</WORD>
<WORD coords="1282,2378,1416,2341,2369">package</WORD>
<WORD coords="1436,2369,1484,2341,2369">for</WORD>
<WORD coords="1514,2378,1610,2346,2369">pretty</WORD>
<WORD coords="1621,2378,1782,2341,2369">—printing</WORD>
<WORD coords="1810,2369,1930,2350,2369">sources</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2420,438,2391,2419">AT90USB—</WORD>
<WORD coords="442,2428,707,2391,2419">20070xyz.tar.gz</WORD>
<WORD coords="720,2419,770,2391,2419">All</WORD>
<WORD coords="784,2419,889,2400,2419">source</WORD>
<WORD coords="909,2419,974,2391,2419">files</WORD>
<WORD coords="1005,2419,1036,2391,2419">in</WORD>
<WORD coords="1059,2428,1253,2391,2419">compressed</WORD>
<WORD coords="1265,2419,1344,2391,2419">form</WORD>
</LINE>
<LINE>
<WORD coords="237,2478,664,2441,2469">AT90USB-20070xyz.zip</WORD>
<WORD coords="687,2469,737,2441,2469">All</WORD>
<WORD coords="763,2469,868,2450,2469">source</WORD>
<WORD coords="904,2469,970,2441,2469">files</WORD>
<WORD coords="1005,2469,1036,2441,2469">in</WORD>
<WORD coords="1061,2478,1109,2441,2469">zip</WORD>
<WORD coords="1133,2478,1327,2441,2469">compressed</WORD>
<WORD coords="1340,2469,1419,2441,2469">form</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2519,361,2500,2519">sources</WORD>
<WORD coords="374,2528,420,2500,2519">.ps</WORD>
<WORD coords="430,2528,479,2500,2519">.gz</WORD>
<WORD coords="687,2519,737,2491,2519">All</WORD>
<WORD coords="763,2519,868,2500,2519">source</WORD>
<WORD coords="904,2519,970,2491,2519">files</WORD>
<WORD coords="1003,2528,1204,2491,2519">preformated</WORD>
<WORD coords="1231,2519,1278,2491,2519">for</WORD>
<WORD coords="1309,2528,1440,2491,2519">printout</WORD>
<WORD coords="1473,2528,1651,2491,2519">(enscript)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2569,361,2550,2569">sources</WORD>
<WORD coords="374,2569,378,2565,2573">.</WORD>
<WORD coords="386,2578,443,2541,2569">pdf</WORD>
<WORD coords="687,2569,737,2541,2569">All</WORD>
<WORD coords="763,2569,868,2550,2569">source</WORD>
<WORD coords="904,2569,970,2541,2569">files</WORD>
<WORD coords="1003,2578,1204,2541,2569">preformated</WORD>
<WORD coords="1231,2569,1278,2541,2569">for</WORD>
<WORD coords="1309,2578,1440,2541,2569">printout</WORD>
<WORD coords="1473,2572,1483,2542,2575">(</WORD>
<WORD coords="1495,2578,1628,2541,2569">pdflatex</WORD>
<WORD coords="1640,2576,1651,2541,2576">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="686,1025,777,996,1024">Some</WORD>
<WORD coords="789,1025,921,996,1024">remarks</WORD>
<WORD coords="935,1024,1025,996,1024">about</WORD>
<WORD coords="1048,1024,1141,1005,1024">errors</WORD>
<WORD coords="1172,1024,1206,1005,1024">or</WORD>
<WORD coords="1231,1024,1352,996,1024">unclear</WORD>
<WORD coords="1383,1024,1554,1001,1024">statements</WORD>
<WORD coords="1584,1024,1615,996,1024">in</WORD>
<WORD coords="1638,1025,1807,996,1024">AT90USB</WORD>
<WORD coords="1821,1024,1974,996,1024">datasheet</WORD>
</LINE>
<LINE>
<WORD coords="687,1075,849,1046,1074">Constants</WORD>
<WORD coords="872,1074,972,1046,1074">which</WORD>
<WORD coords="988,1074,1035,1055,1074">are</WORD>
<WORD coords="1058,1074,1133,1046,1074">used</WORD>
<WORD coords="1151,1083,1191,1046,1074">by</WORD>
<WORD coords="1209,1074,1355,1046,1074">firmware</WORD>
<WORD coords="1377,1074,1433,1046,1074">and</WORD>
<WORD coords="1454,1075,1521,1046,1074">host</WORD>
<WORD coords="1556,1083,1738,1046,1074">application</WORD>
<WORD coords="1768,1083,1908,1055,1074">program</WORD>
</LINE>
<LINE>
<WORD coords="685,1125,832,1095,1124">Function</WORD>
<WORD coords="858,1124,905,1096,1124">for</WORD>
<WORD coords="931,1124,998,1096,1124">data</WORD>
<WORD coords="1033,1133,1213,1096,1124">acquisition</WORD>
<WORD coords="1246,1133,1334,1096,1124">using</WORD>
<WORD coords="1360,1124,1408,1096,1124">the</WORD>
<WORD coords="1440,1124,1535,1096,1124">intern</WORD>
<WORD coords="1563,1124,1648,1096,1124">ADC</WORD>
<WORD coords="1662,1133,1740,1097,1124">(port</WORD>
<WORD coords="1752,1130,1871,1096,1124">ADCO)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="692,1233,808,1196,1224">Project</WORD>
<WORD coords="847,1233,969,1196,1224">specific</WORD>
<WORD coords="1009,1224,1162,1201,1224">constants</WORD>
</LINE>
<LINE>
<WORD coords="686,1274,777,1245,1273">Some</WORD>
<WORD coords="790,1282,911,1245,1273">general</WORD>
<WORD coords="928,1273,1045,1254,1273">macros</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="686,1323,831,1295,1323">Makefile</WORD>
<WORD coords="840,1323,845,1304,1323">:</WORD>
<WORD coords="873,1332,942,1300,1323">type</WORD>
<WORD coords="965,1323,1089,1295,1323">’’make”</WORD>
<WORD coords="1102,1323,1132,1300,1323">to</WORD>
<WORD coords="1156,1332,1295,1300,1323">generate</WORD>
<WORD coords="1328,1323,1366,1295,1323">all</WORD>
<WORD coords="1397,1332,1502,1295,1323">binary</WORD>
<WORD coords="1539,1323,1604,1295,1323">files</WORD>
<WORD coords="1639,1323,1695,1295,1323">and</WORD>
<WORD coords="1713,1323,1818,1295,1323">’’make</WORD>
<WORD coords="1831,1323,1902,1295,1323">dfu”</WORD>
<WORD coords="1920,1323,1951,1300,1323">to</WORD>
<WORD coords="1974,1332,2084,1295,1323">upload</WORD>
<WORD coords="2106,1323,2252,1295,1323">firmware</WORD>
</LINE>
<LINE>
<WORD coords="685,1374,756,1345,1373">This</WORD>
<WORD coords="790,1373,840,1345,1373">file</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="686,1432,800,1395,1423">Simple</WORD>
<WORD coords="820,1432,884,1395,1423">ring</WORD>
<WORD coords="914,1424,1014,1395,1423">buffer</WORD>
<WORD coords="1043,1430,1160,1395,1423">(FIFO)</WORD>
<WORD coords="1176,1423,1223,1395,1423">for</WORD>
<WORD coords="1252,1432,1403,1395,1423">buffering</WORD>
<WORD coords="1432,1423,1517,1395,1423">ADC</WORD>
<WORD coords="1530,1423,1598,1395,1423">data</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="684,1532,830,1495,1523">Example</WORD>
<WORD coords="844,1523,990,1495,1523">firmware</WORD>
<WORD coords="1013,1532,1196,1495,1523">application</WORD>
<WORD coords="1215,1523,1219,1504,1523">:</WORD>
<WORD coords="1245,1524,1322,1496,1523">Data</WORD>
<WORD coords="1351,1532,1531,1495,1523">acquisition</WORD>
<WORD coords="1566,1529,1576,1495,1530">(</WORD>
<WORD coords="1585,1532,1651,1500,1523">port</WORD>
<WORD coords="1675,1530,1794,1495,1523">ADCO)</WORD>
<WORD coords="1809,1523,1865,1495,1523">and</WORD>
<WORD coords="1878,1523,1993,1495,1523">control</WORD>
<WORD coords="2013,1523,2048,1495,1523">of</WORD>
<WORD coords="2080,1532,2183,1495,1523">digital</WORD>
<WORD coords="2220,1532,2286,1500,1523">port</WORD>
<WORD coords="2310,1523,2334,1496,1523">B</WORD>
</LINE>
<LINE>
<WORD coords="685,1581,830,1544,1572">Example</WORD>
<WORD coords="843,1572,911,1544,1572">host</WORD>
<WORD coords="939,1581,1121,1544,1572">application</WORD>
<WORD coords="1139,1572,1144,1553,1572">:</WORD>
<WORD coords="1171,1573,1304,1544,1572">Console</WORD>
<WORD coords="1319,1572,1413,1544,1572">based</WORD>
<WORD coords="1435,1573,1503,1544,1572">data</WORD>
<WORD coords="1537,1581,1718,1544,1572">acquisition</WORD>
<WORD coords="1751,1572,1807,1544,1572">and</WORD>
<WORD coords="1831,1572,1946,1544,1572">control</WORD>
<WORD coords="1975,1572,2011,1544,1572">of</WORD>
<WORD coords="2042,1581,2146,1544,1572">digital</WORD>
<WORD coords="2182,1581,2249,1549,1572">port</WORD>
<WORD coords="2273,1572,2297,1544,1572">B</WORD>
</LINE>
<LINE>
<WORD coords="687,1623,849,1594,1622">Functions</WORD>
<WORD coords="876,1622,923,1594,1622">for</WORD>
<WORD coords="947,1631,1118,1594,1622">debugging</WORD>
<WORD coords="1134,1622,1206,1603,1622">over</WORD>
<WORD coords="1239,1622,1325,1594,1622">serial</WORD>
<WORD coords="1360,1631,1427,1599,1622">port</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="685,1722,799,1694,1722">Access</WORD>
<WORD coords="818,1722,849,1699,1722">to</WORD>
<WORD coords="884,1722,970,1694,1722">serial</WORD>
<WORD coords="1007,1731,1072,1699,1722">port</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="685,1822,756,1793,1821">This</WORD>
<WORD coords="790,1821,840,1793,1821">file</WORD>
<WORD coords="877,1821,1013,1793,1821">contains</WORD>
<WORD coords="1047,1821,1198,1798,1821">constants</WORD>
<WORD coords="1228,1821,1284,1793,1821">and</WORD>
<WORD coords="1308,1822,1461,1793,1821">functions</WORD>
<WORD coords="1488,1821,1588,1793,1821">which</WORD>
<WORD coords="1600,1821,1677,1793,1821">need</WORD>
<WORD coords="1702,1821,1925,1793,1821">modifications</WORD>
</LINE>
<LINE>
<WORD coords="725,1871,755,1848,1871">to</WORD>
<WORD coords="778,1871,944,1843,1871">customize</WORD>
<WORD coords="968,1871,1016,1843,1871">the</WORD>
<WORD coords="1044,1872,1183,1843,1871">software</WORD>
<WORD coords="1212,1871,1259,1843,1871">for</WORD>
<WORD coords="1284,1872,1300,1852,1872">a</WORD>
<WORD coords="1332,1880,1456,1843,1871">specific</WORD>
<WORD coords="1491,1871,1596,1843,1871">device</WORD>
</LINE>
<LINE>
<WORD coords="686,1921,774,1893,1921">Basic</WORD>
<WORD coords="797,1922,873,1893,1921">USB</WORD>
<WORD coords="888,1921,1040,1893,1921">functions</WORD>
<WORD coords="1062,1921,1110,1893,1921">for</WORD>
<WORD coords="1133,1922,1303,1893,1921">AT90USB</WORD>
<WORD coords="1317,1921,1477,1893,1921">controller</WORD>
</LINE>
<LINE>
<WORD coords="685,1972,762,1943,1971">USB</WORD>
<WORD coords="776,1974,903,1952,1971">macros,</WORD>
<WORD coords="916,1972,999,1943,1971">basic</WORD>
<WORD coords="1021,1971,1081,1943,1971">low</WORD>
<WORD coords="1103,1971,1180,1943,1971">level</WORD>
<WORD coords="1220,1980,1344,1943,1971">register</WORD>
<WORD coords="1386,1971,1462,1943,1971">stuff</WORD>
</LINE>
<LINE>
<WORD coords="696,2030,840,1994,2021">Interrupt</WORD>
<WORD coords="879,2021,994,1993,2021">service</WORD>
<WORD coords="1028,2021,1161,1993,2021">routines</WORD>
</LINE>
<LINE>
<WORD coords="685,2072,762,2043,2071">USB</WORD>
<WORD coords="777,2077,943,2043,2071">(standard)</WORD>
<WORD coords="972,2080,1106,2048,2071">requests</WORD>
<WORD coords="1120,2076,1126,2067,2076">,</WORD>
<WORD coords="1152,2071,1358,2043,2071">enumeration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="685,2171,762,2142,2170">USB</WORD>
<WORD coords="783,2171,1012,2142,2170">datastructures</WORD>
<WORD coords="1041,2170,1097,2142,2170">and</WORD>
<WORD coords="1121,2170,1273,2147,2170">constants</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0000.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0001.djvu" width="2481">
<PARAM name="PAGE" value="sources_0001.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,133,1641,103,132">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2401,132,2419,104,132">2</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,626,249,277">AT90USB/SUDAP.C</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="293,336,403,299,327">Simple</WORD>
<WORD coords="427,328,489,299,327">Usb</WORD>
<WORD coords="500,327,581,300,327">Data</WORD>
<WORD coords="598,336,786,299,327">Acquisition</WORD>
<WORD coords="815,336,961,300,327">Program</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,386,448,349,377">Sampling</WORD>
<WORD coords="461,377,499,359,377">an</WORD>
<WORD coords="517,386,630,349,377">analog</WORD>
<WORD coords="653,386,771,349,377">voltage</WORD>
<WORD coords="800,385,887,350,377">using</WORD>
<WORD coords="913,377,960,349,377">the</WORD>
<WORD coords="991,377,1086,350,377">intern</WORD>
<WORD coords="1112,378,1197,349,377">ADC</WORD>
<WORD coords="1208,386,1245,349,382">of</WORD>
<WORD coords="1248,378,1413,349,377">AT90USB</WORD>
<WORD coords="1426,386,1494,349,377">chip</WORD>
<WORD coords="1507,378,1569,349,377">and</WORD>
</LINE>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="294,436,421,399,427">sending</WORD>
<WORD coords="443,428,514,399,427">data</WORD>
<WORD coords="539,428,568,405,427">to</WORD>
<WORD coords="594,428,663,399,427">host</WORD>
<WORD coords="688,434,798,399,427">(Linux</WORD>
<WORD coords="816,432,881,399,427">PC)</WORD>
<WORD coords="893,428,966,409,427">over</WORD>
<WORD coords="987,428,1058,399,427">USB</WORD>
<WORD coords="1071,427,1099,400,427">in</WORD>
<WORD coords="1120,427,1183,399,427">real</WORD>
<WORD coords="1211,427,1292,400,427">time.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="293,485,448,448,476">Sampling</WORD>
<WORD coords="472,477,599,448,476">inten’al</WORD>
<WORD coords="629,477,692,448,476">and</WORD>
<WORD coords="704,476,830,448,476">number</WORD>
<WORD coords="841,485,879,448,481">of</WORD>
<WORD coords="891,485,1022,448,476">samples</WORD>
<WORD coords="1046,476,1070,449,476">is</WORD>
<WORD coords="1104,477,1238,448,476">selected</WORD>
<WORD coords="1266,477,1334,448,476">with</WORD>
<WORD coords="1358,477,1519,448,476">command</WORD>
<WORD coords="1530,477,1589,448,476">line</WORD>
<WORD coords="1605,485,1725,449,476">options</WORD>
<WORD coords="1735,477,1740,472,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,527,270,498,527">//</WORD>
<WORD coords="299,535,506,498,526">Additionally</WORD>
<WORD coords="534,535,593,508,527">you</WORD>
<WORD coords="610,527,667,508,526">can</WORD>
<WORD coords="690,527,736,503,526">set</WORD>
<WORD coords="763,535,868,504,526">output</WORD>
<WORD coords="889,535,960,499,526">pins</WORD>
<WORD coords="986,535,1024,498,531">of</WORD>
<WORD coords="1051,535,1158,498,526">digital</WORD>
<WORD coords="1189,535,1261,504,526">port</WORD>
<WORD coords="1282,526,1314,499,526">B.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,577,270,548,577">//</WORD>
<WORD coords="295,576,353,548,576">The</WORD>
<WORD coords="367,576,447,558,576">mam</WORD>
<WORD coords="457,585,592,558,576">purpose</WORD>
<WORD coords="613,585,651,548,581">of</WORD>
<WORD coords="675,576,732,548,576">this</WORD>
<WORD coords="767,585,827,549,576">tiny</WORD>
<WORD coords="850,585,994,558,576">program</WORD>
<WORD coords="1010,577,1035,549,576">is</WORD>
<WORD coords="1062,577,1091,553,576">to</WORD>
<WORD coords="1115,577,1317,548,576">demonstrate</WORD>
<WORD coords="1342,576,1390,548,576">the</WORD>
<WORD coords="1423,585,1638,548,576">functionality</WORD>
<WORD coords="1678,585,1715,548,580">of</WORD>
<WORD coords="1731,585,1778,558,576">my</WORD>
</LINE>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="296,627,366,598,626">USB</WORD>
<WORD coords="372,634,525,598,628">firmware</WORD>
<WORD coords="544,627,657,599,626">written</WORD>
<WORD coords="682,635,737,598,629">for</WORD>
<WORD coords="757,627,871,598,626">Atmels</WORD>
<WORD coords="888,627,1053,598,626">AT90USB</WORD>
<WORD coords="1065,627,1237,598,626">controller.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,677,270,648,677">//</WORD>
<WORD coords="293,677,436,649,676">Licence:</WORD>
<WORD coords="462,677,567,648,676">GPL—</WORD>
<WORD coords="571,676,590,648,0">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,727,269,698,727">//</WORD>
<WORD coords="293,727,399,698,726">Build:</WORD>
<WORD coords="423,735,480,708,727">gcc</WORD>
<WORD coords="501,727,541,698,727">—l</WORD>
<WORD coords="555,726,610,698,726">usb</WORD>
<WORD coords="629,727,786,698,726">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,776,270,747,776">//</WORD>
<WORD coords="296,784,408,748,775">Usage:</WORD>
<WORD coords="425,776,476,757,776">see</WORD>
<WORD coords="498,784,637,747,776">function</WORD>
<WORD coords="667,784,791,747,775">usage))</WORD>
<WORD coords="816,776,921,747,776">below.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,826,270,797,826">//</WORD>
<WORD coords="293,826,321,797,826">S.</WORD>
<WORD coords="351,830,507,797,825">Salewski,</WORD>
<WORD coords="536,825,605,797,825">24—</WORD>
<WORD coords="608,825,723,797,825">MAR—</WORD>
<WORD coords="727,825,810,797,825">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,384,896,925">#include</WORD>
<WORD coords="408,927,585,897,925">&lt;stdio.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,384,946,975">#include</WORD>
<WORD coords="408,977,603,947,975">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1025,384,995,1024">#include</WORD>
<WORD coords="408,1033,603,996,1024">&lt;getopt.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1075,384,1045,1074">#include</WORD>
<WORD coords="408,1076,585,1046,1074">&lt;errno.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1125,384,1095,1124">#include</WORD>
<WORD coords="408,1126,554,1096,1124">&lt;usb.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,384,1145,1174">#include</WORD>
<WORD coords="405,1174,610,1146,1174">’’com.def.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1225,384,1195,1224">#include</WORD>
<WORD coords="405,1233,610,1196,1224">’’daq.dev.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="386,1324,533,1295,1323">TimeOut</WORD>
<WORD coords="545,1324,626,1295,1323">2000</WORD>
<WORD coords="638,1324,667,1295,1324">//</WORD>
<WORD coords="685,1323,729,1305,1323">ms</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1424,328,1397,1423">const</WORD>
<WORD coords="349,1423,428,1395,1423">char</WORD>
<WORD coords="455,1423,522,1400,1423">trstr</WORD>
<WORD coords="543,1430,563,1395,1430">[]</WORD>
<WORD coords="592,1418,613,1407,1418">=</WORD>
<WORD coords="629,1424,710,1395,1423">’’Use</WORD>
<WORD coords="727,1428,799,1395,1423">1ms,</WORD>
<WORD coords="816,1428,923,1395,1423">500us,</WORD>
<WORD coords="947,1428,1054,1395,1423">200us,</WORD>
<WORD coords="1081,1426,1185,1395,1423">lOOus,</WORD>
<WORD coords="1208,1424,1283,1395,1423">50us</WORD>
<WORD coords="1303,1423,1337,1404,1423">or</WORD>
<WORD coords="1357,1424,1433,1395,1423">20us</WORD>
<WORD coords="1455,1423,1502,1395,1423">for</WORD>
<WORD coords="1526,1423,1597,1395,1423">time</WORD>
<WORD coords="1628,1423,1794,1395,1423">resolution</WORD>
<WORD coords="1812,1429,1855,1395,1419">!”;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="246,1524,339,1495,1523">static</WORD>
<WORD coords="372,1523,474,1497,1523">struct</WORD>
<WORD coords="501,1532,606,1495,1523">option</WORD>
<WORD coords="636,1532,843,1495,1523">long_options</WORD>
<WORD coords="861,1530,882,1495,1530">[]</WORD>
<WORD coords="909,1518,930,1507,1518">=</WORD>
</LINE>
<LINE>
<WORD coords="239,1582,253,1541,1582">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,472,1591,1622">{’’timeres”,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="540,1631,847,1594,1622">required.argument</WORD>
<WORD coords="858,1627,864,1618,0">,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="987,1625,1015,1594,1624">0,</WORD>
<WORD coords="1044,1632,1127,1591,1622">’t’},</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="276,1682,474,1641,1672">{’’samples”,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="540,1681,847,1644,1672">required.argument</WORD>
<WORD coords="858,1677,864,1668,0">,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="987,1675,1015,1644,1674">0,</WORD>
<WORD coords="1044,1682,1127,1641,1673">’s’},</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="276,1732,479,1691,1722">{’’columns”,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="541,1731,675,1694,1722">required</WORD>
<WORD coords="694,1731,847,1700,1722">argument</WORD>
<WORD coords="858,1727,864,1718,0">,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="987,1725,1015,1694,1724">0,</WORD>
<WORD coords="1044,1732,1127,1691,1722">’c’},</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="276,1782,435,1741,1772">{’’portb”,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="540,1781,847,1744,1772">required.argument</WORD>
<WORD coords="858,1777,864,1768,0">,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="987,1775,1015,1744,1774">0-</WORD>
<WORD coords="1044,1783,1127,1741,1770">*p’},</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="276,1831,416,1790,1821">{’’help”,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1881,325,1840,1875">{0,</WORD>
<WORD coords="352,1874,380,1843,1873">0,</WORD>
<WORD coords="408,1874,436,1843,1873">0,</WORD>
<WORD coords="461,1881,498,1840,1876">0}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,1821,574,1802,1821">no</WORD>
<WORD coords="579,1830,756,1798,1821">.argument.</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="987,1824,1015,1793,1823">0,</WORD>
<WORD coords="1044,1831,1127,1790,1821">’h’},</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,1931,268,1890,1929">};</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2022,339,1993,2021">static</WORD>
<WORD coords="367,2022,441,1993,2021">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2071,270,2052,2071">us</WORD>
<WORD coords="275,2080,329,2052,2071">age</WORD>
<WORD coords="334,2075,437,2043,2071">(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2130,253,2089,2130">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2179,343,2147,2170">puts</WORD>
<WORD coords="352,2179,497,2142,2170">(’’Usage:</WORD>
<WORD coords="519,2161,545,2159,2170">—</WORD>
<WORD coords="549,2170,559,2147,2170">t</WORD>
<WORD coords="577,2171,669,2142,2170">lOOus</WORD>
<WORD coords="687,2161,713,2159,2171">—</WORD>
<WORD coords="718,2171,731,2151,2171">s</WORD>
<WORD coords="748,2171,804,2142,2170">100</WORD>
<WORD coords="819,2171,865,2151,2171">—c</WORD>
<WORD coords="882,2170,893,2142,2170">1</WORD>
<WORD coords="911,2161,937,2159,2170">—</WORD>
<WORD coords="940,2179,960,2151,2179">p</WORD>
<WORD coords="977,2177,1179,2142,2169">10001101”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="283,2229,377,2192,2220">printf</WORD>
<WORD coords="390,2227,452,2192,2221">(”—</WORD>
<WORD coords="456,2221,467,2196,0">t</WORD>
<WORD coords="481,2220,515,2201,2220">or</WORD>
<WORD coords="600,2220,729,2192,2220">timeres:</WORD>
<WORD coords="744,2228,790,2192,2218">”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2279,343,2247,2270">puts</WORD>
<WORD coords="352,2276,362,2242,2276">(</WORD>
<WORD coords="381,2270,447,2247,2270">trstr</WORD>
<WORD coords="463,2277,474,2242,2276">)</WORD>
<WORD coords="485,2276,491,2251,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2329,414,2292,2320">puts(”—</WORD>
<WORD coords="419,2320,431,2301,2320">s</WORD>
<WORD coords="445,2320,479,2301,2320">or</WORD>
<WORD coords="564,2329,703,2292,2320">samples:</WORD>
<WORD coords="718,2320,844,2292,2320">number</WORD>
<WORD coords="856,2320,891,2292,2320">of</WORD>
<WORD coords="902,2329,1031,2292,2320">samples</WORD>
<WORD coords="1046,2326,1074,2292,2322">(1</WORD>
<WORD coords="1096,2329,1135,2301,2320">up</WORD>
<WORD coords="1155,2320,1185,2297,2320">to</WORD>
<WORD coords="1208,2327,1369,2292,2320">65535)”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2378,343,2346,2369">puts</WORD>
<WORD coords="352,2375,414,2341,2369">(”—</WORD>
<WORD coords="418,2369,481,2350,2369">cor</WORD>
<WORD coords="563,2369,710,2341,2369">columns:</WORD>
<WORD coords="725,2369,851,2341,2369">number</WORD>
<WORD coords="863,2369,898,2341,2369">of</WORD>
<WORD coords="907,2369,1045,2341,2369">columns</WORD>
<WORD coords="1059,2369,1106,2341,2369">for</WORD>
<WORD coords="1119,2378,1238,2346,2369">output,</WORD>
<WORD coords="1272,2369,1385,2341,2369">default</WORD>
<WORD coords="1418,2369,1443,2341,2369">is</WORD>
<WORD coords="1471,2376,1556,2341,2368">32”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,2428,343,2397,2419">puts</WORD>
<WORD coords="352,2426,414,2391,2413">(”—</WORD>
<WORD coords="417,2428,437,2400,2428">p</WORD>
<WORD coords="450,2419,483,2400,2419">or</WORD>
<WORD coords="562,2428,657,2391,2419">portb:</WORD>
<WORD coords="707,2428,811,2396,2419">output</WORD>
<WORD coords="837,2419,923,2391,2419">value</WORD>
<WORD coords="950,2419,998,2391,2419">for</WORD>
<WORD coords="1034,2428,1137,2391,2419">digital</WORD>
<WORD coords="1174,2428,1240,2396,2419">port</WORD>
<WORD coords="1263,2425,1295,2391,2419">b,</WORD>
<WORD coords="1320,2419,1373,2400,2419">use</WORD>
<WORD coords="1395,2420,1412,2400,2420">a</WORD>
<WORD coords="1433,2420,1481,2391,2419">8—</WORD>
<WORD coords="1484,2419,1528,2391,2419">bit</WORD>
<WORD coords="1546,2419,1615,2391,2419">dual</WORD>
<WORD coords="1638,2426,1805,2391,2419">number”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2479,253,2438,2479">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2570,339,2541,2569">static</WORD>
<WORD coords="372,2570,474,2543,2569">struct</WORD>
<WORD coords="501,2569,679,2541,2569">usb_device</WORD>
</LINE>
<LINE>
<WORD coords="239,2619,397,2590,2617">vUshFind</WORD>
<WORD coords="403,2619,528,2590,2618">Device)</WORD>
<WORD coords="532,2619,602,2590,2618">void</WORD>
<WORD coords="609,2624,618,2591,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2678,253,2637,2678">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,2719,380,2692,2718">struct</WORD>
<WORD coords="405,2719,533,2690,2718">usb_bus</WORD>
<WORD coords="556,2723,642,2690,2718">*bus;</WORD>
</LINE>
<LINE>
<WORD coords="278,2768,380,2742,2768">struct</WORD>
<WORD coords="409,2769,463,2740,2768">usb</WORD>
<WORD coords="481,2768,586,2740,2768">device</WORD>
<WORD coords="611,2774,699,2740,2769">*dev;</WORD>
</LINE>
<LINE>
<WORD coords="284,2819,411,2790,2818">usbJnit</WORD>
<WORD coords="429,2826,453,2790,2825">()</WORD>
<WORD coords="466,2824,472,2799,0">;</WORD>
</LINE>
<LINE>
<WORD coords="284,2868,541,2840,2868">usb_find_busses</WORD>
<WORD coords="560,2875,584,2840,2874">()</WORD>
<WORD coords="597,2873,603,2849,0">;</WORD>
</LINE>
<LINE>
<WORD coords="285,2918,558,2889,2917">usb_find_devices</WORD>
<WORD coords="579,2924,603,2889,2923">()</WORD>
<WORD coords="616,2923,622,2898,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2968,327,2939,2967">for</WORD>
<WORD coords="352,2973,421,2939,2967">(bus</WORD>
<WORD coords="442,2962,463,2951,2964">=</WORD>
<WORD coords="484,2968,539,2939,2967">usb</WORD>
<WORD coords="543,2972,678,2939,2967">.busses;</WORD>
<WORD coords="703,2972,772,2939,2967">bus;</WORD>
<WORD coords="796,2967,852,2939,2967">bus</WORD>
<WORD coords="872,2962,893,2951,2964">=</WORD>
<WORD coords="908,2967,994,2939,2967">bus—</WORD>
<WORD coords="1001,2974,1112,2939,2967">&gt;next)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3027,290,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,3067,364,3039,3067">for</WORD>
<WORD coords="390,3070,460,3039,3067">(dev</WORD>
<WORD coords="480,3062,501,3051,3064">=</WORD>
<WORD coords="517,3067,602,3039,3067">bus—</WORD>
<WORD coords="609,3072,770,3039,3067">&gt;devices;</WORD>
<WORD coords="784,3072,851,3039,3067">dev;</WORD>
<WORD coords="872,3067,929,3039,3067">dev</WORD>
<WORD coords="947,3062,968,3051,3064">=</WORD>
<WORD coords="984,3067,1071,3039,3067">dev—</WORD>
<WORD coords="1078,3074,1189,3039,3067">&gt;next)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,3127,327,3086,3127">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0001.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0002.djvu" width="2481">
<PARAM name="PAGE" value="sources_0002.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,133,1641,103,132">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2402,133,2418,104,133">3</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="355,277,381,248,277">if</WORD>
<WORD coords="411,283,529,249,277">((dev—</WORD>
<WORD coords="536,286,893,249,277">&gt;descriptor.idVendor</WORD>
<WORD coords="909,272,954,261,273">==</WORD>
<WORD coords="966,286,1294,249,277">MyUSBJVendorlD)</WORD>
<WORD coords="1309,278,1370,249,278">&amp;&amp;</WORD>
<WORD coords="1384,280,1483,249,277">(dev—</WORD>
<WORD coords="1490,286,1856,249,277">&gt;descriptor.idProduct</WORD>
<WORD coords="1868,272,1912,261,273">==</WORD>
<WORD coords="1925,286,2276,249,277">MyUSB_ProductID))</WORD>
</LINE>
<LINE>
<WORD coords="386,328,498,301,327">return</WORD>
<WORD coords="517,332,586,299,327">dev;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,387,327,346,387">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,437,290,396,437">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,476,386,450,476">return</WORD>
<WORD coords="405,482,524,448,476">NULL;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,536,253,495,536">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,627,269,598,627">//</WORD>
<WORD coords="297,627,340,599,626">We</WORD>
<WORD coords="353,627,405,608,626">use</WORD>
<WORD coords="423,626,492,598,626">EP2</WORD>
<WORD coords="498,635,554,598,629">for</WORD>
<WORD coords="572,634,653,598,626">DAQ</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,677,339,648,676">static</WORD>
<WORD coords="367,677,441,648,676">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,735,349,698,726">dodaq(</WORD>
<WORD coords="355,727,456,700,726">struct</WORD>
<WORD coords="482,726,736,698,726">usb_dev_handle</WORD>
<WORD coords="762,729,902,698,726">^handle,</WORD>
<WORD coords="936,727,1067,698,726">uintl6_t</WORD>
<WORD coords="1100,726,1219,698,726">timeres</WORD>
<WORD coords="1232,732,1238,722,732">,</WORD>
<WORD coords="1272,727,1404,698,726">uintl6_t</WORD>
<WORD coords="1433,735,1576,698,726">samples,</WORD>
<WORD coords="1604,726,1651,698,726">int</WORD>
<WORD coords="1675,733,1827,698,726">columns)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,785,253,744,785">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,833,431,796,825">unsigned</WORD>
<WORD coords="444,825,523,797,825">char</WORD>
<WORD coords="535,832,893,797,825">buf[EP2_FIFO_Size];</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,883,431,846,875">unsigned</WORD>
<WORD coords="444,875,523,847,875">char</WORD>
<WORD coords="538,881,587,847,876">*b;</WORD>
</LINE>
<LINE>
<WORD coords="274,933,431,896,925">unsigned</WORD>
<WORD coords="447,926,493,897,925">int</WORD>
<WORD coords="517,931,557,906,925">m;</WORD>
</LINE>
<LINE>
<WORD coords="274,983,431,946,975">unsigned</WORD>
<WORD coords="447,975,493,947,975">int</WORD>
<WORD coords="517,975,533,956,975">c</WORD>
<WORD coords="554,970,575,959,973">=</WORD>
<WORD coords="594,981,623,947,978">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1024,307,995,1024">if</WORD>
<WORD coords="334,1033,771,996,1024">(usb_control_msg(handle,</WORD>
<WORD coords="798,1033,1241,996,1024">USBJVendorRequestCode,</WORD>
<WORD coords="1255,1027,1522,996,1024">UC_ADC_Read,</WORD>
<WORD coords="1537,1028,1609,995,1024">(int)</WORD>
<WORD coords="1623,1029,1752,996,1024">timeres,</WORD>
<WORD coords="1766,1030,1840,995,1024">(int)</WORD>
<WORD coords="1863,1033,2005,996,1024">samples,</WORD>
<WORD coords="2030,1029,2148,996,1024">NULL,</WORD>
<WORD coords="2161,1027,2189,996,1026">0,</WORD>
<WORD coords="2203,1031,2362,996,1024">TimeOut)</WORD>
<WORD coords="2389,1024,2404,996,1024">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="360,1076,385,1051,1076">&lt;</WORD>
<WORD coords="400,1075,419,1046,1075">0</WORD>
<WORD coords="421,1081,432,1046,1081">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1133,380,1101,1124">puts</WORD>
<WORD coords="390,1133,718,1096,1124">(”USB_control_msg</WORD>
<WORD coords="733,1124,813,1105,1124">error</WORD>
<WORD coords="822,1132,867,1096,1122">!”)</WORD>
<WORD coords="877,1130,883,1105,1130">;</WORD>
<WORD coords="913,1125,943,1096,1125">//</WORD>
<WORD coords="966,1125,1077,1096,1124">should</WORD>
<WORD coords="1097,1125,1188,1106,1124">never</WORD>
<WORD coords="1208,1125,1302,1106,1124">occur</WORD>
</LINE>
<LINE>
<WORD coords="274,1175,366,1146,1174">while</WORD>
<WORD coords="390,1183,551,1146,1174">(samples)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1234,290,1193,1234">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,1273,344,1245,1273">if</WORD>
<WORD coords="371,1282,517,1245,1273">(samples</WORD>
<WORD coords="538,1275,564,1250,1277">&gt;</WORD>
<WORD coords="579,1280,910,1245,1273">(EP2_FIFO_Size/2))</WORD>
</LINE>
<LINE>
<WORD coords="349,1323,380,1304,1323">m</WORD>
<WORD coords="391,1318,412,1307,1323">=</WORD>
<WORD coords="428,1330,757,1295,1323">(EP2_FIFO_Size/2);</WORD>
</LINE>
<LINE>
<WORD coords="317,1374,379,1345,1373">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1423,380,1404,1423">m</WORD>
<WORD coords="391,1418,412,1407,1421">=</WORD>
<WORD coords="426,1432,568,1395,1423">samples;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,1473,344,1445,1473">if</WORD>
<WORD coords="371,1479,621,1445,1473">(usb_bulk_read</WORD>
<WORD coords="632,1476,771,1445,1473">(handle,</WORD>
<WORD coords="800,1478,828,1445,1476">2,</WORD>
<WORD coords="857,1480,984,1445,1473">(char*)</WORD>
<WORD coords="1002,1479,1070,1445,1473">buf,</WORD>
<WORD coords="1096,1473,1127,1454,1473">m</WORD>
<WORD coords="1141,1472,1156,1454,1472">*</WORD>
<WORD coords="1174,1478,1202,1445,1476">2,</WORD>
<WORD coords="1227,1480,1386,1445,1473">TimeOut)</WORD>
<WORD coords="1402,1475,1428,1450,1477">&lt;</WORD>
<WORD coords="1443,1479,1487,1445,1473">(m</WORD>
<WORD coords="1501,1472,1516,1454,1472">*</WORD>
<WORD coords="1530,1480,1577,1445,1477">2))</WORD>
</LINE>
<LINE>
<WORD coords="351,1532,418,1500,1523">puts</WORD>
<WORD coords="427,1529,714,1495,1523">(”USB_bulk_read</WORD>
<WORD coords="731,1530,883,1495,1523">error!”);</WORD>
<WORD coords="913,1524,943,1495,1524">//</WORD>
<WORD coords="966,1524,1077,1495,1523">should</WORD>
<WORD coords="1097,1524,1188,1505,1523">never</WORD>
<WORD coords="1208,1524,1302,1505,1523">occur</WORD>
</LINE>
<LINE>
<WORD coords="310,1573,329,1544,1573">b</WORD>
<WORD coords="349,1567,370,1556,1569">=</WORD>
<WORD coords="387,1575,454,1544,1572">buf;</WORD>
</LINE>
<LINE>
<WORD coords="312,1631,442,1594,1622">samples</WORD>
<WORD coords="463,1613,489,1610,1615">—</WORD>
<WORD coords="493,1617,514,1606,1622">=</WORD>
<WORD coords="527,1627,567,1603,1622">m;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1672,404,1644,1672">while</WORD>
<WORD coords="427,1678,473,1644,1672">(m</WORD>
<WORD coords="539,1679,550,1644,1679">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1732,327,1691,1732">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1780,506,1743,1772">unsigned</WORD>
<WORD coords="521,1772,568,1743,1772">int</WORD>
<WORD coords="592,1778,623,1744,1772">k;</WORD>
</LINE>
<LINE>
<WORD coords="349,1821,368,1793,1821">k</WORD>
<WORD coords="386,1816,407,1805,1820">=</WORD>
<WORD coords="427,1829,599,1792,1821">(unsigned</WORD>
<WORD coords="615,1825,680,1793,1821">int)</WORD>
<WORD coords="706,1824,800,1793,1821">*b++;</WORD>
</LINE>
<LINE>
<WORD coords="349,1871,369,1843,1871">k</WORD>
<WORD coords="386,1871,431,1850,1870">+=</WORD>
<WORD coords="446,1879,618,1842,1871">(unsigned</WORD>
<WORD coords="634,1875,698,1843,1871">int)</WORD>
<WORD coords="724,1871,808,1843,1871">*b++</WORD>
<WORD coords="823,1869,838,1852,1870">*</WORD>
<WORD coords="854,1874,924,1843,1872">256;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1924,422,1900,1921">C++;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="355,1971,381,1943,1971">if</WORD>
<WORD coords="408,1977,418,1943,1971">(</WORD>
<WORD coords="424,1971,439,1952,1971">c</WORD>
<WORD coords="461,1966,505,1955,1967">==</WORD>
<WORD coords="518,1978,670,1943,1971">columns)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,2031,365,1990,2031">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2071,401,2052,2071">c</WORD>
<WORD coords="424,2066,445,2055,2069">=</WORD>
<WORD coords="463,2077,492,2043,2074">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="396,2129,489,2092,2120">printf</WORD>
<WORD coords="502,2130,658,2089,2120">(”%u\n&quot;,</WORD>
<WORD coords="672,2127,717,2092,2120">k);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,2180,365,2139,2180">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="354,2221,416,2192,2220">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="396,2279,489,2242,2270">printf</WORD>
<WORD coords="502,2273,589,2242,2271">(”%u</WORD>
<WORD coords="601,2273,627,2242,2266">”,</WORD>
<WORD coords="648,2274,681,2242,2270">k)</WORD>
<WORD coords="691,2275,697,2251,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2330,327,2289,2330">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2379,290,2338,2379">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2419,307,2391,2419">if</WORD>
<WORD coords="334,2426,381,2391,2419">(c)</WORD>
<WORD coords="407,2429,659,2388,2419">putchar(’\n’);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2479,253,2438,2479">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2569,287,2541,2569">int</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2622,382,2589,2618">main(int</WORD>
<WORD coords="408,2627,491,2599,2618">argc,</WORD>
<WORD coords="517,2618,596,2590,2618">char</WORD>
<WORD coords="612,2627,737,2590,2618">**argv)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2678,253,2637,2678">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,2719,380,2692,2718">struct</WORD>
<WORD coords="408,2719,586,2690,2718">usb.device</WORD>
<WORD coords="612,2723,699,2690,2718">*dev;</WORD>
</LINE>
<LINE>
<WORD coords="278,2769,380,2742,2768">struct</WORD>
<WORD coords="408,2769,462,2740,2768">usb</WORD>
<WORD coords="480,2768,537,2740,2768">dev</WORD>
<WORD coords="555,2768,662,2740,2768">handle</WORD>
<WORD coords="687,2771,828,2740,2768">^handle;</WORD>
</LINE>
<LINE>
<WORD coords="278,2818,324,2790,2818">int</WORD>
<WORD coords="352,2827,418,2795,2818">port</WORD>
<WORD coords="442,2813,463,2802,2813">=</WORD>
<WORD coords="482,2809,508,2807,2813">—</WORD>
<WORD coords="516,2823,541,2790,2820">1;</WORD>
</LINE>
<LINE>
<WORD coords="282,2869,414,2840,2868">uintl6_t</WORD>
<WORD coords="443,2877,573,2840,2868">samples</WORD>
<WORD coords="592,2863,613,2852,2866">=</WORD>
<WORD coords="632,2871,660,2840,2870">0;</WORD>
</LINE>
<LINE>
<WORD coords="283,2918,414,2889,2917">uintl6_t</WORD>
<WORD coords="446,2917,566,2889,2917">timeres</WORD>
<WORD coords="592,2912,613,2901,2915">=</WORD>
<WORD coords="632,2920,660,2889,2919">0;</WORD>
</LINE>
<LINE>
<WORD coords="278,2967,324,2939,2967">int</WORD>
<WORD coords="349,2967,486,2939,2967">columns</WORD>
<WORD coords="500,2962,521,2951,2964">=</WORD>
<WORD coords="538,2973,587,2939,2969">32;</WORD>
</LINE>
<LINE>
<WORD coords="284,3018,394,2989,3017">uint8_t</WORD>
<WORD coords="433,3018,525,2994,3017">status</WORD>
<WORD coords="541,3022,547,2998,3022">;</WORD>
</LINE>
<LINE>
<WORD coords="280,3067,307,3039,3067">if</WORD>
<WORD coords="334,3076,418,3039,3067">(argc</WORD>
<WORD coords="442,3062,487,3051,3063">==</WORD>
<WORD coords="505,3074,532,3039,3070">1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3127,290,3086,3127">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0002.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0003.djvu" width="2481">
<PARAM name="PAGE" value="sources_0003.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,133,1641,103,132">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2400,132,2420,104,132">4</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="311,286,404,258,277">usage</WORD>
<WORD coords="411,284,454,249,282">();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="318,327,378,299,327">exit</WORD>
<WORD coords="390,334,708,299,327">(EXIT_FAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,387,290,346,387">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,428,366,399,427">while</WORD>
<WORD coords="391,434,436,399,431">(1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,486,290,445,486">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,526,391,498,526">char</WORD>
<WORD coords="407,525,422,507,525">*</WORD>
<WORD coords="435,526,487,498,526">tail</WORD>
<WORD coords="504,532,510,507,532">;</WORD>
</LINE>
<LINE>
<WORD coords="311,584,386,548,576">long</WORD>
<WORD coords="409,576,455,547,576">int</WORD>
<WORD coords="483,576,492,548,577">1</WORD>
<WORD coords="504,579,510,557,0">;</WORD>
</LINE>
<LINE>
<WORD coords="315,626,362,597,626">int</WORD>
<WORD coords="392,635,496,598,626">option</WORD>
<WORD coords="500,626,603,598,626">Jndex</WORD>
<WORD coords="629,621,650,610,624">=</WORD>
<WORD coords="669,629,698,598,628">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="315,676,362,647,676">int</WORD>
<WORD coords="386,681,416,657,676">c;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,726,327,707,726">c</WORD>
<WORD coords="349,721,370,710,728">=</WORD>
<WORD coords="393,735,495,703,726">getopt</WORD>
<WORD coords="498,735,582,698,726">Jong</WORD>
<WORD coords="595,731,605,698,726">(</WORD>
<WORD coords="613,735,680,707,726">argc</WORD>
<WORD coords="690,732,696,722,732">,</WORD>
<WORD coords="724,735,808,707,726">argv,</WORD>
<WORD coords="835,735,1052,698,726">”t:s:p:c:h”,</WORD>
<WORD coords="1084,735,1155,698,726">long</WORD>
<WORD coords="1160,735,1293,698,726">.options</WORD>
<WORD coords="1307,731,1313,722,731">,</WORD>
<WORD coords="1340,735,1475,698,726">&amp;option</WORD>
<WORD coords="1479,733,1596,698,726">Jndex)</WORD>
<WORD coords="1606,731,1612,707,0">;</WORD>
</LINE>
<LINE>
<WORD coords="316,775,344,746,775">if</WORD>
<WORD coords="371,781,401,747,775">(c</WORD>
<WORD coords="423,770,468,759,770">==</WORD>
<WORD coords="483,782,545,747,776">—1)</WORD>
<WORD coords="558,778,669,747,775">break;</WORD>
</LINE>
<LINE>
<WORD coords="311,826,422,796,825">switch</WORD>
<WORD coords="446,832,493,797,825">(c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,885,327,844,885">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,926,421,905,925">case</WORD>
<WORD coords="447,925,509,897,925">’h’:</WORD>
</LINE>
<LINE>
<WORD coords="385,984,478,956,975">usage</WORD>
<WORD coords="486,983,510,947,981">()</WORD>
<WORD coords="522,980,528,956,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="393,1024,453,996,1024">exit</WORD>
<WORD coords="464,1030,474,996,1024">(</WORD>
<WORD coords="480,1024,573,996,1024">EXIT</WORD>
<WORD coords="576,1031,772,996,1024">JFAILURE)</WORD>
<WORD coords="777,1029,783,1005,0">;</WORD>
</LINE>
<LINE>
<WORD coords="349,1075,421,1054,1074">case</WORD>
<WORD coords="447,1083,509,1046,1067">’p’:</WORD>
</LINE>
<LINE>
<WORD coords="389,1125,475,1105,1124">errno</WORD>
<WORD coords="498,1119,519,1108,1122">=</WORD>
<WORD coords="538,1129,567,1096,1127">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,1174,399,1146,1174">1</WORD>
<WORD coords="424,1169,445,1158,1171">=</WORD>
<WORD coords="475,1174,557,1146,1174">strtol</WORD>
<WORD coords="576,1183,715,1146,1174">(optarg,</WORD>
<WORD coords="742,1179,846,1146,1174">&amp;tail,</WORD>
<WORD coords="873,1181,921,1146,1178">2);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,1224,419,1196,1224">if</WORD>
<WORD coords="448,1231,568,1196,1224">((errno</WORD>
<WORD coords="592,1219,636,1208,1221">==</WORD>
<WORD coords="650,1231,681,1196,1229">0)</WORD>
<WORD coords="705,1224,766,1196,1226">&amp;&amp;</WORD>
<WORD coords="780,1231,868,1195,1224">(*tail</WORD>
<WORD coords="890,1219,935,1208,1219">==</WORD>
<WORD coords="952,1235,1035,1193,1222">’\0’)</WORD>
<WORD coords="1060,1224,1121,1196,1225">&amp;&amp;</WORD>
<WORD coords="1135,1227,1156,1196,1225">(1</WORD>
<WORD coords="1173,1226,1224,1201,1223">&gt;=</WORD>
<WORD coords="1237,1231,1269,1196,1229">0)</WORD>
<WORD coords="1284,1225,1345,1196,1225">&amp;&amp;</WORD>
<WORD coords="1359,1227,1381,1196,1225">(1</WORD>
<WORD coords="1398,1226,1423,1202,1226">&lt;</WORD>
<WORD coords="1438,1231,1525,1196,1227">256))</WORD>
</LINE>
<LINE>
<WORD coords="426,1282,492,1250,1273">port</WORD>
<WORD coords="517,1268,538,1257,1272">=</WORD>
<WORD coords="558,1276,568,1245,1276">(</WORD>
<WORD coords="577,1273,623,1244,1273">int</WORD>
<WORD coords="632,1280,642,1246,1280">)</WORD>
<WORD coords="670,1273,679,1245,1276">1</WORD>
<WORD coords="691,1279,697,1254,0">;</WORD>
</LINE>
<LINE>
<WORD coords="391,1323,453,1295,1323">else</WORD>
</LINE>
<LINE>
<WORD coords="388,1383,402,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1432,492,1400,1423">puts</WORD>
<WORD coords="502,1429,598,1395,1423">(’’Use</WORD>
<WORD coords="612,1423,628,1404,1423">a</WORD>
<WORD coords="649,1424,696,1395,1423">8—</WORD>
<WORD coords="700,1423,743,1395,1423">bit</WORD>
<WORD coords="762,1432,867,1395,1423">binary</WORD>
<WORD coords="891,1423,1017,1395,1423">number</WORD>
<WORD coords="1028,1423,1076,1395,1423">for</WORD>
<WORD coords="1107,1432,1214,1395,1423">setting</WORD>
<WORD coords="1248,1432,1315,1400,1423">port</WORD>
<WORD coords="1341,1432,1481,1395,1423">pins!”);</WORD>
</LINE>
<LINE>
<WORD coords="430,1473,490,1445,1473">exit</WORD>
<WORD coords="502,1474,610,1445,1473">(EXIT</WORD>
<WORD coords="626,1479,820,1445,1473">FAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1533,402,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1578,497,1544,1572">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1623,421,1602,1622">case</WORD>
<WORD coords="447,1623,490,1594,1623">’c’</WORD>
<WORD coords="504,1623,509,1603,0">:</WORD>
</LINE>
<LINE>
<WORD coords="389,1672,475,1653,1672">errno</WORD>
<WORD coords="498,1667,519,1656,1670">=</WORD>
<WORD coords="538,1677,567,1644,1675">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,1722,399,1694,1722">1</WORD>
<WORD coords="424,1717,445,1706,1719">=</WORD>
<WORD coords="475,1722,557,1694,1722">strtol</WORD>
<WORD coords="576,1731,715,1694,1722">(optarg,</WORD>
<WORD coords="742,1727,846,1694,1722">&amp;tail,</WORD>
<WORD coords="873,1729,921,1694,1726">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,1772,419,1744,1772">if</WORD>
<WORD coords="448,1778,567,1744,1772">((errno</WORD>
<WORD coords="592,1767,636,1756,1769">==</WORD>
<WORD coords="650,1779,681,1744,1777">0)</WORD>
<WORD coords="705,1772,766,1744,1774">&amp;&amp;</WORD>
<WORD coords="780,1779,868,1743,1772">(*tail</WORD>
<WORD coords="890,1767,935,1756,1767">==</WORD>
<WORD coords="952,1782,1035,1741,1770">’\0’)</WORD>
<WORD coords="1060,1773,1121,1744,1773">&amp;&amp;</WORD>
<WORD coords="1135,1775,1156,1744,1773">(1</WORD>
<WORD coords="1173,1774,1199,1749,1774">&gt;</WORD>
<WORD coords="1213,1779,1245,1744,1777">0)</WORD>
<WORD coords="1265,1772,1326,1744,1773">&amp;&amp;</WORD>
<WORD coords="1340,1775,1363,1744,1773">(1</WORD>
<WORD coords="1379,1774,1429,1750,1771">&lt;=</WORD>
<WORD coords="1443,1779,1529,1744,1775">256))</WORD>
</LINE>
<LINE>
<WORD coords="424,1821,561,1793,1821">columns</WORD>
<WORD coords="575,1816,596,1805,1820">=</WORD>
<WORD coords="614,1824,624,1794,1824">(</WORD>
<WORD coords="633,1821,679,1792,1821">int</WORD>
<WORD coords="687,1828,698,1793,1828">)</WORD>
<WORD coords="726,1821,735,1793,1824">1</WORD>
<WORD coords="747,1827,753,1802,0">;</WORD>
</LINE>
<LINE>
<WORD coords="391,1871,453,1843,1871">else</WORD>
</LINE>
<LINE>
<WORD coords="388,1931,402,1890,1931">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1980,492,1948,1971">puts</WORD>
<WORD coords="502,1977,598,1943,1971">(’’Use</WORD>
<WORD coords="612,1972,628,1952,1972">a</WORD>
<WORD coords="656,1980,785,1943,1971">positive</WORD>
<WORD coords="824,1980,938,1943,1971">integer</WORD>
<WORD coords="968,1973,1019,1949,1970">&lt;=</WORD>
<WORD coords="1031,1972,1091,1943,1971">256</WORD>
<WORD coords="1104,1971,1152,1943,1971">for</WORD>
<WORD coords="1171,1971,1297,1943,1971">number</WORD>
<WORD coords="1308,1971,1344,1943,1971">of</WORD>
<WORD coords="1358,1978,1556,1943,1971">columns!”);</WORD>
</LINE>
<LINE>
<WORD coords="430,2021,490,1993,2021">exit</WORD>
<WORD coords="502,2028,820,1993,2021">(EXITJFAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2081,402,2040,2081">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2126,497,2092,2120">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2171,421,2150,2170">case</WORD>
<WORD coords="447,2152,453,2142,2170">’</WORD>
<WORD coords="464,2170,474,2147,2151">t</WORD>
<WORD coords="484,2151,490,2142,2171">’</WORD>
<WORD coords="504,2171,509,2151,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,2220,419,2192,2220">if</WORD>
<WORD coords="448,2226,472,2192,2220">((</WORD>
<WORD coords="483,2229,585,2197,2220">optarg</WORD>
<WORD coords="595,2227,696,2192,2216">[0]==&apos;</WORD>
<WORD coords="709,2227,754,2192,2218">1’)</WORD>
<WORD coords="779,2221,841,2192,2222">&amp;&amp;</WORD>
<WORD coords="854,2229,1001,2192,2220">(optarg[l</WORD>
<WORD coords="1012,2227,1139,2192,2220">]==’m’)</WORD>
<WORD coords="1153,2221,1214,2192,2221">&amp;&amp;</WORD>
<WORD coords="1228,2229,1481,2192,2220">(optarg[2]==V</WORD>
<WORD coords="1491,2227,1502,2192,2227">)</WORD>
<WORD coords="1527,2220,1588,2192,2221">&amp;&amp;</WORD>
<WORD coords="1602,2229,1861,2192,2220">(optarg[3]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2270,547,2242,2270">timeres</WORD>
<WORD coords="573,2265,594,2254,2267">=</WORD>
<WORD coords="610,2270,695,2242,2270">ADC</WORD>
<WORD coords="702,2275,775,2242,2270">lms;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2320,453,2292,2320">else</WORD>
<WORD coords="486,2320,512,2292,2320">if</WORD>
<WORD coords="541,2326,565,2292,2320">((</WORD>
<WORD coords="576,2329,679,2297,2320">optarg</WORD>
<WORD coords="688,2327,790,2292,2316">[0]==’</WORD>
<WORD coords="797,2321,813,2292,2301">5</WORD>
<WORD coords="821,2301,827,2292,2327">’</WORD>
<WORD coords="837,2327,847,2292,2327">)</WORD>
<WORD coords="873,2320,934,2292,2322">&amp;&amp;</WORD>
<WORD coords="948,2329,1222,2292,2320">(optarg[l]==’0’)</WORD>
<WORD coords="1246,2320,1308,2292,2321">&amp;&amp;</WORD>
<WORD coords="1321,2329,1596,2292,2320">(optarg[2]==’0’)</WORD>
<WORD coords="1620,2320,1681,2292,2321">&amp;&amp;</WORD>
<WORD coords="1695,2329,1969,2292,2320">(optarg[3]==&apos;u’)</WORD>
<WORD coords="1994,2321,2055,2292,2321">&amp;&amp;</WORD>
<WORD coords="2069,2329,2321,2292,2320">(optarg[4]==’s’</WORD>
<WORD coords="2331,2327,2342,2292,2327">)</WORD>
<WORD coords="2379,2320,2394,2290,2320">)</WORD>
</LINE>
<LINE>
<WORD coords="470,2370,531,2341,2370">&amp;&amp;</WORD>
<WORD coords="545,2378,804,2341,2369">(optarg[5]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2419,547,2391,2419">timeres</WORD>
<WORD coords="573,2414,594,2403,2416">=</WORD>
<WORD coords="610,2424,805,2391,2419">ADC500us;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2470,453,2441,2469">else</WORD>
<WORD coords="486,2469,512,2441,2469">if</WORD>
<WORD coords="541,2475,565,2441,2469">((</WORD>
<WORD coords="576,2478,679,2446,2469">optarg</WORD>
<WORD coords="688,2476,848,2441,2466">[0]==’2’)</WORD>
<WORD coords="873,2469,934,2441,2471">&amp;&amp;</WORD>
<WORD coords="948,2478,1222,2441,2469">(optarg[l]==’0’)</WORD>
<WORD coords="1246,2470,1308,2441,2470">&amp;&amp;</WORD>
<WORD coords="1321,2478,1596,2441,2469">(optarg[2]==’0’)</WORD>
<WORD coords="1620,2469,1681,2441,2470">&amp;&amp;</WORD>
<WORD coords="1695,2478,1969,2441,2469">(optarg[3]==&apos;u’)</WORD>
<WORD coords="1994,2469,2055,2441,2471">&amp;&amp;</WORD>
<WORD coords="2069,2478,2321,2441,2469">(optarg[4]==’s’</WORD>
<WORD coords="2331,2476,2342,2441,2476">)</WORD>
<WORD coords="2379,2469,2394,2439,2469">i&gt;</WORD>
</LINE>
<LINE>
<WORD coords="470,2520,531,2491,2520">&amp;&amp;</WORD>
<WORD coords="545,2528,661,2491,2519">(optarg</WORD>
<WORD coords="666,2526,694,2491,2523">[5</WORD>
<WORD coords="703,2526,804,2491,2520">]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2569,547,2541,2569">timeres</WORD>
<WORD coords="573,2564,594,2553,2566">=</WORD>
<WORD coords="610,2574,805,2541,2569">ADC200us;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2619,453,2590,2618">else</WORD>
<WORD coords="486,2618,512,2590,2618">if</WORD>
<WORD coords="541,2627,848,2590,2618">((optarg[0]==’l’)</WORD>
<WORD coords="873,2618,934,2590,2620">&amp;&amp;</WORD>
<WORD coords="948,2627,1095,2590,2618">(optarg[l</WORD>
<WORD coords="1105,2625,1222,2590,2614">]==’0’)</WORD>
<WORD coords="1246,2618,1308,2590,2619">&amp;&amp;</WORD>
<WORD coords="1321,2627,1596,2590,2618">(optarg[2]==’0’)</WORD>
<WORD coords="1620,2619,1681,2590,2620">&amp;&amp;</WORD>
<WORD coords="1695,2627,1969,2590,2618">(optarg[3]==&apos;u’)</WORD>
<WORD coords="1994,2618,2055,2590,2620">&amp;&amp;</WORD>
<WORD coords="2069,2627,2321,2590,2618">(optarg[4]==’s’</WORD>
<WORD coords="2331,2625,2342,2590,2625">)</WORD>
<WORD coords="2379,2618,2394,2588,2618">2</WORD>
</LINE>
<LINE>
<WORD coords="470,2669,531,2640,2670">&amp;&amp;</WORD>
<WORD coords="545,2677,804,2640,2668">(optarg[5]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2719,547,2690,2718">timeres</WORD>
<WORD coords="573,2713,594,2702,2715">=</WORD>
<WORD coords="610,2723,805,2690,2718">ADClOOus;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2768,453,2740,2768">else</WORD>
<WORD coords="486,2768,512,2740,2768">if</WORD>
<WORD coords="541,2774,566,2740,2768">((</WORD>
<WORD coords="576,2777,679,2745,2768">optarg</WORD>
<WORD coords="688,2775,790,2740,2764">[0]==’</WORD>
<WORD coords="797,2769,813,2740,2749">5</WORD>
<WORD coords="821,2749,827,2740,2775">’</WORD>
<WORD coords="837,2775,847,2740,2775">)</WORD>
<WORD coords="873,2768,934,2740,2770">&amp;&amp;</WORD>
<WORD coords="948,2777,1222,2740,2768">(optarg[l]==’0’)</WORD>
<WORD coords="1246,2768,1308,2740,2769">&amp;&amp;</WORD>
<WORD coords="1321,2777,1596,2740,2768">(optarg[2]==’u’)</WORD>
<WORD coords="1620,2768,1681,2740,2769">&amp;&amp;</WORD>
<WORD coords="1695,2777,1948,2740,2768">(optarg[3]==&apos;s’</WORD>
<WORD coords="1958,2775,1969,2740,2775">)</WORD>
<WORD coords="1994,2769,2055,2740,2769">&amp;&amp;</WORD>
<WORD coords="2069,2777,2328,2740,2768">(optarg[4]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2818,547,2790,2818">timeres</WORD>
<WORD coords="573,2813,594,2802,2815">=</WORD>
<WORD coords="610,2824,784,2790,2818">ADC50us;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2869,453,2840,2868">else</WORD>
<WORD coords="486,2868,512,2840,2868">if</WORD>
<WORD coords="541,2874,565,2840,2868">((</WORD>
<WORD coords="576,2877,679,2845,2868">optarg</WORD>
<WORD coords="688,2875,790,2840,2864">[0]==’</WORD>
<WORD coords="797,2875,848,2840,2866">2’)</WORD>
<WORD coords="873,2868,934,2840,2870">&amp;&amp;</WORD>
<WORD coords="948,2877,1222,2840,2868">(optarg[l]==’0’)</WORD>
<WORD coords="1246,2868,1308,2840,2869">&amp;&amp;</WORD>
<WORD coords="1321,2877,1596,2840,2868">(optarg[2]==’u’)</WORD>
<WORD coords="1620,2868,1681,2840,2869">&amp;&amp;</WORD>
<WORD coords="1695,2877,1948,2840,2868">(optarg[3]==&apos;s’</WORD>
<WORD coords="1958,2875,1969,2840,2875">)</WORD>
<WORD coords="1994,2868,2055,2840,2869">&amp;&amp;</WORD>
<WORD coords="2069,2877,2328,2840,2868">(optarg[4]==0))</WORD>
</LINE>
<LINE>
<WORD coords="428,2917,547,2889,2917">timeres</WORD>
<WORD coords="573,2912,594,2901,2914">=</WORD>
<WORD coords="610,2923,784,2889,2917">ADC20us;</WORD>
</LINE>
<LINE>
<WORD coords="391,2967,453,2939,2967">else</WORD>
</LINE>
<LINE>
<WORD coords="388,3027,402,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,3076,492,3044,3067">puts</WORD>
<WORD coords="502,3073,512,3039,3073">(</WORD>
<WORD coords="530,3067,596,3044,3067">trstr</WORD>
<WORD coords="613,3074,624,3039,3073">)</WORD>
<WORD coords="635,3072,641,3048,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="430,3117,490,3089,3117">exit</WORD>
<WORD coords="502,3123,610,3089,3117">(EXIT</WORD>
<WORD coords="613,3124,820,3089,3115">JFAILURE);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0003.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0004.djvu" width="2481">
<PARAM name="PAGE" value="sources_0004.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,122,129">—</WORD>
<WORD coords="1480,133,1641,103,132">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2402,133,2418,104,133">5</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="389,287,403,246,287">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,333,497,299,327">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,378,421,357,377">case</WORD>
<WORD coords="447,378,509,349,377">’s’:</WORD>
</LINE>
<LINE>
<WORD coords="389,427,474,408,427">errno</WORD>
<WORD coords="498,422,519,411,425">=</WORD>
<WORD coords="538,430,567,399,429">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,476,399,448,476">1</WORD>
<WORD coords="424,471,445,460,473">=</WORD>
<WORD coords="475,476,557,448,476">strtol</WORD>
<WORD coords="576,485,715,449,476">(optarg,</WORD>
<WORD coords="742,481,846,448,476">&amp;tail,</WORD>
<WORD coords="873,483,921,448,480">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,526,419,497,526">if</WORD>
<WORD coords="448,532,567,498,526">((errno</WORD>
<WORD coords="592,521,636,510,523">==</WORD>
<WORD coords="650,533,681,498,531">0)</WORD>
<WORD coords="705,526,766,498,528">&amp;&amp;</WORD>
<WORD coords="780,532,867,498,526">(*tail</WORD>
<WORD coords="890,521,935,510,521">==</WORD>
<WORD coords="952,536,1035,495,524">’\0’)</WORD>
<WORD coords="1060,527,1121,498,527">&amp;&amp;</WORD>
<WORD coords="1135,529,1156,498,527">(1</WORD>
<WORD coords="1173,528,1199,503,528">&gt;</WORD>
<WORD coords="1213,533,1245,498,531">0)</WORD>
<WORD coords="1265,526,1326,498,527">&amp;&amp;</WORD>
<WORD coords="1340,529,1363,498,527">(1</WORD>
<WORD coords="1379,528,1429,504,525">&lt;=</WORD>
<WORD coords="1442,535,1684,498,526">MaxSamples))</WORD>
</LINE>
<LINE>
<WORD coords="425,585,554,548,576">samples</WORD>
<WORD coords="573,571,594,560,576">=</WORD>
<WORD coords="614,582,625,548,576">(</WORD>
<WORD coords="636,577,768,548,576">uintl6_t</WORD>
<WORD coords="781,583,792,548,583">)</WORD>
<WORD coords="819,576,828,548,578">1</WORD>
<WORD coords="840,580,846,557,0">;</WORD>
</LINE>
<LINE>
<WORD coords="391,627,453,598,626">else</WORD>
</LINE>
<LINE>
<WORD coords="388,686,402,645,686">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,735,492,703,726">puts</WORD>
<WORD coords="502,732,598,698,726">(’’Use</WORD>
<WORD coords="611,727,630,698,727">0</WORD>
<WORD coords="650,728,676,704,728">&lt;</WORD>
<WORD coords="691,735,822,698,726">samples</WORD>
<WORD coords="837,728,863,703,728">&lt;</WORD>
<WORD coords="877,733,1036,698,725">65536!”);</WORD>
</LINE>
<LINE>
<WORD coords="430,775,490,747,775">exit</WORD>
<WORD coords="502,782,820,747,775">(EXIT_FAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,835,402,794,835">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,881,497,847,875">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,926,421,905,925">case</WORD>
<WORD coords="447,925,490,897,916">’?’</WORD>
<WORD coords="504,926,509,906,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="393,975,453,947,975">exit</WORD>
<WORD coords="464,982,783,947,975">(EXIT_FAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1030,497,996,1024">break;</WORD>
</LINE>
<LINE>
<WORD coords="352,1074,475,1045,1074">default</WORD>
<WORD coords="485,1074,490,1055,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,1125,474,1096,1124">abort</WORD>
<WORD coords="485,1131,509,1096,1130">()</WORD>
<WORD coords="522,1129,528,1105,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1184,327,1143,1184">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1234,290,1193,1234">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1273,307,1245,1273">if</WORD>
<WORD coords="334,1282,455,1245,1273">(optind</WORD>
<WORD coords="482,1275,508,1251,1275">&lt;</WORD>
<WORD coords="523,1282,606,1245,1273">argc)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1333,290,1292,1333">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="320,1382,415,1345,1373">printf</WORD>
<WORD coords="427,1382,673,1345,1373">(’’Unsupported</WORD>
<WORD coords="687,1382,866,1350,1373">arguments:</WORD>
<WORD coords="891,1380,939,1345,1371">”);</WORD>
</LINE>
<LINE>
<WORD coords="311,1424,404,1395,1423">while</WORD>
<WORD coords="427,1432,549,1395,1423">(optind</WORD>
<WORD coords="576,1425,601,1401,1425">&lt;</WORD>
<WORD coords="617,1432,699,1395,1423">argc)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="358,1482,452,1445,1473">printf</WORD>
<WORD coords="464,1479,547,1445,1474">(”%s</WORD>
<WORD coords="559,1479,587,1445,1471">”,</WORD>
<WORD coords="612,1482,698,1445,1473">argv[</WORD>
<WORD coords="707,1482,810,1445,1473">optind</WORD>
<WORD coords="816,1480,902,1445,1477">++]);</WORD>
</LINE>
<LINE>
<WORD coords="314,1532,438,1495,1523">putchar</WORD>
<WORD coords="446,1529,456,1495,1517">(</WORD>
<WORD coords="465,1505,471,1495,1533">’</WORD>
<WORD coords="481,1533,529,1492,1523">\n’</WORD>
<WORD coords="538,1530,549,1495,1529">)</WORD>
<WORD coords="560,1529,566,1504,0">;</WORD>
</LINE>
<LINE>
<WORD coords="318,1572,378,1544,1572">exit</WORD>
<WORD coords="390,1578,400,1544,1572">(</WORD>
<WORD coords="405,1572,498,1544,1572">EXIT</WORD>
<WORD coords="501,1579,697,1544,1572">JFAILURE)</WORD>
<WORD coords="702,1575,708,1553,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,290,1591,1632">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1672,307,1644,1672">if</WORD>
<WORD coords="338,1678,374,1644,1675">((!</WORD>
<WORD coords="387,1681,532,1644,1672">samples)</WORD>
<WORD coords="555,1672,617,1644,1674">&amp;&amp;</WORD>
<WORD coords="630,1679,792,1644,1672">(timeres))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1732,290,1691,1732">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1781,380,1749,1772">puts</WORD>
<WORD coords="390,1781,573,1744,1772">(’’Required</WORD>
<WORD coords="595,1781,714,1744,1772">option:</WORD>
<WORD coords="743,1763,769,1761,1768">—</WORD>
<WORD coords="774,1773,786,1753,1773">s</WORD>
<WORD coords="800,1772,834,1753,1772">or</WORD>
<WORD coords="919,1781,1092,1744,1772">samples”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="318,1821,378,1793,1821">exit</WORD>
<WORD coords="390,1827,400,1793,1821">(</WORD>
<WORD coords="405,1821,498,1793,1821">EXIT</WORD>
<WORD coords="501,1828,697,1793,1821">.FAILURE)</WORD>
<WORD coords="702,1824,708,1802,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1881,290,1840,1881">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1921,307,1893,1921">if</WORD>
<WORD coords="336,1930,513,1893,1921">((samples)</WORD>
<WORD coords="537,1922,598,1893,1922">&amp;&amp;</WORD>
<WORD coords="612,1928,792,1893,1921">(Itimeres))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1981,290,1940,1981">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2030,380,1998,2021">puts</WORD>
<WORD coords="390,2030,573,1993,2021">(’’Required</WORD>
<WORD coords="595,2030,699,1993,2021">option</WORD>
<WORD coords="710,2021,714,2002,2021">:</WORD>
<WORD coords="744,2012,769,2010,2022">—</WORD>
<WORD coords="773,2022,783,1998,2022">t</WORD>
<WORD coords="798,2021,832,2002,2021">or</WORD>
<WORD coords="918,2028,1080,1993,2021">timeres”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="318,2071,378,2043,2071">exit</WORD>
<WORD coords="390,2077,400,2043,2071">(</WORD>
<WORD coords="405,2071,498,2043,2071">EXIT</WORD>
<WORD coords="501,2078,697,2043,2071">.FAILURE)</WORD>
<WORD coords="702,2074,708,2052,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2130,290,2089,2130">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2170,331,2142,2170">dev</WORD>
<WORD coords="349,2165,370,2154,2168">=</WORD>
<WORD coords="387,2177,681,2142,2170">UsbFindDevice();</WORD>
</LINE>
<LINE>
<WORD coords="280,2220,307,2192,2220">if</WORD>
<WORD coords="334,2223,404,2192,2220">(dev</WORD>
<WORD coords="423,2215,468,2204,2216">==</WORD>
<WORD coords="481,2227,602,2192,2220">NULL)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2280,290,2239,2280">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="314,2329,380,2297,2320">puts</WORD>
<WORD coords="390,2326,501,2292,2320">(’’USB</WORD>
<WORD coords="515,2320,619,2292,2320">device</WORD>
<WORD coords="632,2320,684,2297,2320">not</WORD>
<WORD coords="704,2327,848,2292,2320">found!”)</WORD>
<WORD coords="859,2325,865,2301,0">;</WORD>
</LINE>
<LINE>
<WORD coords="318,2369,378,2341,2369">exit</WORD>
<WORD coords="390,2376,708,2341,2369">(EXIT_FAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2429,290,2388,2429">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2469,383,2441,2469">handle</WORD>
<WORD coords="405,2464,426,2453,2466">=</WORD>
<WORD coords="442,2478,681,2441,2469">usb_open(dev)</WORD>
<WORD coords="691,2475,697,2450,0">;</WORD>
</LINE>
<LINE>
<WORD coords="280,2519,307,2491,2519">if</WORD>
<WORD coords="334,2522,458,2491,2519">(handle</WORD>
<WORD coords="480,2514,524,2503,2515">==</WORD>
<WORD coords="537,2526,658,2491,2519">NULL)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2579,290,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="314,2627,380,2595,2618">puts</WORD>
<WORD coords="390,2624,501,2590,2618">(’’USB</WORD>
<WORD coords="515,2618,619,2590,2618">device</WORD>
<WORD coords="632,2618,741,2590,2618">handle</WORD>
<WORD coords="761,2618,812,2595,2618">not</WORD>
<WORD coords="834,2625,995,2590,2618">found!”);</WORD>
</LINE>
<LINE>
<WORD coords="318,2668,378,2640,2668">exit</WORD>
<WORD coords="390,2674,498,2640,2668">(EXIT</WORD>
<WORD coords="501,2675,708,2640,2668">JFAILURE);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2728,290,2687,2728">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2768,307,2740,2768">if</WORD>
<WORD coords="334,2774,345,2740,2774">(</WORD>
<WORD coords="365,2769,419,2740,2768">usb</WORD>
<WORD coords="437,2768,526,2740,2768">claim</WORD>
<WORD coords="546,2768,686,2740,2768">interface</WORD>
<WORD coords="707,2773,846,2740,2768">(handle,</WORD>
<WORD coords="873,2775,905,2740,2773">0)</WORD>
<WORD coords="931,2770,956,2746,2770">&lt;</WORD>
<WORD coords="971,2775,1002,2740,2772">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2828,290,2787,2828">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2877,380,2845,2868">puts</WORD>
<WORD coords="390,2874,489,2840,2868">(’’Can</WORD>
<WORD coords="501,2868,553,2845,2868">not</WORD>
<WORD coords="574,2868,664,2840,2868">claim</WORD>
<WORD coords="697,2868,839,2840,2868">interface</WORD>
<WORD coords="860,2875,921,2840,2866">!”);</WORD>
</LINE>
<LINE>
<WORD coords="316,2918,472,2889,2917">usb_close</WORD>
<WORD coords="483,2923,624,2889,2917">(handle)</WORD>
<WORD coords="635,2922,641,2898,0">;</WORD>
</LINE>
<LINE>
<WORD coords="318,2967,378,2939,2967">exit</WORD>
<WORD coords="390,2973,400,2939,2967">(</WORD>
<WORD coords="405,2967,498,2939,2967">EXIT</WORD>
<WORD coords="501,2974,697,2939,2967">^FAILURE)</WORD>
<WORD coords="702,2970,708,2948,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3027,290,2986,3027">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,3067,307,3039,3067">if</WORD>
<WORD coords="334,3076,418,3040,3067">(port</WORD>
<WORD coords="447,3067,477,3039,3063">!=</WORD>
<WORD coords="501,3074,562,3039,3066">-1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3127,290,3086,3127">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0004.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0005.djvu" width="2481">
<PARAM name="PAGE" value="sources_0005.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,133,1641,103,132">SUDAP.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="321,278,413,254,277">status</WORD>
<WORD coords="442,272,463,261,276">=</WORD>
<WORD coords="483,280,490,252,280">(</WORD>
<WORD coords="508,278,618,249,277">uint8_t</WORD>
<WORD coords="631,284,642,249,286">)</WORD>
<WORD coords="669,286,753,254,277">port;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,327,344,298,327">if</WORD>
<WORD coords="371,333,381,299,327">(</WORD>
<WORD coords="393,328,637,299,327">usb_bulk_write</WORD>
<WORD coords="651,333,790,299,327">(handle,</WORD>
<WORD coords="820,332,847,299,330">3,</WORD>
<WORD coords="875,334,1003,299,327">(char*)</WORD>
<WORD coords="1022,328,1051,299,328">&amp;</WORD>
<WORD coords="1057,332,1163,304,327">status,</WORD>
<WORD coords="1197,332,1220,299,330">1,</WORD>
<WORD coords="1245,334,1405,299,327">TimeOut)</WORD>
<WORD coords="1421,329,1446,304,329">&lt;</WORD>
<WORD coords="1465,334,1492,299,330">1)</WORD>
</LINE>
<LINE>
<WORD coords="351,386,418,354,377">puts</WORD>
<WORD coords="427,383,526,349,377">(’’Can</WORD>
<WORD coords="538,377,590,354,377">not</WORD>
<WORD coords="616,377,660,354,377">set</WORD>
<WORD coords="697,386,801,349,377">digital</WORD>
<WORD coords="837,386,904,354,377">port</WORD>
<WORD coords="928,384,1014,349,377">B!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,437,290,396,437">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,476,307,447,476">if</WORD>
<WORD coords="334,485,479,448,476">(samples</WORD>
<WORD coords="499,477,561,448,476">&amp;&amp;</WORD>
<WORD coords="573,480,706,448,476">timeres)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,536,290,495,536">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,585,548,548,576">dodaq(handle,</WORD>
<WORD coords="577,579,715,548,576">timeres,</WORD>
<WORD coords="742,585,884,548,576">samples,</WORD>
<WORD coords="909,583,1073,548,576">columns);</WORD>
</LINE>
<LINE>
<WORD coords="316,627,547,598,626">usb_bulk_read</WORD>
<WORD coords="558,632,696,598,626">(handle,</WORD>
<WORD coords="730,631,753,598,629">1,</WORD>
<WORD coords="782,633,910,598,626">(char*)</WORD>
<WORD coords="929,631,1070,598,626">&amp;status,</WORD>
<WORD coords="1103,631,1127,598,629">1,</WORD>
<WORD coords="1152,633,1322,598,626">TimeOut);</WORD>
</LINE>
<LINE>
<WORD coords="311,677,422,647,676">switch</WORD>
<WORD coords="446,682,457,648,677">(</WORD>
<WORD coords="471,677,562,652,676">status</WORD>
<WORD coords="575,683,586,648,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,736,327,695,736">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,776,421,755,775">case</WORD>
<WORD coords="446,782,778,747,775">(UsbDevStatusOK):</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,830,497,797,825">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,876,421,855,875">case</WORD>
<WORD coords="446,881,456,847,881">(</WORD>
<WORD coords="461,876,488,847,876">U</WORD>
<WORD coords="492,876,615,847,875">sbDevS</WORD>
<WORD coords="619,875,724,848,875">tatusD</WORD>
<WORD coords="726,882,780,847,882">AQ</WORD>
<WORD coords="800,875,821,847,875">B</WORD>
<WORD coords="826,882,1072,847,875">ufferOverflow)</WORD>
<WORD coords="1077,876,1082,856,0">:</WORD>
</LINE>
<LINE>
<WORD coords="388,934,582,897,925">putsC’DAQ</WORD>
<WORD coords="595,925,701,897,925">Buffer</WORD>
<WORD coords="712,932,923,897,925">Overflow!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,980,497,947,975">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1025,421,1004,1024">case</WORD>
<WORD coords="446,1030,456,996,1025">(</WORD>
<WORD coords="462,1025,489,996,1025">U</WORD>
<WORD coords="492,1025,615,996,1024">sbDevS</WORD>
<WORD coords="619,1024,724,997,1024">tatusD</WORD>
<WORD coords="726,1031,780,996,1024">AQ</WORD>
<WORD coords="785,1031,1064,996,1024">_TimerOverflow)</WORD>
<WORD coords="1069,1024,1074,1005,0">:</WORD>
</LINE>
<LINE>
<WORD coords="388,1083,581,1046,1074">putsC’DAQ</WORD>
<WORD coords="595,1074,694,1046,1074">Timer</WORD>
<WORD coords="705,1081,914,1046,1074">Overflow!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1129,497,1096,1124">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1175,421,1154,1174">case</WORD>
<WORD coords="446,1181,1213,1146,1174">(UsbDevStatusDAQ.ConversionNotFinished):</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1233,455,1201,1224">puts</WORD>
<WORD coords="464,1231,582,1196,1224">(”DAQ</WORD>
<WORD coords="595,1225,782,1196,1224">Conversion</WORD>
<WORD coords="794,1224,855,1205,1224">was</WORD>
<WORD coords="869,1224,920,1201,1224">not</WORD>
<WORD coords="940,1224,1068,1196,1224">finished</WORD>
<WORD coords="1096,1224,1184,1196,1224">when</WORD>
<WORD coords="1196,1233,1318,1196,1224">reading</WORD>
<WORD coords="1348,1231,1519,1196,1224">result!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1278,497,1245,1273">break;</WORD>
</LINE>
<LINE>
<WORD coords="352,1324,475,1294,1323">default</WORD>
<WORD coords="486,1323,490,1304,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1382,455,1350,1373">puts</WORD>
<WORD coords="464,1379,659,1345,1373">(’’Unknown</WORD>
<WORD coords="671,1373,751,1354,1373">error</WORD>
<WORD coords="762,1374,814,1345,1373">has</WORD>
<WORD coords="837,1373,980,1345,1373">occurred</WORD>
<WORD coords="990,1373,995,1345,1373">!</WORD>
<WORD coords="1003,1381,1035,1345,1371">”)</WORD>
<WORD coords="1046,1379,1052,1354,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1433,327,1392,1433">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1483,290,1442,1483">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="295,1524,351,1495,1523">usb</WORD>
<WORD coords="356,1523,482,1495,1523">.release</WORD>
<WORD coords="486,1523,642,1495,1523">-interface</WORD>
<WORD coords="670,1526,808,1495,1523">(handle,</WORD>
<WORD coords="836,1530,883,1495,1527">0);</WORD>
</LINE>
<LINE>
<WORD coords="278,1573,334,1544,1572">usb</WORD>
<WORD coords="339,1573,435,1544,1572">.close</WORD>
<WORD coords="446,1576,586,1544,1572">(handle)</WORD>
<WORD coords="597,1578,603,1553,0">;</WORD>
</LINE>
<LINE>
<WORD coords="281,1622,341,1594,1622">exit</WORD>
<WORD coords="352,1629,679,1594,1622">(EXIT.SUCCESS);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0005.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0006.djvu" width="2481">
<PARAM name="PAGE" value="sources_0006.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,133,1621,103,132">SUDD.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2401,132,2418,104,132">1</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,607,249,277">AT90USB/SUDD.C</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="293,336,403,299,327">Simple</WORD>
<WORD coords="427,328,489,299,327">Usb</WORD>
<WORD coords="500,327,612,300,327">Data—</WORD>
<WORD coords="615,336,797,300,327">acquisition</WORD>
<WORD coords="815,328,928,300,327">Device</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">23—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="299,428,379,399,427">Start</WORD>
<WORD coords="405,428,546,400,427">minicom</WORD>
<WORD coords="558,428,628,398,428">with</WORD>
<WORD coords="648,428,712,399,428">8N1</WORD>
<WORD coords="735,436,954,399,428">configuration</WORD>
<WORD coords="987,428,1016,405,427">to</WORD>
<WORD coords="1041,428,1092,409,428">see</WORD>
<WORD coords="1115,436,1214,399,427">debug</WORD>
<WORD coords="1227,436,1381,409,427">messages</WORD>
</LINE>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="295,476,353,448,476">The</WORD>
<WORD coords="373,477,436,448,476">real</WORD>
<WORD coords="461,477,543,448,476">work</WORD>
<WORD coords="554,485,690,448,476">happens</WORD>
<WORD coords="711,477,807,448,476">inside</WORD>
<WORD coords="837,485,875,448,481">of</WORD>
<WORD coords="902,485,1049,449,476">interrupt</WORD>
<WORD coords="1062,477,1236,449,476">—service—</WORD>
<WORD coords="1242,477,1373,449,476">routines</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="408,578,603,548,576">&lt;avr/io.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="408,628,500,598,626">&lt;avr/</WORD>
<WORD coords="512,635,654,598,626">interrupt</WORD>
<WORD coords="672,628,734,598,626">.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,658,421,648,667">”</WORD>
<WORD coords="433,676,466,657,676">us</WORD>
<WORD coords="470,676,511,654,676">art</WORD>
<WORD coords="528,677,581,648,676">drv</WORD>
<WORD coords="598,676,602,672,676">.</WORD>
<WORD coords="610,676,647,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,384,697,726">#include</WORD>
<WORD coords="405,726,610,698,726">”usb_drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,826,339,797,825">static</WORD>
<WORD coords="367,826,441,797,825">void</WORD>
<WORD coords="470,825,674,797,825">blinkforever</WORD>
<WORD coords="688,831,792,797,825">(void)</WORD>
<WORD coords="803,830,809,806,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,925,287,896,925">int</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,979,420,947,975">main(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1034,253,993,1034">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="281,1074,320,1046,1074">cli</WORD>
<WORD coords="336,1081,360,1046,1080">0</WORD>
<WORD coords="373,1079,379,1055,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1125,406,1096,1124">CLKPR</WORD>
<WORD coords="418,1119,439,1108,1124">=</WORD>
<WORD coords="453,1131,594,1096,1127">(1&lt;&lt;7);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1175,406,1146,1174">CLKPR</WORD>
<WORD coords="418,1169,439,1158,1172">=</WORD>
<WORD coords="452,1177,481,1146,1176">0;</WORD>
<WORD coords="492,1175,521,1146,1175">//</WORD>
<WORD coords="539,1175,625,1146,1174">clock</WORD>
<WORD coords="653,1179,809,1146,1174">prescaler</WORD>
<WORD coords="837,1169,885,1158,1170">==</WORD>
<WORD coords="902,1178,926,1146,1176">0,</WORD>
<WORD coords="947,1175,981,1156,1175">so</WORD>
<WORD coords="1003,1175,1046,1156,1174">we</WORD>
<WORD coords="1059,1175,1135,1146,1174">have</WORD>
<WORD coords="1153,1174,1192,1146,1174">16</WORD>
<WORD coords="1207,1177,1287,1147,1175">MHz</WORD>
<WORD coords="1299,1179,1368,1156,1174">mpu</WORD>
<WORD coords="1381,1179,1542,1146,1174">frequency</WORD>
<WORD coords="1554,1175,1622,1146,1174">with</WORD>
<WORD coords="1638,1174,1695,1156,1174">our</WORD>
<WORD coords="1713,1174,1752,1146,1174">16</WORD>
<WORD coords="1767,1177,1847,1147,1175">MHz</WORD>
<WORD coords="1860,1176,1972,1146,1174">crystal</WORD>
</LINE>
<LINE>
<WORD coords="274,1225,406,1196,1224">USART</WORD>
<WORD coords="423,1231,516,1196,1224">Tnit();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1284,725,1242,1273">USART_WriteString(”\r\n</WORD>
<WORD coords="740,1273,755,1243,1273">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="2229,1334,2344,1292,1323">\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1374,302,1345,1374">U</WORD>
<WORD coords="305,1376,661,1345,1373">sbDevLaunchDevice(</WORD>
<WORD coords="664,1380,753,1345,1373">false)</WORD>
<WORD coords="758,1378,764,1354,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1424,308,1395,1424">//</WORD>
<WORD coords="333,1432,847,1395,1423">UsbDevWaitStartupFinislied();</WORD>
<WORD coords="876,1424,906,1395,1425">//</WORD>
<WORD coords="928,1424,967,1405,1423">no</WORD>
<WORD coords="985,1424,1092,1405,1423">reason</WORD>
<WORD coords="1118,1424,1147,1401,1423">to</WORD>
<WORD coords="1172,1424,1243,1396,1423">wait</WORD>
</LINE>
<LINE>
<WORD coords="283,1473,487,1445,1473">blinkforever</WORD>
<WORD coords="504,1480,528,1445,1478">()</WORD>
<WORD coords="541,1478,547,1454,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1524,386,1497,1523">return</WORD>
<WORD coords="407,1526,436,1495,1525">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1582,253,1541,1582">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1673,270,1644,1673">//</WORD>
<WORD coords="293,1673,311,1654,1673">a</WORD>
<WORD coords="329,1672,407,1645,1672">LED</WORD>
<WORD coords="419,1673,587,1644,1672">connected</WORD>
<WORD coords="599,1673,627,1649,1672">to</WORD>
<WORD coords="647,1673,795,1644,1672">PORTAO</WORD>
<WORD coords="806,1673,867,1644,1672">will</WORD>
<WORD coords="881,1681,980,1644,1672">toggle</WORD>
<WORD coords="1006,1673,1035,1649,1672">to</WORD>
<WORD coords="1067,1673,1198,1644,1672">indicate</WORD>
<WORD coords="1230,1672,1278,1644,1672">the</WORD>
<WORD coords="1302,1673,1418,1644,1672">unused</WORD>
<WORD coords="1434,1681,1613,1645,1672">processing</WORD>
<WORD coords="1634,1681,1741,1654,1672">power</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1723,339,1694,1722">static</WORD>
<WORD coords="367,1723,441,1694,1722">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1772,450,1744,1772">blinkforever</WORD>
<WORD coords="464,1778,568,1744,1772">(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1831,253,1790,1840">{</WORD>
<WORD coords="280,1849,286,1842,1849">_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1871,324,1843,1871">int</WORD>
<WORD coords="352,1871,361,1843,1871">i</WORD>
<WORD coords="386,1866,407,1855,1869">=</WORD>
<WORD coords="426,1877,455,1843,1875">0;</WORD>
<WORD coords="483,1872,513,1843,1872">//</WORD>
<WORD coords="539,1872,568,1848,1871">to</WORD>
<WORD coords="594,1880,736,1853,1871">suppress</WORD>
<WORD coords="760,1880,896,1844,1871">warning</WORD>
<WORD coords="912,1880,949,1843,1876">of</WORD>
<WORD coords="966,1880,1110,1853,1871">avr—gcc</WORD>
</LINE>
<LINE>
<WORD coords="274,1921,390,1893,1921">DDRA</WORD>
<WORD coords="406,1931,677,1890,1921">|=(1«DDA0);</WORD>
</LINE>
<LINE>
<WORD coords="274,1972,366,1943,1971">while</WORD>
<WORD coords="391,1978,436,1943,1975">(1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2031,290,1990,2031">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2071,404,2042,2071">while</WORD>
<WORD coords="427,2077,531,2043,2071">(i++);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2121,439,2092,2120">PORTA</WORD>
<WORD coords="453,2115,486,2092,2112">&quot;=</WORD>
<WORD coords="500,2127,771,2092,2120">(1«PORTAO);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2180,290,2139,2180">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2230,253,2189,2230">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0006.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0007.djvu" width="2481">
<PARAM name="PAGE" value="sources_0007.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,141,1545,104,132">daq</WORD>
<WORD coords="1562,133,1651,104,132">dev.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,631,249,277">AT90USB/daq_dev.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="295,336,366,300,327">Very</WORD>
<WORD coords="388,336,494,299,327">simple</WORD>
<WORD coords="517,328,588,299,327">data</WORD>
<WORD coords="595,318,620,316,328">—</WORD>
<WORD coords="627,336,808,300,327">acquisition</WORD>
<WORD coords="838,328,941,299,328">device</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="518,377,586,349,377">19—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,483,647,448,476">_DAQ_DEV_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,533,647,498,526">_DAQ_DEV_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="408,628,603,598,626">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,727,270,698,727">//</WORD>
<WORD coords="295,727,366,708,726">user</WORD>
<WORD coords="386,727,562,698,726">commands</WORD>
</LINE>
<LINE>
<WORD coords="236,775,363,746,775">#define</WORD>
<WORD coords="387,776,645,747,775">UC_ADC_Read</WORD>
<WORD coords="689,775,700,747,775">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,876,270,847,876">//</WORD>
<WORD coords="293,884,443,847,875">sampling</WORD>
<WORD coords="463,875,532,848,875">time</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="386,926,549,897,925">ADC20us</WORD>
<WORD coords="689,925,700,897,925">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,976,549,947,975">ADC50us</WORD>
<WORD coords="685,975,703,947,975">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="386,1025,570,996,1024">ADClOOus</WORD>
<WORD coords="686,1025,702,996,1025">3</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="386,1075,570,1046,1074">ADC200us</WORD>
<WORD coords="684,1074,704,1046,1074">4</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="386,1125,570,1096,1124">ADC500us</WORD>
<WORD coords="685,1125,702,1096,1125">5</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="386,1174,471,1146,1174">ADC</WORD>
<WORD coords="478,1175,540,1146,1174">lms</WORD>
<WORD coords="685,1175,703,1146,1175">6</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1274,347,1247,1273">extern</WORD>
<WORD coords="377,1274,487,1245,1273">uint8_t</WORD>
<WORD coords="517,1280,732,1245,1273">DAQ_Result;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1374,310,1345,1373">void</WORD>
<WORD coords="330,1379,832,1345,1373">ProcessUserCommand(uint8_t</WORD>
<WORD coords="844,1376,1015,1345,1373">command,</WORD>
<WORD coords="1029,1374,1160,1345,1373">uintl6_t</WORD>
<WORD coords="1171,1382,1240,1345,1373">pari</WORD>
<WORD coords="1251,1378,1257,1369,1378">,</WORD>
<WORD coords="1291,1374,1422,1345,1373">uintl6_t</WORD>
<WORD coords="1450,1382,1556,1345,1373">par2);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1473,349,1444,1473">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0007.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0008.djvu" width="2481">
<PARAM name="PAGE" value="sources_0008.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1481,141,1545,104,132">daq</WORD>
<WORD coords="1562,133,1649,104,133">dev.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2401,133,2419,104,133">9</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,630,249,277">AT90USB/daq_dev.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,327,364,299,327">This</WORD>
<WORD coords="391,336,446,299,331">file</WORD>
<WORD coords="481,336,666,299,327">implements</WORD>
<WORD coords="688,328,774,299,327">basic</WORD>
<WORD coords="807,336,1022,299,328">functionality</WORD>
<WORD coords="1061,336,1099,299,332">of</WORD>
<WORD coords="1115,327,1133,309,327">a</WORD>
<WORD coords="1154,336,1260,299,327">simple</WORD>
<WORD coords="1283,328,1386,299,327">data—</WORD>
<WORD coords="1392,336,1574,300,327">acquisition</WORD>
<WORD coords="1604,328,1707,299,327">device</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="516,377,586,349,377">23—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,384,447,476">#include</WORD>
<WORD coords="408,478,603,448,476">&lt;avr/io.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="408,528,500,498,526">&lt;avr/</WORD>
<WORD coords="512,535,654,498,526">interrupt</WORD>
<WORD coords="672,528,734,498,526">.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="405,577,550,548,576">’’macros.</WORD>
<WORD coords="554,576,591,548,558">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="405,627,481,598,626">”usb</WORD>
<WORD coords="498,626,610,598,626">drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,676,507,648,676">’’usart</WORD>
<WORD coords="524,685,622,648,676">debug</WORD>
<WORD coords="635,676,639,672,676">.</WORD>
<WORD coords="650,676,684,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,708,421,698,717">”</WORD>
<WORD coords="434,735,599,698,726">ringbuffer</WORD>
<WORD coords="616,726,620,722,726">.</WORD>
<WORD coords="629,726,666,698,726">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,784,610,747,775">”daq_dev.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,384,796,825">#include</WORD>
<WORD coords="405,826,610,797,825">”com_def.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,926,329,897,925">uint8</WORD>
<WORD coords="346,925,356,902,925">t</WORD>
<WORD coords="389,932,470,897,925">DAQ</WORD>
<WORD coords="489,930,601,897,925">Result;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,976,339,947,975">static</WORD>
<WORD coords="376,976,507,947,975">uintl6_t</WORD>
<WORD coords="537,984,812,947,975">SamplesToRead;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1075,310,1046,1074">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1130,739,1096,1124">ProcessUserCommand(uint8_t</WORD>
<WORD coords="751,1127,922,1096,1124">command,</WORD>
<WORD coords="934,1125,1066,1096,1124">uintl6_t</WORD>
<WORD coords="1077,1133,1146,1096,1124">pari</WORD>
<WORD coords="1157,1130,1163,1120,1130">,</WORD>
<WORD coords="1198,1125,1329,1096,1124">uintl6_t</WORD>
<WORD coords="1357,1133,1446,1096,1124">par2)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1184,253,1143,1184">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="285,1225,365,1196,1224">uint8</WORD>
<WORD coords="384,1224,394,1202,1224">t</WORD>
<WORD coords="423,1233,669,1196,1224">prescalerADC;</WORD>
</LINE>
<LINE>
<WORD coords="284,1274,394,1245,1273">uint8_t</WORD>
<WORD coords="427,1282,622,1245,1273">prescalerTO</WORD>
<WORD coords="635,1276,641,1254,0">;</WORD>
</LINE>
<LINE>
<WORD coords="283,1324,394,1295,1323">uint8_t</WORD>
<WORD coords="424,1328,678,1295,1323">counterTOMax;</WORD>
</LINE>
<LINE>
<WORD coords="274,1374,385,1344,1373">switch</WORD>
<WORD coords="408,1379,598,1345,1373">(command)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1433,290,1392,1433">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1474,383,1453,1473">case</WORD>
<WORD coords="408,1474,460,1445,1474">UC</WORD>
<WORD coords="479,1474,562,1445,1473">ADC</WORD>
<WORD coords="582,1473,672,1445,1473">Read:</WORD>
</LINE>
<LINE>
<WORD coords="349,1524,460,1494,1523">switch</WORD>
<WORD coords="485,1529,509,1495,1529">((</WORD>
<WORD coords="525,1524,637,1495,1523">uint8_t</WORD>
<WORD coords="650,1530,661,1495,1532">)</WORD>
<WORD coords="684,1532,773,1495,1523">pari)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1582,365,1541,1582">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1623,458,1602,1623">case</WORD>
<WORD coords="480,1623,653,1594,1622">ADC20us:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="423,1681,658,1644,1672">prescalerADC</WORD>
<WORD coords="671,1667,692,1656,1672">=</WORD>
<WORD coords="706,1679,981,1644,1672">((1&lt;&lt;ADPS2));</WORD>
<WORD coords="991,1673,1021,1644,1673">//</WORD>
<WORD coords="1028,1681,1098,1653,1673">mpu</WORD>
<WORD coords="1110,1673,1196,1644,1672">clock</WORD>
<WORD coords="1209,1673,1227,1644,1673">/</WORD>
<WORD coords="1247,1672,1285,1644,1672">16</WORD>
</LINE>
<LINE>
<WORD coords="427,1731,622,1694,1722">prescalerTO</WORD>
<WORD coords="648,1717,669,1706,1723">=</WORD>
<WORD coords="686,1729,898,1694,1723">(1«CS01);</WORD>
<WORD coords="908,1723,939,1694,1723">//</WORD>
<WORD coords="949,1717,999,1706,1718">==</WORD>
<WORD coords="1013,1722,1032,1694,1722">8</WORD>
</LINE>
<LINE>
<WORD coords="424,1773,668,1744,1772">counterTOMax</WORD>
<WORD coords="681,1767,702,1756,1769">=</WORD>
<WORD coords="713,1775,764,1744,1773">40;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1824,535,1793,1821">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1872,458,1851,1871">case</WORD>
<WORD coords="480,1872,653,1843,1871">ADC50us:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="423,1930,658,1893,1921">prescalerADC</WORD>
<WORD coords="671,1916,692,1905,1921">=</WORD>
<WORD coords="706,1928,956,1893,1921">((1«ADPS2)</WORD>
<WORD coords="973,1931,975,1890,1931">|</WORD>
<WORD coords="992,1928,1253,1893,1921">(1«ADPS0));</WORD>
<WORD coords="1263,1930,1370,1893,1922">//mpu</WORD>
<WORD coords="1382,1922,1468,1893,1921">clock</WORD>
<WORD coords="1476,1922,1540,1893,1921">732</WORD>
</LINE>
<LINE>
<WORD coords="427,1980,622,1943,1971">prescalerTO</WORD>
<WORD coords="648,1966,669,1955,1971">=</WORD>
<WORD coords="686,1978,898,1943,1972">(1«CS01);</WORD>
<WORD coords="909,1972,938,1943,1969">//</WORD>
<WORD coords="950,1966,998,1955,1968">==</WORD>
<WORD coords="1013,1971,1033,1943,1971">8</WORD>
</LINE>
<LINE>
<WORD coords="424,2022,668,1993,2021">counterTOMax</WORD>
<WORD coords="681,2016,702,2005,2018">=</WORD>
<WORD coords="718,2024,785,1993,2022">100;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2074,535,2043,2071">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,2121,458,2100,2120">case</WORD>
<WORD coords="480,2121,673,2092,2120">ADClOOus:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2179,658,2142,2170">prescalerADC</WORD>
<WORD coords="671,2165,692,2154,2170">=</WORD>
<WORD coords="723,2177,973,2142,2170">((1«ADPS2)</WORD>
<WORD coords="990,2180,992,2139,2180">|</WORD>
<WORD coords="1009,2177,1270,2142,2170">(1«ADPS1));</WORD>
<WORD coords="1281,2179,1386,2142,2170">//mpu</WORD>
<WORD coords="1399,2171,1511,2142,2170">clock/</WORD>
<WORD coords="1518,2170,1558,2142,2170">64</WORD>
</LINE>
<LINE>
<WORD coords="427,2229,622,2192,2220">prescalerTO</WORD>
<WORD coords="648,2215,669,2204,2221">=</WORD>
<WORD coords="686,2227,898,2192,2221">(1«CS01);</WORD>
<WORD coords="908,2221,939,2192,2218">//</WORD>
<WORD coords="949,2215,999,2204,2218">==</WORD>
<WORD coords="1013,2221,1033,2192,2221">8</WORD>
</LINE>
<LINE>
<WORD coords="424,2271,668,2242,2270">counterTOMax</WORD>
<WORD coords="681,2265,702,2254,2267">=</WORD>
<WORD coords="714,2273,785,2242,2271">200;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2323,535,2292,2320">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,2370,458,2349,2369">case</WORD>
<WORD coords="480,2370,673,2341,2369">ADC200us:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="423,2428,658,2391,2419">prescalerADC</WORD>
<WORD coords="671,2414,692,2403,2419">=</WORD>
<WORD coords="723,2426,973,2391,2419">((1«ADPS2)</WORD>
<WORD coords="990,2429,992,2388,2429">|</WORD>
<WORD coords="1009,2426,1245,2391,2419">(1«ADPS1)</WORD>
<WORD coords="1263,2429,1265,2388,2429">|</WORD>
<WORD coords="1281,2427,1542,2391,2419">(1«ADPS0));</WORD>
<WORD coords="1552,2428,1658,2391,2420">//mpu</WORD>
<WORD coords="1671,2420,1782,2391,2419">clock/</WORD>
<WORD coords="1791,2419,1852,2391,2419">128</WORD>
</LINE>
<LINE>
<WORD coords="427,2478,622,2441,2469">prescalerTO</WORD>
<WORD coords="648,2464,669,2453,2469">=</WORD>
<WORD coords="686,2476,901,2441,2470">((1«CS01)</WORD>
<WORD coords="918,2479,920,2438,2479">|</WORD>
<WORD coords="937,2476,1263,2441,2469">(l«CS00));//==</WORD>
<WORD coords="1277,2469,1316,2441,2469">64</WORD>
</LINE>
<LINE>
<WORD coords="424,2520,668,2491,2519">counterTOMax</WORD>
<WORD coords="681,2514,702,2503,2517">=</WORD>
<WORD coords="714,2522,764,2491,2521">50;</WORD>
<WORD coords="783,2520,811,2491,2520">//</WORD>
<WORD coords="833,2519,896,2491,2519">400</WORD>
<WORD coords="910,2520,928,2491,2520">/</WORD>
<WORD coords="947,2519,967,2491,2519">8</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2572,535,2541,2569">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,2619,458,2598,2618">case</WORD>
<WORD coords="480,2619,673,2590,2618">ADC500us:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="423,2677,658,2640,2668">prescalerADC</WORD>
<WORD coords="671,2663,692,2652,2668">=</WORD>
<WORD coords="723,2675,973,2640,2668">((1«ADPS2)</WORD>
<WORD coords="990,2678,992,2637,2678">|</WORD>
<WORD coords="1009,2675,1245,2640,2668">(1«ADPS1)</WORD>
<WORD coords="1263,2678,1265,2637,2678">|</WORD>
<WORD coords="1281,2676,1542,2640,2668">(1«ADPS0));</WORD>
<WORD coords="1552,2677,1658,2640,2669">//mpu</WORD>
<WORD coords="1671,2669,1783,2640,2669">clock/</WORD>
<WORD coords="1791,2668,1852,2640,2668">128</WORD>
</LINE>
<LINE>
<WORD coords="428,2727,622,2690,2718">prescalerTO</WORD>
<WORD coords="648,2713,669,2702,2718">=</WORD>
<WORD coords="686,2725,901,2690,2719">((1«CS01)</WORD>
<WORD coords="918,2728,920,2687,2728">|</WORD>
<WORD coords="937,2725,1263,2690,2718">(l«CS00));//==</WORD>
<WORD coords="1277,2718,1317,2690,2718">64</WORD>
</LINE>
<LINE>
<WORD coords="424,2769,668,2740,2768">counterTOMax</WORD>
<WORD coords="681,2774,785,2740,2768">=125;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2821,535,2790,2818">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,2869,458,2848,2868">case</WORD>
<WORD coords="480,2868,564,2840,2868">ADC</WORD>
<WORD coords="571,2869,643,2840,2868">lms:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="423,2926,658,2889,2917">prescalerADC</WORD>
<WORD coords="671,2912,692,2901,2917">=</WORD>
<WORD coords="723,2924,973,2889,2917">((1«ADPS2)</WORD>
<WORD coords="990,2927,992,2886,2927">|</WORD>
<WORD coords="1009,2924,1245,2889,2917">(1«ADPS1)</WORD>
<WORD coords="1263,2927,1265,2886,2927">|</WORD>
<WORD coords="1281,2925,1542,2889,2917">(1«ADPS0));</WORD>
<WORD coords="1552,2926,1658,2889,2918">//mpu</WORD>
<WORD coords="1671,2918,1783,2889,2918">clock/</WORD>
<WORD coords="1792,2917,1852,2889,2917">128</WORD>
</LINE>
<LINE>
<WORD coords="427,2976,622,2939,2967">prescalerTO</WORD>
<WORD coords="648,2962,669,2951,2967">=</WORD>
<WORD coords="686,2974,901,2939,2968">((1«CS01)</WORD>
<WORD coords="918,2977,920,2936,2977">|</WORD>
<WORD coords="937,2974,1263,2939,2967">(l«CS00));//==</WORD>
<WORD coords="1277,2967,1316,2939,2967">64</WORD>
</LINE>
<LINE>
<WORD coords="424,3018,668,2989,3017">counterTOMax</WORD>
<WORD coords="681,3012,702,3001,3014">=</WORD>
<WORD coords="714,3020,785,2989,3018">250;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,3070,535,3039,3067">break;</WORD>
</LINE>
<LINE>
<WORD coords="389,3118,512,3089,3117">default</WORD>
<WORD coords="522,3117,527,3098,0">:</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0008.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0009.djvu" width="2481">
<PARAM name="PAGE" value="sources_0009.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1481,141,1545,104,132">daq</WORD>
<WORD coords="1562,133,1649,104,133">dev.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2420,104,132">10</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="424,286,710,249,277">Debugf’DaqDev:</WORD>
<WORD coords="725,286,937,249,277">Unsupported</WORD>
<WORD coords="951,286,1099,249,277">sampling</WORD>
<WORD coords="1111,287,1313,246,277">rate!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,330,548,301,327">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,387,365,346,387">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,428,504,399,427">ADMUX</WORD>
<WORD coords="516,422,537,411,427">=</WORD>
<WORD coords="551,434,780,399,427">(1&lt;&lt;REFS1)</WORD>
<WORD coords="797,437,799,396,437">|</WORD>
<WORD coords="816,434,1056,399,427">(1&lt;&lt;REFS0);</WORD>
<WORD coords="1067,428,1096,399,427">//</WORD>
<WORD coords="1100,428,1206,399,427">ADCO</WORD>
<WORD coords="1217,436,1314,399,427">single</WORD>
<WORD coords="1327,428,1426,399,427">ended</WORD>
<WORD coords="1438,436,1527,400,427">input,</WORD>
<WORD coords="1544,427,1673,399,427">internal</WORD>
<WORD coords="1683,428,1784,399,428">2.56V</WORD>
<WORD coords="1794,436,1944,399,428">reference</WORD>
<WORD coords="1958,428,2026,399,428">with</WORD>
<WORD coords="2056,428,2189,399,427">external</WORD>
<WORD coords="2230,427,2245,397,427">)</WORD>
</LINE>
<LINE>
<WORD coords="436,485,595,449,476">capacitor</WORD>
<WORD coords="619,477,656,458,476">on</WORD>
<WORD coords="672,476,777,448,476">AREF</WORD>
<WORD coords="782,485,836,449,476">pin</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,527,455,498,526">ADCS</WORD>
<WORD coords="460,526,515,498,526">RA</WORD>
<WORD coords="528,521,549,510,528">=</WORD>
<WORD coords="560,535,710,498,526">prescaler</WORD>
<WORD coords="711,526,796,498,526">ADC</WORD>
<WORD coords="813,536,815,495,536">|</WORD>
<WORD coords="832,533,1056,498,526">(1&lt;&lt;ADEN)</WORD>
<WORD coords="1074,536,1076,495,536">|</WORD>
<WORD coords="1093,532,1299,498,526">(1&lt;&lt;ADSC</WORD>
<WORD coords="1301,533,1364,498,526">);//</WORD>
<WORD coords="1371,527,1416,503,526">set</WORD>
<WORD coords="1423,535,1587,498,526">prescaler,</WORD>
<WORD coords="1603,527,1711,498,526">enable</WORD>
<WORD coords="1721,527,1808,498,526">ADC</WORD>
<WORD coords="1817,527,1880,498,526">and</WORD>
<WORD coords="1889,527,1966,503,526">start</WORD>
<WORD coords="1977,527,2153,499,526">conversion</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,577,505,548,576">TCCROA</WORD>
<WORD coords="518,571,539,560,577">=</WORD>
<WORD coords="553,583,578,548,579">(1</WORD>
<WORD coords="589,578,790,548,576">&lt;&lt;WGM01</WORD>
<WORD coords="800,583,821,553,582">);</WORD>
<WORD coords="832,577,914,548,577">//set</WORD>
<WORD coords="925,577,1012,549,576">timer</WORD>
<WORD coords="1024,585,1174,549,576">registers:</WORD>
<WORD coords="1193,577,1279,548,576">clear</WORD>
<WORD coords="1301,577,1339,558,576">on</WORD>
<WORD coords="1357,585,1499,558,576">compare</WORD>
<WORD coords="1512,577,1610,548,576">match</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,627,501,598,626">TCCROB</WORD>
<WORD coords="516,621,537,610,628">=</WORD>
<WORD coords="550,635,754,598,626">prescalerTO;</WORD>
<WORD coords="768,627,797,598,627">//</WORD>
<WORD coords="821,627,866,603,626">set</WORD>
<WORD coords="893,635,1052,598,626">prescaler</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,677,483,648,676">OCROA</WORD>
<WORD coords="495,671,516,660,673">=</WORD>
<WORD coords="529,681,784,648,676">counterTOMax;</WORD>
<WORD coords="795,677,824,648,677">//</WORD>
<WORD coords="831,677,877,653,676">set</WORD>
<WORD coords="894,685,999,654,676">output</WORD>
<WORD coords="1021,685,1163,658,676">compare</WORD>
<WORD coords="1186,685,1311,649,676">register</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,735,615,698,726">SamplesToRead</WORD>
<WORD coords="628,721,649,710,728">=</WORD>
<WORD coords="662,735,744,698,726">par2;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,782,528,747,775">RB_Init();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,832,432,797,825">DAQ</WORD>
<WORD coords="437,826,553,797,825">.Result</WORD>
<WORD coords="566,820,587,809,823">=</WORD>
<WORD coords="601,828,904,797,825">UsbDevStatusOK;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="353,884,548,847,875">prescalerTO</WORD>
<WORD coords="573,870,594,859,872">=</WORD>
<WORD coords="612,878,661,847,876">20;</WORD>
<WORD coords="708,876,737,847,876">//</WORD>
<WORD coords="759,876,800,847,876">do</WORD>
<WORD coords="815,875,834,857,875">a</WORD>
<WORD coords="846,884,909,847,878">few</WORD>
<WORD coords="932,876,1127,848,875">conversions</WORD>
<WORD coords="1156,876,1184,852,876">to</WORD>
<WORD coords="1209,876,1301,857,875">warm</WORD>
<WORD coords="1314,884,1352,857,875">up</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,925,441,897,925">while</WORD>
<WORD coords="464,928,474,897,931">(</WORD>
<WORD coords="483,934,678,897,925">prescalerTO</WORD>
<WORD coords="763,927,788,902,927">&gt;</WORD>
<WORD coords="803,932,834,897,929">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,985,365,944,985">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1024,478,996,1024">while</WORD>
<WORD coords="502,1027,683,996,1024">(ADCSRA</WORD>
<WORD coords="697,1024,726,996,1027">&amp;</WORD>
<WORD coords="739,1031,984,996,1024">(1&lt;&lt;ADSC));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1074,553,1046,1074">ADCSRA</WORD>
<WORD coords="569,1084,842,1043,1076">l=(l«ADSC);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1134,365,1093,1134">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1175,476,1146,1174">TCNTO</WORD>
<WORD coords="488,1169,509,1158,1171">=</WORD>
<WORD coords="522,1175,767,1146,1174">counterTOMax</WORD>
<WORD coords="779,1174,800,1153,1174">+</WORD>
<WORD coords="817,1174,828,1146,1176">1</WORD>
<WORD coords="836,1179,882,1146,1176">\//</WORD>
<WORD coords="895,1175,941,1151,1174">set</WORD>
<WORD coords="974,1175,1049,1151,1174">start</WORD>
<WORD coords="1079,1175,1167,1146,1174">value</WORD>
<WORD coords="1189,1175,1303,1146,1174">behind</WORD>
<WORD coords="1320,1183,1461,1156,1174">compare</WORD>
<WORD coords="1474,1175,1572,1146,1174">match</WORD>
<WORD coords="1660,1175,1704,1156,1175">we</WORD>
<WORD coords="1716,1175,1795,1146,1174">need</WORD>
<WORD coords="1805,1175,1888,1156,1174">some</WORD>
<WORD coords="1901,1174,1970,1147,1174">time</WORD>
<WORD coords="1983,1175,2014,1152,1174">to</WORD>
<WORD coords="2034,1182,2128,1146,1176">finish</WORD>
<WORD coords="2169,1175,2226,1146,1174">this</WORD>
<WORD coords="2257,1175,2358,1146,1174">USB—</WORD>
<WORD coords="2374,1174,2390,1144,0">h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="431,1225,489,1196,1224">ISR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1274,497,1245,1273">TIMSKO</WORD>
<WORD coords="509,1268,530,1257,1273">=</WORD>
<WORD coords="544,1280,811,1245,1273">(1&lt;&lt;OCIEOA);</WORD>
<WORD coords="822,1274,852,1245,1274">//</WORD>
<WORD coords="859,1274,988,1246,1273">activate</WORD>
<WORD coords="1001,1282,1142,1255,1273">compare</WORD>
<WORD coords="1155,1274,1253,1245,1273">match</WORD>
<WORD coords="1267,1282,1413,1246,1273">interrupt</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1324,458,1295,1323">TIFRO</WORD>
<WORD coords="474,1333,502,1292,1326">j=</WORD>
<WORD coords="518,1330,769,1295,1323">(1&lt;&lt;OCFOA);</WORD>
<WORD coords="780,1324,902,1295,1323">//clear</WORD>
<WORD coords="912,1332,1054,1305,1323">compare</WORD>
<WORD coords="1067,1324,1165,1295,1323">match</WORD>
<WORD coords="1174,1331,1241,1295,1328">flag</WORD>
<WORD coords="1339,1324,1383,1305,1324">we</WORD>
<WORD coords="1395,1324,1456,1295,1323">will</WORD>
<WORD coords="1471,1324,1542,1296,1323">wait</WORD>
<WORD coords="1560,1332,1615,1295,1326">for</WORD>
<WORD coords="1641,1324,1709,1300,1323">next</WORD>
<WORD coords="1731,1332,1872,1305,1323">compare</WORD>
<WORD coords="1885,1324,1983,1295,1323">match</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1379,460,1345,1373">break;</WORD>
</LINE>
<LINE>
<WORD coords="315,1424,437,1394,1423">default</WORD>
<WORD coords="448,1423,453,1404,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1482,635,1445,1473">Debugf’DaqDev:</WORD>
<WORD coords="651,1482,862,1445,1473">Unsupported</WORD>
<WORD coords="875,1473,943,1454,1473">user</WORD>
<WORD coords="954,1473,1116,1445,1473">command</WORD>
<WORD coords="1122,1483,1248,1442,1473">!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1533,290,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1582,253,1541,1582">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1679,718,1644,1672">ISR(TIMERO_COMPA_vect)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1732,253,1691,1732">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="282,1773,414,1744,1772">uintl6_t</WORD>
<WORD coords="442,1775,480,1753,1772">w;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1822,308,1793,1822">//</WORD>
<WORD coords="323,1822,411,1794,1821">static</WORD>
<WORD coords="453,1822,563,1793,1821">uint8_t</WORD>
<WORD coords="594,1826,660,1798,1821">cnt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1871,307,1843,1871">if</WORD>
<WORD coords="334,1874,515,1843,1871">(ADCSRA</WORD>
<WORD coords="529,1871,558,1843,1873">&amp;</WORD>
<WORD coords="571,1878,845,1843,1871">(1&lt;&lt;ADSC))//</WORD>
<WORD coords="852,1872,1029,1844,1871">conversion</WORD>
<WORD coords="1035,1880,1190,1843,1873">finished?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1928,394,1893,1921">DAQ</WORD>
<WORD coords="399,1922,517,1893,1921">.Result</WORD>
<WORD coords="529,1916,550,1905,1919">=</WORD>
<WORD coords="563,1928,1302,1893,1921">UsbDevStatusDAQ.ConversionNotFinished;</WORD>
</LINE>
<LINE>
<WORD coords="274,1971,301,1952,1971">w</WORD>
<WORD coords="314,1966,335,1955,1968">=</WORD>
<WORD coords="349,1974,484,1943,1971">ADCW;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2022,440,1993,2021">ADCSRA</WORD>
<WORD coords="457,2031,485,1990,2024">[=</WORD>
<WORD coords="499,2028,730,1993,2021">(1&lt;&lt;ADSC);</WORD>
<WORD coords="741,2022,853,1993,2021">//start</WORD>
<WORD coords="864,2022,931,1998,2021">next</WORD>
<WORD coords="942,2022,1119,1994,2021">conversion</WORD>
<WORD coords="1134,2022,1168,2003,2022">as</WORD>
<WORD coords="1189,2022,1264,2003,2021">soon</WORD>
<WORD coords="1283,2022,1318,2003,2021">as</WORD>
<WORD coords="1342,2030,1479,1993,2021">possible</WORD>
</LINE>
<LINE>
<WORD coords="280,2071,307,2043,2071">if</WORD>
<WORD coords="334,2080,616,2043,2071">(SamplesToRead</WORD>
<WORD coords="631,2073,656,2049,2073">&gt;</WORD>
<WORD coords="671,2078,702,2043,2075">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2130,290,2089,2130">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2170,344,2142,2170">if</WORD>
<WORD coords="371,2177,605,2142,2171">(RBJsFullO)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2230,327,2189,2230">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2277,432,2242,2270">DAQ</WORD>
<WORD coords="437,2270,553,2242,2270">.Result</WORD>
<WORD coords="566,2265,587,2254,2267">=</WORD>
<WORD coords="603,2277,920,2242,2270">IJsbDcvStatusDAQ</WORD>
<WORD coords="940,2270,982,2243,2270">Bu</WORD>
<WORD coords="987,2276,1208,2241,2270">fferOverflow;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2330,327,2289,2330">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2370,379,2341,2369">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2429,327,2388,2429">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="355,2469,381,2441,2469">if</WORD>
<WORD coords="408,2476,507,2441,2469">(DAQ</WORD>
<WORD coords="511,2470,628,2441,2469">.Result</WORD>
<WORD coords="641,2464,685,2453,2466">==</WORD>
<WORD coords="700,2476,1006,2441,2469">UsbDevStatusOK)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2526,617,2491,2519">RB.Write(w);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="354,2570,416,2541,2569">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2625,720,2590,2618">RB.Write(OxFFFF);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,2677,616,2640,2668">SamplesToRead</WORD>
<WORD coords="684,2674,690,2649,2674">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2728,327,2687,2728">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2778,290,2737,2778">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2827,719,2790,2818">UsbDevSelectEndpoint(2);</WORD>
</LINE>
<LINE>
<WORD coords="280,2868,307,2840,2868">if</WORD>
<WORD coords="334,2877,821,2840,2868">(UsbDevTransmitterReadyO)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2927,290,2886,2927">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="321,2968,431,2939,2967">uint8_t</WORD>
<WORD coords="464,2973,491,2939,2967">i;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,3017,344,2989,3017">if</WORD>
<WORD coords="373,3023,397,2989,3018">((</WORD>
<WORD coords="406,3026,672,2989,3017">SamplesToRead</WORD>
<WORD coords="684,3012,728,3001,3014">==</WORD>
<WORD coords="741,3024,773,2989,3022">0)</WORD>
<WORD coords="787,3018,848,2989,3019">&amp;&amp;</WORD>
<WORD coords="862,3024,927,2989,3017">(RB</WORD>
<WORD coords="945,3017,1060,2989,3017">Entries</WORD>
<WORD coords="1073,3012,1118,3001,3014">==</WORD>
<WORD coords="1130,3024,1176,2989,3022">0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,3077,327,3036,3077">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="349,3118,497,3089,3117">TIMSKO</WORD>
<WORD coords="509,3112,530,3101,3115">=</WORD>
<WORD coords="543,3123,572,3089,3120">0;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0009.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0010.djvu" width="2481">
<PARAM name="PAGE" value="sources_0010.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1480,141,1545,104,132">daq</WORD>
<WORD coords="1562,133,1649,104,133">dev.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,132,2416,104,132">11</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="352,277,361,249,277">i</WORD>
<WORD coords="386,272,407,261,275">=</WORD>
<WORD coords="426,280,475,249,278">64;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,337,327,296,337">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,378,379,349,377">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="352,427,361,399,427">i</WORD>
<WORD coords="386,422,407,411,425">=</WORD>
<WORD coords="425,436,909,399,427">UsbDevGetByteCountLow();</WORD>
</LINE>
<LINE>
<WORD coords="311,477,422,447,476">switch</WORD>
<WORD coords="446,483,493,448,476">(i)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,536,327,495,536">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="352,576,475,547,576">default</WORD>
<WORD coords="486,576,490,557,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,626,413,607,626">w</WORD>
<WORD coords="427,621,448,610,623">=</WORD>
<WORD coords="461,633,652,598,626">RB_Read();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,677,450,648,677">//w</WORD>
<WORD coords="465,671,485,660,674">=</WORD>
<WORD coords="502,681,567,653,676">cut;</WORD>
<WORD coords="592,685,682,648,676">dump</WORD>
<WORD coords="694,677,821,653,676">counter</WORD>
<WORD coords="838,677,867,654,676">to</WORD>
<WORD coords="891,677,983,648,676">FIFO</WORD>
<WORD coords="988,685,1044,648,679">for</WORD>
<WORD coords="1070,685,1178,649,676">testing</WORD>
</LINE>
<LINE>
<WORD coords="386,735,863,698,726">UsbDevWriteByte(LSB(w));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,784,875,747,775">UsbDevWriteByte(MSB(w));</WORD>
</LINE>
<LINE>
<WORD coords="349,826,421,805,825">case</WORD>
<WORD coords="444,826,492,797,825">62;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,875,419,846,875">if</WORD>
<WORD coords="446,876,513,847,875">(RB</WORD>
<WORD coords="531,875,646,847,875">Entries</WORD>
<WORD coords="669,877,695,853,877">&gt;</WORD>
<WORD coords="709,882,741,847,879">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,935,402,894,935">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,975,452,956,975">w</WORD>
<WORD coords="464,970,485,959,972">=</WORD>
<WORD coords="498,982,690,947,975">RB_Read();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1033,901,996,1024">UsbDevWriteByte(LSB(w));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1083,912,1046,1074">UsbDevWriteByte(MSB(w));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1134,402,1093,1134">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1179,497,1146,1174">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1225,421,1204,1224">case</WORD>
<WORD coords="444,1225,492,1196,1224">64:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1274,414,1245,1274">U</WORD>
<WORD coords="417,1282,907,1245,1273">sbDevClearTransmitterReady</WORD>
<WORD coords="910,1280,934,1245,1279">()</WORD>
<WORD coords="939,1278,945,1254,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1330,753,1295,1323">UsbDevSendInData();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1383,327,1342,1383">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1433,290,1392,1433">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1473,307,1445,1473">if</WORD>
<WORD coords="334,1477,458,1445,1473">(TIFRO</WORD>
<WORD coords="471,1476,741,1445,1473">&amp;(1&lt;&lt;OCFOA</WORD>
<WORD coords="744,1480,807,1445,1473">))//</WORD>
<WORD coords="816,1473,840,1446,1473">is</WORD>
<WORD coords="855,1482,1001,1446,1473">interrupt</WORD>
<WORD coords="1021,1481,1088,1445,1478">flag</WORD>
<WORD coords="1117,1482,1241,1445,1473">already</WORD>
<WORD coords="1269,1474,1315,1450,1473">set</WORD>
<WORD coords="1339,1482,1429,1446,1473">again</WORD>
<WORD coords="1437,1474,1452,1445,0">?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1533,290,1492,1533">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1579,394,1544,1572">DAQ</WORD>
<WORD coords="399,1573,517,1544,1572">.Result</WORD>
<WORD coords="529,1567,550,1556,1570">=</WORD>
<WORD coords="563,1580,1163,1543,1572">UsbDevStatusDAQ.TimerOverflow;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,290,1591,1632">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1673,308,1644,1673">//</WORD>
<WORD coords="333,1673,383,1649,1672">cnt</WORD>
<WORD coords="408,1667,429,1656,1669">=</WORD>
<WORD coords="445,1677,576,1644,1672">TCNTO;</WORD>
<WORD coords="591,1681,618,1644,1676">if</WORD>
<WORD coords="635,1672,715,1644,1672">there</WORD>
<WORD coords="742,1673,794,1654,1672">are</WORD>
<WORD coords="818,1673,868,1650,1672">too</WORD>
<WORD coords="891,1681,979,1654,1672">many</WORD>
<WORD coords="1002,1673,1195,1645,1672">instructions</WORD>
<WORD coords="1230,1672,1258,1645,1672">in</WORD>
<WORD coords="1291,1672,1348,1644,1672">this</WORD>
<WORD coords="1375,1673,1434,1644,1672">ISR</WORD>
<WORD coords="1438,1676,1442,1668,1676">,</WORD>
<WORD coords="1470,1673,1513,1654,1673">we</WORD>
<WORD coords="1526,1681,1594,1654,1672">may</WORD>
<WORD coords="1605,1681,1656,1650,1672">get</WORD>
<WORD coords="1679,1672,1796,1645,1672">timer—</WORD>
<WORD coords="1800,1673,1927,1650,1672">counter</WORD>
<WORD coords="1941,1680,2082,1644,1673">overflow</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0010.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0011.djvu" width="2481">
<PARAM name="PAGE" value="sources_0011.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1556,141,1643,103,132">api.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,132,2419,104,132">12</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,623,249,277">AT90USB/usbjapi.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,336,426,299,327">Usb_api</WORD>
<WORD coords="447,328,585,300,327">contains</WORD>
<WORD coords="616,328,771,304,327">constants</WORD>
<WORD coords="797,328,860,299,327">and</WORD>
<WORD coords="873,336,1030,299,328">functions</WORD>
<WORD coords="1059,328,1154,299,327">which</WORD>
<WORD coords="1172,328,1223,309,327">are</WORD>
<WORD coords="1250,336,1368,300,327">project</WORD>
<WORD coords="1407,336,1530,299,328">specific</WORD>
<WORD coords="1548,327,1553,323,327">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="295,378,351,350,377">You</WORD>
<WORD coords="367,386,435,359,377">may</WORD>
<WORD coords="447,386,559,349,379">modify</WORD>
<WORD coords="581,377,638,349,377">this</WORD>
<WORD coords="671,386,727,349,379">file</WORD>
<WORD coords="763,384,774,349,377">(</WORD>
<WORD coords="778,378,841,349,377">and</WORD>
<WORD coords="857,386,980,349,377">usbmpi</WORD>
<WORD coords="988,377,993,373,378">.</WORD>
<WORD coords="1003,378,1020,359,378">c</WORD>
<WORD coords="1025,383,1035,349,386">)</WORD>
<WORD coords="1055,386,1111,349,380">for</WORD>
<WORD coords="1131,386,1209,359,377">your</WORD>
<WORD coords="1235,386,1420,349,377">application</WORD>
<WORD coords="1436,377,1441,373,377">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="293,428,322,399,428">S.</WORD>
<WORD coords="351,428,494,399,427">Salewski</WORD>
<WORD coords="516,427,586,399,427">21—</WORD>
<WORD coords="589,427,704,399,427">MAR—</WORD>
<WORD coords="707,427,792,399,427">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,527,270,498,527">//</WORD>
<WORD coords="295,527,353,498,526">The</WORD>
<WORD coords="373,527,493,504,526">current</WORD>
<WORD coords="521,527,639,499,526">version</WORD>
<WORD coords="669,535,707,498,531">of</WORD>
<WORD coords="731,527,788,498,526">this</WORD>
<WORD coords="821,535,876,497,529">file</WORD>
<WORD coords="915,526,940,499,526">is</WORD>
<WORD coords="965,535,1098,498,526">adapted</WORD>
<WORD coords="1118,527,1147,504,526">to</WORD>
<WORD coords="1171,527,1189,508,527">a</WORD>
<WORD coords="1210,535,1316,498,526">simple</WORD>
<WORD coords="1338,527,1450,499,526">Data—</WORD>
<WORD coords="1451,535,1671,498,526">Acquisition—</WORD>
<WORD coords="1674,527,1795,499,526">Device.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,577,270,548,577">//</WORD>
<WORD coords="295,577,359,548,576">Our</WORD>
<WORD coords="369,584,450,548,576">DAQ</WORD>
<WORD coords="463,577,566,548,576">device</WORD>
<WORD coords="579,577,648,558,576">uses</WORD>
<WORD coords="670,585,829,548,576">endpoints</WORD>
<WORD coords="856,581,882,548,579">0,</WORD>
<WORD coords="913,581,938,548,579">1,</WORD>
<WORD coords="964,576,983,548,576">2</WORD>
<WORD coords="1003,577,1065,548,576">and</WORD>
<WORD coords="1080,576,1106,548,576">3.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="295,627,477,598,626">Commands</WORD>
<WORD coords="490,627,541,608,626">are</WORD>
<WORD coords="554,627,630,598,626">send</WORD>
<WORD coords="642,626,670,604,626">to</WORD>
<WORD coords="685,626,743,608,626">our</WORD>
<WORD coords="763,627,866,598,626">device</WORD>
<WORD coords="891,635,928,598,626">by</WORD>
<WORD coords="948,627,1090,598,626">vendor—</WORD>
<WORD coords="1095,635,1229,603,626">requests</WORD>
<WORD coords="1248,635,1335,599,626">using</WORD>
<WORD coords="1360,635,1504,598,626">endpoint</WORD>
<WORD coords="1529,626,1554,598,626">0.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,677,270,648,677">//</WORD>
<WORD coords="292,685,444,648,676">Endpoint</WORD>
<WORD coords="462,676,477,648,676">1</WORD>
<WORD coords="504,677,529,649,676">is</WORD>
<WORD coords="560,685,735,648,677">configured</WORD>
<WORD coords="760,677,795,658,677">as</WORD>
<WORD coords="815,676,920,648,676">Bulk—</WORD>
<WORD coords="923,677,994,649,676">IN—</WORD>
<WORD coords="998,685,1143,648,676">endpoint</WORD>
<WORD coords="1154,677,1216,648,676">and</WORD>
<WORD coords="1227,677,1302,648,676">used</WORD>
<WORD coords="1314,676,1342,654,676">to</WORD>
<WORD coords="1368,685,1498,648,677">transfer</WORD>
<WORD coords="1533,677,1628,653,676">status</WORD>
<WORD coords="1662,685,1853,648,676">information</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,727,270,698,729">//</WORD>
<WORD coords="286,735,367,698,728">from</WORD>
<WORD coords="389,727,492,698,726">device</WORD>
<WORD coords="520,727,549,704,726">to</WORD>
<WORD coords="577,727,624,698,726">the</WORD>
<WORD coords="650,727,732,698,726">host.</WORD>
<WORD coords="762,727,925,698,726">Whenever</WORD>
<WORD coords="935,726,984,698,726">the</WORD>
<WORD coords="1005,727,1074,698,726">host</WORD>
<WORD coords="1107,727,1177,699,726">tries</WORD>
<WORD coords="1212,727,1240,704,726">to</WORD>
<WORD coords="1265,727,1339,698,726">read</WORD>
<WORD coords="1358,727,1429,698,726">data</WORD>
<WORD coords="1444,735,1525,698,728">from</WORD>
<WORD coords="1544,735,1642,704,726">empty</WORD>
<WORD coords="1658,735,1803,698,726">endpoint</WORD>
<WORD coords="1829,731,1853,698,728">1,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,776,270,747,776">//</WORD>
<WORD coords="293,775,311,757,775">a</WORD>
<WORD coords="328,776,438,747,775">NAK—</WORD>
<WORD coords="443,784,589,748,775">interrupt</WORD>
<WORD coords="602,775,626,748,775">is</WORD>
<WORD coords="648,784,825,747,775">generated,</WORD>
<WORD coords="854,783,981,748,775">causing</WORD>
<WORD coords="996,784,1149,747,776">firmware</WORD>
<WORD coords="1174,776,1203,752,776">to</WORD>
<WORD coords="1232,776,1314,748,775">write</WORD>
<WORD coords="1346,776,1441,752,775">status</WORD>
<WORD coords="1475,784,1667,747,775">information</WORD>
<WORD coords="1697,776,1726,752,775">to</WORD>
<WORD coords="1758,775,1815,747,775">this</WORD>
<WORD coords="1843,784,1891,757,776">ep.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,826,270,797,826">//</WORD>
<WORD coords="292,834,444,797,825">Endpoint</WORD>
<WORD coords="460,825,479,797,825">2</WORD>
<WORD coords="504,826,529,798,825">is</WORD>
<WORD coords="560,834,736,797,827">configured</WORD>
<WORD coords="760,825,798,807,825">an</WORD>
<WORD coords="815,825,920,797,825">Bulk—</WORD>
<WORD coords="923,826,994,798,825">IN—</WORD>
<WORD coords="997,834,1150,797,825">Endpoint</WORD>
<WORD coords="1160,826,1223,797,825">and</WORD>
<WORD coords="1234,826,1308,797,826">used</WORD>
<WORD coords="1321,826,1349,802,825">to</WORD>
<WORD coords="1362,826,1439,797,825">send</WORD>
<WORD coords="1450,833,1561,797,825">DAQ—</WORD>
<WORD coords="1565,826,1636,797,825">data</WORD>
<WORD coords="1651,826,1679,802,825">to</WORD>
<WORD coords="1693,826,1741,797,825">the</WORD>
<WORD coords="1754,826,1823,797,825">host</WORD>
<WORD coords="1829,826,1834,821,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,876,269,847,876">//</WORD>
<WORD coords="292,883,373,847,875">DAQ</WORD>
<WORD coords="385,884,542,848,875">operation</WORD>
<WORD coords="565,876,655,852,875">starts</WORD>
<WORD coords="685,876,769,847,875">when</WORD>
<WORD coords="784,876,852,847,875">host</WORD>
<WORD coords="872,876,963,847,875">sends</WORD>
<WORD coords="984,875,1002,857,875">a</WORD>
<WORD coords="1022,876,1136,847,875">vendor</WORD>
<WORD coords="1158,884,1277,852,875">request</WORD>
<WORD coords="1287,876,1292,871,876">.</WORD>
<WORD coords="1327,876,1503,847,875">Controlled</WORD>
<WORD coords="1526,884,1563,847,876">by</WORD>
<WORD coords="1582,876,1600,857,876">a</WORD>
<WORD coords="1628,884,1830,847,875">periodically</WORD>
</LINE>
<LINE>
<WORD coords="241,926,270,897,926">//</WORD>
<WORD coords="301,926,452,897,925">activated</WORD>
<WORD coords="483,925,570,898,925">timer</WORD>
<WORD coords="603,934,769,898,925">interrupt,</WORD>
<WORD coords="797,934,858,897,925">daq</WORD>
<WORD coords="871,926,943,897,925">data</WORD>
<WORD coords="971,925,996,898,925">is</WORD>
<WORD coords="1020,934,1075,903,925">put</WORD>
<WORD coords="1100,926,1128,902,926">to</WORD>
<WORD coords="1156,926,1203,897,925">the</WORD>
<WORD coords="1227,926,1319,897,925">FIFO</WORD>
<WORD coords="1332,934,1369,897,929">of</WORD>
<WORD coords="1378,934,1523,897,925">endpoint</WORD>
<WORD coords="1547,926,1573,897,925">2.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,976,270,947,976">//</WORD>
<WORD coords="292,984,444,947,975">Endpoint</WORD>
<WORD coords="461,975,479,947,975">3</WORD>
<WORD coords="504,976,529,948,975">is</WORD>
<WORD coords="560,984,736,947,977">configured</WORD>
<WORD coords="760,976,795,957,975">as</WORD>
<WORD coords="815,975,919,947,975">Bulk—</WORD>
<WORD coords="925,976,1035,947,975">OUT—</WORD>
<WORD coords="1038,984,1191,947,975">Endpoint</WORD>
<WORD coords="1202,976,1265,947,975">and</WORD>
<WORD coords="1276,976,1350,947,975">used</WORD>
<WORD coords="1362,976,1391,952,976">to</WORD>
<WORD coords="1404,976,1480,947,975">send</WORD>
<WORD coords="1490,975,1508,957,975">a</WORD>
<WORD coords="1521,984,1618,947,975">single</WORD>
<WORD coords="1640,983,1707,947,975">byte</WORD>
<WORD coords="1724,984,1806,947,977">from</WORD>
<WORD coords="1828,976,1875,947,975">the</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1025,270,996,1025">//</WORD>
<WORD coords="296,1024,364,996,1024">host</WORD>
<WORD coords="390,1024,418,1002,1024">to</WORD>
<WORD coords="446,1024,493,996,1024">the</WORD>
<WORD coords="520,1025,623,996,1024">device</WORD>
<WORD coords="633,1025,638,1020,1025">.</WORD>
<WORD coords="670,1024,737,996,1024">This</WORD>
<WORD coords="763,1033,829,996,1024">byte</WORD>
<WORD coords="859,1025,920,1001,1024">sets</WORD>
<WORD coords="950,1024,998,996,1024">the</WORD>
<WORD coords="1020,1033,1091,997,1024">pins</WORD>
<WORD coords="1117,1033,1155,996,1029">of</WORD>
<WORD coords="1182,1033,1289,996,1024">digital</WORD>
<WORD coords="1319,1033,1392,1002,1024">port</WORD>
<WORD coords="1413,1024,1437,997,1024">B</WORD>
<WORD coords="1453,1033,1491,996,1029">of</WORD>
<WORD coords="1507,1025,1564,1006,1024">our</WORD>
<WORD coords="1579,1025,1751,996,1024">AT90USB.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,366,1095,1124">#ifndef</WORD>
<WORD coords="388,1125,623,1096,1124">_USB_API_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="402,1175,478,1146,1174">USB</WORD>
<WORD coords="498,1174,560,1146,1174">API</WORD>
<WORD coords="582,1174,605,1147,1174">H</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1273,384,1244,1273">#include</WORD>
<WORD coords="408,1275,603,1245,1273">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,384,1294,1323">#include</WORD>
<WORD coords="408,1325,622,1295,1323">&lt;stdbool.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,384,1344,1373">#include</WORD>
<WORD coords="405,1382,568,1345,1373">”usb_spec</WORD>
<WORD coords="579,1373,583,1369,1373">.</WORD>
<WORD coords="592,1373,628,1345,1373">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1474,270,1445,1474">//</WORD>
<WORD coords="296,1474,366,1445,1473">USB</WORD>
<WORD coords="382,1474,497,1445,1473">Vendor</WORD>
<WORD coords="506,1473,549,1446,1473">ID</WORD>
<WORD coords="564,1473,588,1446,1473">is</WORD>
<WORD coords="612,1482,758,1445,1473">assigned</WORD>
<WORD coords="778,1482,816,1445,1473">by</WORD>
<WORD coords="834,1482,1050,1445,1473">www.usb.org</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1524,270,1495,1524">//</WORD>
<WORD coords="295,1524,438,1495,1523">Vendor—</WORD>
<WORD coords="452,1524,515,1495,1523">and</WORD>
<WORD coords="522,1532,652,1495,1523">product</WORD>
<WORD coords="670,1524,700,1495,1523">id</WORD>
<WORD coords="728,1524,753,1496,1523">is</WORD>
<WORD coords="784,1532,904,1495,1526">defined</WORD>
<WORD coords="931,1523,959,1496,1523">in</WORD>
<WORD coords="984,1532,1162,1495,1524">coniudefh,</WORD>
<WORD coords="1189,1524,1322,1495,1523">because</WORD>
<WORD coords="1339,1524,1383,1505,1524">we</WORD>
<WORD coords="1394,1524,1474,1495,1523">need</WORD>
<WORD coords="1496,1523,1518,1496,1523">it</WORD>
<WORD coords="1548,1523,1575,1496,1523">in</WORD>
<WORD coords="1600,1524,1658,1505,1523">our</WORD>
<WORD coords="1678,1524,1746,1495,1523">host</WORD>
<WORD coords="1765,1532,1909,1505,1523">program</WORD>
<WORD coords="1921,1524,1989,1495,1523">too!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1573,295,1544,1573">//#</WORD>
<WORD coords="300,1581,397,1544,1575">define</WORD>
<WORD coords="423,1581,550,1544,1572">MyUSB</WORD>
<WORD coords="555,1573,727,1544,1572">_VendorID</WORD>
<WORD coords="834,1573,953,1543,1573">0x03eb</WORD>
<WORD coords="969,1573,999,1544,1573">//</WORD>
<WORD coords="1018,1572,1117,1544,1572">Atmel</WORD>
<WORD coords="1133,1573,1209,1544,1572">code</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1623,295,1594,1623">//#</WORD>
<WORD coords="299,1631,397,1594,1625">define</WORD>
<WORD coords="423,1631,550,1594,1622">MyUSB</WORD>
<WORD coords="555,1623,625,1595,1622">_Pro</WORD>
<WORD coords="628,1623,686,1594,1622">due</WORD>
<WORD coords="689,1622,741,1595,1622">tID</WORD>
<WORD coords="834,1622,952,1594,1622">0x0001</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1672,363,1643,1672">#define</WORD>
<WORD coords="386,1681,738,1644,1672">MyUSB_DeviceBCD</WORD>
<WORD coords="752,1673,871,1644,1672">0x0001</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1773,270,1744,1773">//</WORD>
<WORD coords="293,1781,404,1744,1774">modify</WORD>
<WORD coords="429,1773,510,1744,1772">these</WORD>
<WORD coords="539,1773,643,1744,1772">values</WORD>
<WORD coords="663,1781,718,1744,1775">for</WORD>
<WORD coords="739,1781,817,1754,1772">your</WORD>
<WORD coords="843,1781,1028,1744,1772">application</WORD>
<WORD coords="1043,1773,1054,1744,1773">!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1830,808,1793,1821">USB_NumConfigurations</WORD>
<WORD coords="988,1821,999,1793,1821">1</WORD>
<WORD coords="1025,1822,1055,1793,1822">//</WORD>
<WORD coords="1079,1821,1093,1793,1821">1</WORD>
<WORD coords="1115,1822,1152,1803,1821">or</WORD>
<WORD coords="1171,1821,1252,1803,1821">more</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,802,1843,1871">USB_MaxConfigurations</WORD>
<WORD coords="983,1871,1003,1843,1871">4</WORD>
<WORD coords="1025,1872,1055,1843,1872">//</WORD>
<WORD coords="1077,1872,1135,1853,1871">our</WORD>
<WORD coords="1155,1872,1258,1843,1871">device</WORD>
<WORD coords="1283,1872,1339,1853,1871">can</WORD>
<WORD coords="1358,1872,1433,1843,1871">have</WORD>
<WORD coords="1458,1880,1591,1843,1871">multiple</WORD>
<WORD coords="1629,1880,1848,1843,1872">configuration</WORD>
<WORD coords="1882,1872,1951,1843,1871">with</WORD>
<WORD coords="1989,1880,2127,1843,1873">different</WORD>
<WORD coords="2161,1871,2287,1843,1871">number</WORD>
<WORD coords="2298,1880,2336,1843,1875">of</WORD>
<WORD coords="2361,1871,2376,1841,1871">j</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="332,1930,493,1893,1922">interfaces</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1971,363,1942,1971">#define</WORD>
<WORD coords="387,1972,718,1943,1971">USB_MaxInterfaces</WORD>
<WORD coords="984,1971,1003,1943,1971">4</WORD>
<WORD coords="1025,1972,1055,1943,1972">//</WORD>
<WORD coords="1077,1972,1152,1943,1971">each</WORD>
<WORD coords="1182,1980,1326,1943,1972">interface</WORD>
<WORD coords="1360,1980,1398,1943,1976">of</WORD>
<WORD coords="1413,1972,1432,1953,1972">a</WORD>
<WORD coords="1461,1980,1680,1943,1972">configuration</WORD>
<WORD coords="1712,1971,1768,1943,1971">has</WORD>
<WORD coords="1787,1971,1805,1953,1971">a</WORD>
<WORD coords="1825,1971,1952,1943,1971">number</WORD>
<WORD coords="1962,1980,1999,1943,1976">of</WORD>
<WORD coords="2015,1980,2174,1943,1971">endpoints</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="388,2022,463,1993,2021">USB</WORD>
<WORD coords="480,2030,950,1992,2021">MaxStringDescriptorLength</WORD>
<WORD coords="984,2021,1023,1993,2021">22</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2121,270,2092,2121">//</WORD>
<WORD coords="290,2120,335,2092,2120">An</WORD>
<WORD coords="360,2129,504,2092,2121">interface</WORD>
<WORD coords="536,2121,592,2102,2120">can</WORD>
<WORD coords="610,2121,686,2092,2120">have</WORD>
<WORD coords="710,2129,844,2092,2120">multiple</WORD>
<WORD coords="881,2121,1028,2092,2120">alternate</WORD>
<WORD coords="1070,2129,1195,2093,2120">settings</WORD>
<WORD coords="1211,2125,1217,2116,2125">,</WORD>
<WORD coords="1247,2120,1299,2092,2120">but</WORD>
<WORD coords="1320,2120,1447,2092,2120">number</WORD>
<WORD coords="1457,2129,1495,2092,2124">of</WORD>
<WORD coords="1510,2129,1670,2092,2120">endpoints</WORD>
<WORD coords="1696,2129,1734,2092,2124">of</WORD>
<WORD coords="1757,2121,1815,2091,2121">this</WORD>
<WORD coords="1854,2129,1999,2092,2121">interface</WORD>
<WORD coords="2036,2120,2060,2093,2120">is</WORD>
<WORD coords="2087,2129,2133,2092,2126">fix</WORD>
<WORD coords="2146,2120,2151,2116,2120">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2171,270,2142,2171">//</WORD>
<WORD coords="295,2170,330,2143,2170">To</WORD>
<WORD coords="350,2171,457,2152,2170">ensure</WORD>
<WORD coords="486,2170,549,2142,2170">that</WORD>
<WORD coords="585,2171,782,2142,2170">reallocation</WORD>
<WORD coords="818,2179,856,2142,2175">of</WORD>
<WORD coords="875,2179,1034,2142,2170">endpoints</WORD>
<WORD coords="1060,2171,1129,2142,2170">with</WORD>
<WORD coords="1152,2171,1217,2152,2170">new</WORD>
<WORD coords="1229,2171,1321,2142,2170">FIFO</WORD>
<WORD coords="1334,2173,1393,2143,2171">size</WORD>
<WORD coords="1416,2179,1454,2142,2175">of</WORD>
<WORD coords="1470,2171,1527,2152,2170">one</WORD>
<WORD coords="1556,2179,1700,2142,2171">interface</WORD>
<WORD coords="1737,2171,1798,2142,2170">will</WORD>
<WORD coords="1826,2171,1879,2147,2170">not</WORD>
<WORD coords="1914,2179,2052,2142,2171">interfere</WORD>
<WORD coords="2088,2171,2156,2142,2170">with</WORD>
<WORD coords="2182,2171,2270,2142,2170">other</WORD>
<WORD coords="2305,2170,2320,2140,2170">D</WORD>
</LINE>
<LINE>
<WORD coords="332,2229,493,2192,2221">interfaces</WORD>
<WORD coords="510,2225,516,2216,2225">,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2271,270,2242,2271">//</WORD>
<WORD coords="294,2279,364,2242,2270">only</WORD>
<WORD coords="390,2270,437,2242,2270">the</WORD>
<WORD coords="472,2279,616,2242,2271">interface</WORD>
<WORD coords="649,2271,718,2242,2270">with</WORD>
<WORD coords="746,2279,866,2242,2270">highest</WORD>
<WORD coords="891,2270,1017,2242,2270">number</WORD>
<WORD coords="1028,2271,1139,2242,2270">should</WORD>
<WORD coords="1153,2271,1205,2252,2270">use</WORD>
<WORD coords="1233,2279,1367,2242,2270">multiple</WORD>
<WORD coords="1404,2271,1551,2242,2270">alternate</WORD>
<WORD coords="1593,2279,1718,2243,2270">settings</WORD>
<WORD coords="1751,2271,1820,2242,2270">with</WORD>
<WORD coords="1858,2279,1996,2242,2272">different</WORD>
<WORD coords="2032,2279,2177,2242,2270">endpoint</WORD>
<WORD coords="2197,2271,2291,2242,2270">FIFO</WORD>
<WORD coords="2316,2270,2331,2240,2270">D</WORD>
</LINE>
<LINE>
<WORD coords="320,2323,399,2293,2321">sizes</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2419,363,2390,2419">#define</WORD>
<WORD coords="386,2420,644,2391,2419">EPO_FIFO_Size</WORD>
<WORD coords="658,2420,674,2391,2420">8</WORD>
<WORD coords="691,2420,720,2391,2420">//</WORD>
<WORD coords="744,2424,770,2391,2422">8,</WORD>
<WORD coords="800,2423,846,2391,2421">16,</WORD>
<WORD coords="872,2419,911,2391,2419">32</WORD>
<WORD coords="928,2420,965,2401,2419">or</WORD>
<WORD coords="984,2419,1024,2391,2419">64</WORD>
<WORD coords="1043,2427,1109,2391,2419">byte</WORD>
</LINE>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="292,2470,386,2441,2469">FIFO</WORD>
<WORD coords="397,2472,458,2442,2470">size</WORD>
<WORD coords="482,2478,520,2441,2474">of</WORD>
<WORD coords="535,2469,602,2441,2469">EP1</WORD>
<WORD coords="618,2478,689,2446,2469">upto</WORD>
<WORD coords="703,2469,773,2441,2469">EP6</WORD>
<WORD coords="788,2469,812,2442,2469">is</WORD>
<WORD coords="840,2478,960,2441,2472">defined</WORD>
<WORD coords="987,2470,1017,2442,2470">in</WORD>
<WORD coords="1040,2478,1207,2441,2470">conudef.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2570,270,2541,2570">//</WORD>
<WORD coords="295,2570,387,2541,2569">These</WORD>
<WORD coords="405,2570,523,2551,2569">macros</WORD>
<WORD coords="536,2569,588,2551,2569">are</WORD>
<WORD coords="616,2570,717,2541,2569">called</WORD>
<WORD coords="749,2578,777,2541,2573">if</WORD>
<WORD coords="797,2569,835,2551,2569">an</WORD>
<WORD coords="855,2578,1000,2541,2569">endpoint</WORD>
<WORD coords="1033,2578,1179,2542,2569">interrupt</WORD>
<WORD coords="1214,2569,1238,2542,2569">is</WORD>
<WORD coords="1273,2578,1424,2541,2569">triggered</WORD>
<WORD coords="1454,2576,1465,2541,2576">(</WORD>
<WORD coords="1478,2578,1505,2541,2573">if</WORD>
<WORD coords="1526,2570,1657,2541,2569">enabled</WORD>
<WORD coords="1661,2574,1670,2541,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,270,2590,2619">//</WORD>
<WORD coords="293,2619,355,2590,2618">and</WORD>
<WORD coords="367,2627,435,2600,2618">may</WORD>
<WORD coords="447,2618,484,2590,2618">be</WORD>
<WORD coords="499,2619,575,2590,2618">used</WORD>
<WORD coords="595,2619,624,2595,2618">to</WORD>
<WORD coords="656,2626,705,2590,2622">fill</WORD>
<WORD coords="744,2625,755,2591,2618">(</WORD>
<WORD coords="759,2619,829,2591,2618">IN—</WORD>
<WORD coords="833,2627,997,2590,2618">Endpoint)</WORD>
<WORD coords="1010,2619,1047,2600,2618">or</WORD>
<WORD coords="1060,2619,1134,2590,2618">read</WORD>
<WORD coords="1155,2625,1166,2590,2619">(</WORD>
<WORD coords="1173,2619,1282,2590,2618">OUT—</WORD>
<WORD coords="1285,2627,1449,2590,2618">Endpoint)</WORD>
<WORD coords="1463,2619,1511,2590,2618">the</WORD>
<WORD coords="1523,2619,1623,2590,2618">FIFO.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2668,363,2639,2668">#define</WORD>
<WORD coords="387,2669,569,2640,2668">UsbDevEP</WORD>
<WORD coords="574,2668,635,2640,2668">lint</WORD>
<WORD coords="636,2672,774,2640,2668">Action!)</WORD>
<WORD coords="787,2675,1164,2640,2668">UsbDevFillEPlFIFO()</WORD>
<WORD coords="1174,2669,1287,2640,2668">//send</WORD>
<WORD coords="1309,2668,1404,2645,2668">status</WORD>
<WORD coords="1436,2669,1464,2646,2668">to</WORD>
<WORD coords="1491,2669,1560,2640,2668">host</WORD>
</LINE>
<LINE>
<WORD coords="236,2718,363,2689,2718">#define</WORD>
<WORD coords="387,2719,635,2690,2718">UsbDevEP2Int</WORD>
<WORD coords="636,2722,774,2690,2718">Action!)</WORD>
<WORD coords="786,2719,817,2690,2719">//</WORD>
<WORD coords="833,2723,911,2690,2718">EP2,</WORD>
<WORD coords="929,2719,1004,2690,2719">used</WORD>
<WORD coords="1018,2727,1073,2690,2721">for</WORD>
<WORD coords="1095,2726,1176,2690,2718">DAQ</WORD>
<WORD coords="1189,2723,1267,2690,2718">data,</WORD>
<WORD coords="1289,2719,1313,2691,2718">is</WORD>
<WORD coords="1346,2726,1437,2690,2721">filled</WORD>
<WORD coords="1470,2727,1507,2690,2719">by</WORD>
<WORD coords="1529,2718,1647,2691,2718">timer—</WORD>
<WORD coords="1650,2719,1709,2690,2718">ISR</WORD>
</LINE>
<LINE>
<WORD coords="236,2768,363,2739,2768">#define</WORD>
<WORD coords="387,2775,774,2740,2768">UsbDevEP3IntAction!)</WORD>
<WORD coords="788,2775,1192,2740,2768">UsbDevReadEP3FIFO()</WORD>
<WORD coords="1202,2769,1231,2740,2769">//</WORD>
<WORD coords="1239,2769,1313,2740,2768">read</WORD>
<WORD coords="1323,2769,1394,2740,2768">data</WORD>
<WORD coords="1408,2777,1474,2740,2768">byte</WORD>
<WORD coords="1485,2777,1540,2740,2771">for</WORD>
<WORD coords="1574,2777,1681,2740,2768">digital</WORD>
<WORD coords="1711,2777,1784,2746,2768">port</WORD>
<WORD coords="1805,2768,1829,2741,2768">B</WORD>
</LINE>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="387,2819,635,2790,2818">UsbDevEP4Int</WORD>
<WORD coords="636,2822,774,2790,2818">Action!)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2868,363,2839,2868">#define</WORD>
<WORD coords="387,2869,635,2840,2868">UsbDevEP5Int</WORD>
<WORD coords="636,2872,774,2840,2868">Action!)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="387,2918,635,2889,2917">UsbDevEP6Int</WORD>
<WORD coords="636,2921,774,2889,2917">Action!)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,3018,270,2989,3018">//</WORD>
<WORD coords="295,3018,387,2989,3017">These</WORD>
<WORD coords="406,3026,563,2989,3018">functions</WORD>
<WORD coords="592,3026,735,2989,3017">provides</WORD>
<WORD coords="763,3017,811,2989,3017">the</WORD>
<WORD coords="837,3018,906,2989,3017">host</WORD>
<WORD coords="929,3018,998,2989,3017">with</WORD>
<WORD coords="1025,3018,1128,2989,3017">device</WORD>
<WORD coords="1164,3026,1288,2989,3019">specific</WORD>
<WORD coords="1323,3018,1394,2989,3017">USB</WORD>
<WORD coords="1410,3026,1595,2989,3017">descriptors</WORD>
<WORD coords="1620,3025,1729,2989,3017">during</WORD>
<WORD coords="1753,3018,1801,2989,3017">the</WORD>
<WORD coords="1825,3018,2030,2990,3017">enumeration</WORD>
<WORD coords="2049,3026,2174,2999,3017">process</WORD>
</LINE>
<LINE>
<WORD coords="237,3068,310,3039,3067">void</WORD>
<WORD coords="332,3076,840,3039,3067">UsbGetDeviccDcscriptor!USB</WORD>
<WORD coords="860,3076,1149,3039,3067">DeviceDescriptor</WORD>
<WORD coords="1162,3071,1224,3039,3067">*d);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3117,308,3089,3117">bool</WORD>
<WORD coords="335,3126,1393,3089,3117">UsbGetConfigurationDescriptor(USB_ConfigurationDescriptor</WORD>
<WORD coords="1416,3122,1463,3098,3118">*c,</WORD>
<WORD coords="1498,3118,1608,3089,3117">uint8_t</WORD>
<WORD coords="1638,3124,1836,3089,3117">conflndex);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0011.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0012.djvu" width="2481">
<PARAM name="PAGE" value="sources_0012.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1556,141,1643,103,132">api.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2418,104,132">13</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,277,308,249,277">bool</WORD>
<WORD coords="339,286,787,249,277">UsbGetlnterfaceDescriptor</WORD>
<WORD coords="801,282,811,249,278">(</WORD>
<WORD coords="823,278,899,249,277">USB</WORD>
<WORD coords="904,286,1239,249,277">JnterfaceDescriptor</WORD>
<WORD coords="1266,280,1313,249,277">*i,</WORD>
<WORD coords="1348,278,1459,249,277">uint8_t</WORD>
<WORD coords="1488,282,1668,249,277">conflndex,</WORD>
<WORD coords="1703,278,1814,249,277">uint8_t</WORD>
<WORD coords="1849,277,1985,249,277">intlndex</WORD>
<WORD coords="1998,283,2004,273,283">,</WORD>
<WORD coords="2039,278,2150,249,277">uint8_t</WORD>
<WORD coords="2194,286,2350,249,277">altSetting</WORD>
<WORD coords="2379,277,2394,249,277">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="322,334,350,299,333">);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,377,308,349,377">bool</WORD>
<WORD coords="331,386,1220,349,377">UsbGetEndpointDescriptor(USB_EndpointDescriptor</WORD>
<WORD coords="1234,380,1279,358,377">*e,</WORD>
<WORD coords="1312,378,1394,349,377">uint8</WORD>
<WORD coords="1411,377,1421,355,377">t</WORD>
<WORD coords="1451,382,1630,349,377">conflndex,</WORD>
<WORD coords="1667,378,1748,349,377">uint8</WORD>
<WORD coords="1766,377,1776,354,377">t</WORD>
<WORD coords="1812,383,1966,349,377">intlndex,</WORD>
<WORD coords="2003,378,2084,349,377">uint8</WORD>
<WORD coords="2102,377,2112,354,377">t</WORD>
<WORD coords="2157,386,2312,349,377">altSetting</WORD>
<WORD coords="2334,380,2340,373,380">,</WORD>
<WORD coords="2379,377,2394,349,377">)</WORD>
</LINE>
<LINE>
<WORD coords="330,428,412,399,427">uint8</WORD>
<WORD coords="429,427,439,404,427">t</WORD>
<WORD coords="469,434,649,399,427">endlndex);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,477,310,448,476">void</WORD>
<WORD coords="334,485,839,448,476">UsbGetStringDescriptorfchar</WORD>
<WORD coords="855,476,867,457,476">s</WORD>
<WORD coords="883,483,915,448,482">[],</WORD>
<WORD coords="956,477,1066,448,476">uint8_t</WORD>
<WORD coords="1097,483,1220,448,476">index);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,577,270,548,577">//</WORD>
<WORD coords="295,577,387,548,576">These</WORD>
<WORD coords="406,585,563,548,577">functions</WORD>
<WORD coords="599,577,731,548,576">allocate</WORD>
<WORD coords="759,577,852,548,576">FIFO</WORD>
<WORD coords="865,585,997,558,576">memory</WORD>
<WORD coords="1009,577,1071,548,576">and</WORD>
<WORD coords="1081,585,1166,553,576">setup</WORD>
<WORD coords="1181,576,1223,548,576">all</WORD>
<WORD coords="1246,577,1322,548,576">used</WORD>
<WORD coords="1342,585,1501,548,576">endpoints</WORD>
</LINE>
<LINE>
<WORD coords="236,626,308,598,626">bool</WORD>
<WORD coords="330,635,760,598,626">UsbDevSetConfiguration(</WORD>
<WORD coords="771,627,881,598,626">uint8_t</WORD>
<WORD coords="909,633,958,598,626">c);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,676,308,648,676">bool</WORD>
<WORD coords="331,682,681,648,676">UsbDevSetInterface(</WORD>
<WORD coords="694,676,805,648,676">uint8_t</WORD>
<WORD coords="835,679,920,648,676">conf,</WORD>
<WORD coords="957,677,1038,648,676">uint8</WORD>
<WORD coords="1056,676,1066,654,676">t</WORD>
<WORD coords="1101,682,1163,648,676">inf,</WORD>
<WORD coords="1200,677,1281,648,676">uint8</WORD>
<WORD coords="1299,677,1310,652,677">t</WORD>
<WORD coords="1340,683,1406,648,676">as);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,776,270,747,776">//</WORD>
<WORD coords="296,776,373,748,775">User</WORD>
<WORD coords="392,784,512,747,776">defined</WORD>
<WORD coords="535,784,675,747,776">function</WORD>
<WORD coords="688,780,694,771,780">,</WORD>
<WORD coords="723,776,799,747,775">used</WORD>
<WORD coords="819,776,848,748,776">in</WORD>
<WORD coords="872,776,929,757,775">our</WORD>
<WORD coords="955,784,1140,747,775">application</WORD>
<WORD coords="1174,776,1203,752,776">to</WORD>
<WORD coords="1235,776,1311,753,775">start</WORD>
<WORD coords="1339,776,1410,747,775">data</WORD>
<WORD coords="1443,784,1623,748,775">acquisition</WORD>
</LINE>
<LINE>
<WORD coords="237,826,310,797,825">void</WORD>
<WORD coords="331,834,1204,797,825">UsbDevProcessVendorRequest(USB_DeviceRequest</WORD>
<WORD coords="1217,834,1311,797,825">*req);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,926,270,897,926">//</WORD>
<WORD coords="295,926,387,897,925">These</WORD>
<WORD coords="406,934,563,897,926">functions</WORD>
<WORD coords="593,925,644,907,925">are</WORD>
<WORD coords="672,926,773,897,925">called</WORD>
<WORD coords="790,934,872,897,927">from</WORD>
<WORD coords="896,926,995,897,925">within</WORD>
<WORD coords="1020,926,1079,897,925">ISR</WORD>
<WORD coords="1096,926,1159,897,925">and</WORD>
<WORD coords="1179,934,1228,897,927">fill</WORD>
<WORD coords="1264,926,1301,907,925">or</WORD>
<WORD coords="1321,926,1395,897,925">read</WORD>
<WORD coords="1413,926,1506,897,925">FIFO</WORD>
</LINE>
<LINE>
<WORD coords="237,976,310,947,975">void</WORD>
<WORD coords="331,981,793,946,975">UsbDevFillEPlFIFO(void);</WORD>
</LINE>
<LINE>
<WORD coords="237,1025,310,996,1024">void</WORD>
<WORD coords="330,1030,821,996,1024">UsbDevReadEP3FIFO(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1125,349,1095,1124">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0012.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0013.djvu" width="2481">
<PARAM name="PAGE" value="sources_0013.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,132,2420,104,132">14</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,622,249,277">AT90USB/usb_api.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,327,364,299,327">This</WORD>
<WORD coords="391,336,446,299,331">file</WORD>
<WORD coords="484,328,622,300,327">contains</WORD>
<WORD coords="649,336,806,299,328">functions</WORD>
<WORD coords="834,328,930,299,327">which</WORD>
<WORD coords="948,328,999,309,327">are</WORD>
<WORD coords="1026,336,1144,300,327">project</WORD>
<WORD coords="1183,336,1306,299,330">specific</WORD>
<WORD coords="1339,328,1401,299,327">and</WORD>
<WORD coords="1414,328,1525,299,327">should</WORD>
<WORD coords="1544,328,1581,299,327">be</WORD>
<WORD coords="1604,336,1747,299,329">modified</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="296,378,325,354,378">to</WORD>
<WORD coords="351,380,512,350,377">customize</WORD>
<WORD coords="539,377,587,349,377">the</WORD>
<WORD coords="613,378,714,349,377">USB—</WORD>
<WORD coords="718,378,825,349,377">driver.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="293,428,322,399,428">S.</WORD>
<WORD coords="351,428,494,399,427">Salewski</WORD>
<WORD coords="516,427,586,399,427">21—</WORD>
<WORD coords="589,427,704,399,427">MAR—</WORD>
<WORD coords="707,427,792,399,427">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="408,528,603,498,526">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="408,578,622,548,576">&lt;stdbool.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="405,608,421,598,617">”</WORD>
<WORD coords="430,626,545,598,626">defines</WORD>
<WORD coords="560,626,564,622,626">.</WORD>
<WORD coords="573,626,610,598,626">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,676,610,648,676">”com_def.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,735,622,698,726">”usart_debug</WORD>
<WORD coords="635,726,684,698,726">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,784,568,747,775">”usb_spec</WORD>
<WORD coords="579,775,583,771,775">.</WORD>
<WORD coords="592,775,628,747,775">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,384,796,825">#include</WORD>
<WORD coords="405,826,610,797,825">”usb_drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,384,846,875">#include</WORD>
<WORD coords="405,884,610,847,875">”daq_dev.h”</WORD>
<WORD coords="633,876,663,847,876">//</WORD>
<WORD coords="684,876,845,848,875">ProcessU</WORD>
<WORD coords="844,882,1098,847,875">serCommand(),</WORD>
<WORD coords="1114,883,1315,847,875">DAQJlesult</WORD>
</LINE>
<LINE>
<WORD coords="236,925,384,896,925">#include</WORD>
<WORD coords="405,926,483,897,925">”usb</WORD>
<WORD coords="501,934,546,897,925">api</WORD>
<WORD coords="560,925,564,921,925">.</WORD>
<WORD coords="573,925,610,897,925">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,384,946,975">#include</WORD>
<WORD coords="405,957,421,947,966">”</WORD>
<WORD coords="430,976,486,947,975">usb</WORD>
<WORD coords="491,984,637,952,975">.requests</WORD>
<WORD coords="654,975,703,947,975">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1075,270,1046,1075">//</WORD>
<WORD coords="295,1075,353,1046,1074">The</WORD>
<WORD coords="368,1075,516,1046,1074">behavior</WORD>
<WORD coords="538,1083,576,1046,1079">of</WORD>
<WORD coords="595,1075,665,1046,1074">USB</WORD>
<WORD coords="677,1075,798,1046,1074">devices</WORD>
<WORD coords="822,1074,846,1047,1074">is</WORD>
<WORD coords="883,1083,1029,1046,1076">specified</WORD>
<WORD coords="1059,1083,1096,1046,1074">by</WORD>
<WORD coords="1130,1083,1267,1046,1076">different</WORD>
<WORD coords="1311,1083,1495,1046,1074">descriptors</WORD>
<WORD coords="1531,1083,1651,1046,1076">defined</WORD>
<WORD coords="1675,1083,1713,1046,1074">by</WORD>
<WORD coords="1731,1083,1954,1046,1074">www.usb.org.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1125,269,1096,1125">//</WORD>
<WORD coords="292,1125,326,1097,1124">In</WORD>
<WORD coords="352,1124,400,1096,1124">the</WORD>
<WORD coords="430,1133,566,1096,1124">simplest</WORD>
<WORD coords="592,1125,663,1106,1125">case</WORD>
<WORD coords="685,1125,703,1106,1125">a</WORD>
<WORD coords="726,1125,829,1096,1124">device</WORD>
<WORD coords="853,1124,909,1096,1124">has</WORD>
<WORD coords="928,1125,985,1106,1124">one</WORD>
<WORD coords="1002,1125,1145,1097,1124">Device—</WORD>
<WORD coords="1148,1133,1334,1097,1124">Descriptor,</WORD>
<WORD coords="1358,1125,1415,1106,1124">one</WORD>
<WORD coords="1439,1133,1666,1096,1125">Configuration</WORD>
<WORD coords="1678,1133,1893,1097,1124">—Descriptor,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1175,270,1146,1175">//</WORD>
<WORD coords="293,1175,350,1156,1174">one</WORD>
<WORD coords="376,1183,524,1146,1175">Interface</WORD>
<WORD coords="538,1165,564,1163,1174">—</WORD>
<WORD coords="567,1183,748,1147,1174">Descriptor</WORD>
<WORD coords="760,1175,822,1146,1174">and</WORD>
<WORD coords="834,1175,852,1156,1175">a</WORD>
<WORD coords="865,1183,927,1146,1177">few</WORD>
<WORD coords="946,1183,1127,1146,1174">Endpoint—</WORD>
<WORD coords="1130,1183,1324,1147,1174">Descriptors</WORD>
<WORD coords="1328,1174,1333,1170,1174">.</WORD>
<WORD coords="1357,1174,1415,1147,1174">For</WORD>
<WORD coords="1432,1174,1514,1156,1174">more</WORD>
<WORD coords="1526,1175,1685,1146,1174">advanced</WORD>
<WORD coords="1699,1175,1819,1146,1174">devices</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1225,270,1196,1225">//</WORD>
<WORD coords="299,1224,379,1196,1224">there</WORD>
<WORD coords="405,1233,473,1206,1224">may</WORD>
<WORD coords="491,1225,566,1197,1225">exist</WORD>
<WORD coords="598,1233,732,1196,1224">multiple</WORD>
<WORD coords="767,1233,994,1196,1225">Configuration</WORD>
<WORD coords="1005,1214,1031,1213,1219">—</WORD>
<WORD coords="1045,1225,1108,1196,1224">and</WORD>
<WORD coords="1124,1233,1273,1196,1225">Interface</WORD>
<WORD coords="1285,1215,1311,1213,1224">—</WORD>
<WORD coords="1314,1233,1508,1197,1224">Descriptors</WORD>
<WORD coords="1512,1229,1518,1220,1229">,</WORD>
<WORD coords="1544,1225,1619,1196,1224">each</WORD>
<WORD coords="1640,1225,1708,1196,1224">with</WORD>
<WORD coords="1738,1233,1871,1196,1224">multiple</WORD>
<WORD coords="1898,1233,2079,1195,1224">Endpoint—</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="297,1282,491,1246,1273">Descriptors</WORD>
<WORD coords="502,1274,507,1269,1274">.</WORD>
<WORD coords="538,1274,582,1246,1273">We</WORD>
<WORD coords="595,1282,663,1255,1273">may</WORD>
<WORD coords="676,1274,756,1250,1273">store</WORD>
<WORD coords="785,1273,827,1245,1273">all</WORD>
<WORD coords="858,1274,940,1245,1273">these</WORD>
<WORD coords="976,1274,1139,1250,1273">structures</WORD>
<WORD coords="1174,1273,1202,1246,1273">in</WORD>
<WORD coords="1229,1281,1335,1255,1273">arrays</WORD>
<WORD coords="1358,1273,1394,1255,1273">or</WORD>
<WORD coords="1420,1274,1520,1245,1273">linked</WORD>
<WORD coords="1559,1273,1622,1245,1273">lists</WORD>
<WORD coords="1641,1278,1647,1269,1278">,</WORD>
<WORD coords="1676,1274,1771,1245,1273">which</WORD>
<WORD coords="1792,1274,1874,1245,1273">takes</WORD>
</LINE>
<LINE>
<WORD coords="241,1324,270,1295,1324">//</WORD>
<WORD coords="293,1324,379,1295,1323">much</WORD>
<WORD coords="393,1332,514,1300,1323">storage</WORD>
<WORD coords="539,1323,567,1296,1323">in</WORD>
<WORD coords="591,1323,677,1295,1323">RAM</WORD>
<WORD coords="686,1324,750,1295,1323">and</WORD>
<WORD coords="761,1324,786,1296,1323">is</WORD>
<WORD coords="798,1324,852,1300,1323">not</WORD>
<WORD coords="872,1332,945,1305,1324">easy</WORD>
<WORD coords="969,1323,997,1300,1323">to</WORD>
<WORD coords="1021,1324,1143,1295,1323">handle.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1374,270,1345,1374">//</WORD>
<WORD coords="292,1381,344,1346,1373">My</WORD>
<WORD coords="361,1382,510,1345,1373">currently</WORD>
<WORD coords="540,1382,697,1345,1374">preferred</WORD>
<WORD coords="730,1374,860,1345,1373">solution</WORD>
<WORD coords="894,1373,923,1350,1373">to</WORD>
<WORD coords="947,1374,1057,1345,1373">handle</WORD>
<WORD coords="1081,1373,1128,1345,1373">the</WORD>
<WORD coords="1162,1382,1346,1345,1373">descriptors</WORD>
<WORD coords="1382,1374,1407,1346,1373">is</WORD>
<WORD coords="1436,1374,1464,1350,1374">to</WORD>
<WORD coords="1490,1382,1633,1350,1373">generate</WORD>
<WORD coords="1657,1374,1735,1345,1373">them</WORD>
<WORD coords="1750,1373,1788,1355,1373">on</WORD>
<WORD coords="1809,1373,1857,1345,1373">the</WORD>
<WORD coords="1882,1381,1927,1345,1381">fly</WORD>
<WORD coords="1963,1382,1991,1345,1377">if</WORD>
</LINE>
<LINE>
<WORD coords="241,1424,270,1395,1424">//</WORD>
<WORD coords="297,1432,363,1395,1423">they</WORD>
<WORD coords="387,1424,439,1405,1423">are</WORD>
<WORD coords="466,1432,625,1395,1423">requested</WORD>
<WORD coords="648,1431,685,1395,1424">by</WORD>
<WORD coords="707,1424,755,1395,1423">the</WORD>
<WORD coords="781,1424,862,1395,1423">host.</WORD>
<WORD coords="894,1423,961,1395,1423">This</WORD>
<WORD coords="990,1424,1014,1396,1423">is</WORD>
<WORD coords="1042,1432,1148,1395,1423">simple</WORD>
<WORD coords="1171,1424,1232,1395,1423">and</WORD>
<WORD coords="1245,1424,1405,1405,1423">consumes</WORD>
<WORD coords="1418,1432,1487,1405,1423">very</WORD>
<WORD coords="1500,1432,1562,1395,1426">few</WORD>
<WORD coords="1581,1423,1672,1395,1423">RAM.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1474,270,1445,1474">//</WORD>
<WORD coords="298,1481,330,1445,1477">If</WORD>
<WORD coords="348,1473,367,1455,1473">a</WORD>
<WORD coords="394,1482,565,1445,1473">descriptor</WORD>
<WORD coords="597,1474,622,1446,1473">is</WORD>
<WORD coords="648,1474,765,1445,1473">needed</WORD>
<WORD coords="779,1482,888,1445,1473">during</WORD>
<WORD coords="909,1474,1115,1446,1473">enumeration</WORD>
<WORD coords="1133,1482,1273,1455,1473">process,</WORD>
<WORD coords="1301,1474,1359,1455,1473">one</WORD>
<WORD coords="1379,1482,1416,1445,1478">of</WORD>
<WORD coords="1436,1473,1483,1445,1473">the</WORD>
<WORD coords="1508,1482,1665,1445,1474">functions</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1524,270,1495,1524">//</WORD>
<WORD coords="295,1532,333,1495,1527">of</WORD>
<WORD coords="357,1523,414,1495,1523">this</WORD>
<WORD coords="447,1532,502,1495,1527">file</WORD>
<WORD coords="541,1524,566,1496,1523">is</WORD>
<WORD coords="597,1524,699,1495,1524">called</WORD>
<WORD coords="726,1524,754,1500,1523">to</WORD>
<WORD coords="800,1526,942,1495,1523">initialize</WORD>
<WORD coords="988,1524,1035,1495,1523">the</WORD>
<WORD coords="1069,1524,1214,1500,1523">structure</WORD>
<WORD coords="1246,1532,1411,1495,1523">according</WORD>
<WORD coords="1436,1524,1464,1500,1523">to</WORD>
<WORD coords="1501,1532,1624,1495,1525">specific</WORD>
<WORD coords="1652,1532,1853,1500,1523">parameters,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1573,270,1544,1573">//</WORD>
<WORD coords="293,1573,355,1544,1572">and</WORD>
<WORD coords="370,1572,437,1544,1572">then</WORD>
<WORD coords="465,1572,512,1544,1572">the</WORD>
<WORD coords="545,1573,691,1549,1572">structure</WORD>
<WORD coords="728,1572,753,1545,1572">is</WORD>
<WORD coords="775,1581,892,1544,1572">passed</WORD>
<WORD coords="913,1573,941,1549,1572">to</WORD>
<WORD coords="969,1572,1016,1544,1572">the</WORD>
<WORD coords="1043,1573,1114,1544,1572">USB</WORD>
<WORD coords="1126,1573,1202,1544,1572">host.</WORD>
<WORD coords="1229,1572,1287,1544,1572">The</WORD>
<WORD coords="1304,1573,1374,1554,1572">user</WORD>
<WORD coords="1395,1572,1450,1544,1572">has</WORD>
<WORD coords="1473,1572,1502,1549,1572">to</WORD>
<WORD coords="1526,1581,1637,1544,1574">modify</WORD>
<WORD coords="1660,1572,1707,1544,1572">the</WORD>
<WORD coords="1737,1573,1891,1549,1572">constants</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1623,270,1594,1623">//</WORD>
<WORD coords="293,1623,355,1594,1622">and</WORD>
<WORD coords="371,1622,418,1594,1622">the</WORD>
<WORD coords="443,1631,600,1594,1623">functions</WORD>
<WORD coords="632,1631,669,1594,1626">of</WORD>
<WORD coords="693,1622,750,1594,1622">this</WORD>
<WORD coords="783,1630,839,1594,1626">file</WORD>
<WORD coords="869,1631,924,1594,1625">for</WORD>
<WORD coords="947,1623,965,1604,1623">a</WORD>
<WORD coords="996,1631,1119,1594,1625">specific</WORD>
<WORD coords="1155,1623,1258,1594,1622">device</WORD>
<WORD coords="1268,1623,1273,1618,1623">.</WORD>
<WORD coords="1300,1622,1359,1595,1622">For</WORD>
<WORD coords="1378,1631,1484,1594,1622">simple</WORD>
<WORD coords="1512,1623,1631,1594,1622">devices</WORD>
<WORD coords="1665,1622,1722,1594,1622">this</WORD>
<WORD coords="1756,1622,1780,1595,1622">is</WORD>
<WORD coords="1808,1631,1877,1604,1622">very</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1673,270,1644,1673">//</WORD>
<WORD coords="293,1681,366,1654,1673">easy</WORD>
<WORD coords="454,1681,509,1644,1675">for</WORD>
<WORD coords="522,1673,642,1644,1672">devices</WORD>
<WORD coords="668,1673,737,1644,1672">with</WORD>
<WORD coords="766,1681,900,1644,1672">multiple</WORD>
<WORD coords="939,1681,1176,1644,1673">configurations</WORD>
<WORD coords="1190,1673,1208,1644,1673">/</WORD>
<WORD coords="1221,1681,1381,1644,1673">interfaces</WORD>
<WORD coords="1422,1672,1443,1645,1672">it</WORD>
<WORD coords="1475,1672,1500,1645,1672">is</WORD>
<WORD coords="1526,1672,1607,1654,1672">more</WORD>
<WORD coords="1619,1681,1809,1644,1672">demanding.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1723,270,1694,1723">//</WORD>
<WORD coords="295,1722,352,1695,1722">You</WORD>
<WORD coords="367,1731,435,1704,1722">may</WORD>
<WORD coords="446,1723,510,1694,1722">add</WORD>
<WORD coords="524,1723,680,1699,1722">constants</WORD>
<WORD coords="688,1727,694,1718,1727">,</WORD>
<WORD coords="729,1723,882,1694,1722">variables</WORD>
<WORD coords="909,1723,946,1704,1722">or</WORD>
<WORD coords="966,1731,1123,1694,1723">functions</WORD>
<WORD coords="1156,1723,1184,1700,1722">to</WORD>
<WORD coords="1216,1723,1273,1694,1722">this</WORD>
<WORD coords="1306,1730,1385,1694,1726">file,</WORD>
<WORD coords="1418,1723,1479,1695,1722">i.e.</WORD>
<WORD coords="1510,1723,1540,1699,1722">to</WORD>
<WORD coords="1564,1722,1730,1694,1722">remember</WORD>
<WORD coords="1740,1722,1788,1694,1722">the</WORD>
<WORD coords="1813,1723,1889,1699,1722">state</WORD>
<WORD coords="1920,1731,1958,1694,1727">of</WORD>
<WORD coords="1973,1722,2013,1704,1722">an</WORD>
<WORD coords="2030,1731,2077,1704,1722">ep.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1822,270,1793,1822">//</WORD>
<WORD coords="299,1822,378,1794,1821">First</WORD>
<WORD coords="413,1821,453,1793,1821">let</WORD>
<WORD coords="481,1822,515,1803,1821">us</WORD>
<WORD coords="540,1822,623,1794,1821">write</WORD>
<WORD coords="648,1822,735,1793,1821">down</WORD>
<WORD coords="749,1821,796,1793,1821">the</WORD>
<WORD coords="813,1830,1002,1799,1821">parameters</WORD>
<WORD coords="1024,1830,1062,1793,1826">of</WORD>
<WORD coords="1081,1821,1128,1793,1821">the</WORD>
<WORD coords="1155,1830,1315,1793,1821">endpoints</WORD>
<WORD coords="1340,1822,1435,1793,1821">which</WORD>
<WORD coords="1452,1822,1496,1803,1822">we</WORD>
<WORD coords="1508,1822,1588,1798,1821">want</WORD>
<WORD coords="1603,1822,1632,1798,1821">to</WORD>
<WORD coords="1658,1822,1722,1803,1821">use.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1872,270,1843,1872">//</WORD>
<WORD coords="295,1872,340,1844,1871">We</WORD>
<WORD coords="352,1872,428,1843,1871">have</WORD>
<WORD coords="446,1872,474,1848,1872">to</WORD>
<WORD coords="499,1872,665,1843,1871">remember</WORD>
<WORD coords="676,1872,758,1843,1871">these</WORD>
<WORD coords="779,1880,862,1843,1873">facts</WORD>
<WORD coords="891,1880,1000,1843,1871">during</WORD>
<WORD coords="1021,1876,1238,1844,1871">enumeration,</WORD>
<WORD coords="1264,1872,1348,1843,1871">when</WORD>
<WORD coords="1370,1880,1472,1843,1874">filling</WORD>
<WORD coords="1507,1871,1544,1853,1871">or</WORD>
<WORD coords="1566,1880,1690,1843,1871">reading</WORD>
<WORD coords="1716,1871,1763,1843,1871">the</WORD>
<WORD coords="1786,1876,1887,1843,1871">FIFO,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1922,270,1893,1922">//</WORD>
<WORD coords="293,1922,355,1893,1921">and</WORD>
<WORD coords="364,1930,420,1893,1924">for</WORD>
<WORD coords="446,1922,493,1893,1921">the</WORD>
<WORD coords="517,1922,769,1894,1921">communication</WORD>
<WORD coords="783,1930,821,1893,1926">of</WORD>
<WORD coords="838,1922,885,1893,1921">the</WORD>
<WORD coords="912,1922,981,1893,1921">host</WORD>
<WORD coords="1005,1922,1073,1893,1921">with</WORD>
<WORD coords="1096,1921,1154,1903,1921">our</WORD>
<WORD coords="1174,1922,1277,1893,1922">device</WORD>
<WORD coords="1287,1922,1292,1917,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2022,270,1993,2022">//</WORD>
<WORD coords="295,2022,353,1993,2021">The</WORD>
<WORD coords="373,2022,493,1999,2021">current</WORD>
<WORD coords="522,2022,639,1994,2021">version</WORD>
<WORD coords="669,2030,707,1993,2026">of</WORD>
<WORD coords="731,2022,788,1993,2021">this</WORD>
<WORD coords="821,2030,876,1993,2025">file</WORD>
<WORD coords="915,2021,940,1994,2021">is</WORD>
<WORD coords="965,2030,1099,1993,2021">adapted</WORD>
<WORD coords="1118,2021,1147,1998,2021">to</WORD>
<WORD coords="1171,2022,1189,2003,2022">a</WORD>
<WORD coords="1210,2030,1316,1993,2021">simple</WORD>
<WORD coords="1338,2021,1450,1994,2021">Data—</WORD>
<WORD coords="1451,2030,1670,1993,2021">Acquisition—</WORD>
<WORD coords="1674,2022,1795,1994,2021">Device.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2072,270,2043,2072">//</WORD>
<WORD coords="295,2072,359,2043,2071">Our</WORD>
<WORD coords="369,2079,450,2043,2071">DAQ</WORD>
<WORD coords="463,2072,566,2043,2071">device</WORD>
<WORD coords="578,2071,634,2043,2071">has</WORD>
<WORD coords="649,2080,719,2043,2071">only</WORD>
<WORD coords="741,2072,799,2053,2071">one</WORD>
<WORD coords="826,2080,1045,2043,2072">configuration</WORD>
<WORD coords="1080,2072,1148,2043,2071">with</WORD>
<WORD coords="1171,2072,1228,2053,2071">one</WORD>
<WORD coords="1252,2080,1349,2043,2071">single</WORD>
<WORD coords="1387,2080,1532,2043,2072">interface</WORD>
<WORD coords="1548,2072,1553,2067,2072">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2121,270,2092,2121">//</WORD>
<WORD coords="291,2121,440,2092,2120">Numbers</WORD>
<WORD coords="453,2129,490,2092,2124">of</WORD>
<WORD coords="509,2129,746,2092,2121">configurations</WORD>
<WORD coords="763,2125,769,2116,2125">,</WORD>
<WORD coords="810,2129,970,2092,2121">interfaces</WORD>
<WORD coords="987,2125,993,2116,2125">,</WORD>
<WORD coords="1030,2121,1178,2092,2120">alternate</WORD>
<WORD coords="1219,2129,1344,2093,2120">settings</WORD>
<WORD coords="1376,2121,1439,2092,2120">and</WORD>
<WORD coords="1454,2129,1614,2092,2120">endpoints</WORD>
<WORD coords="1646,2121,1722,2097,2120">start</WORD>
<WORD coords="1752,2121,1820,2092,2120">with</WORD>
<WORD coords="1846,2125,1872,2092,2122">0,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2171,270,2142,2171">//</WORD>
<WORD coords="303,2179,522,2142,2171">configuration</WORD>
<WORD coords="554,2170,574,2142,2170">0</WORD>
<WORD coords="602,2171,748,2142,2170">indicates</WORD>
<WORD coords="783,2179,1000,2142,2172">unconfigured</WORD>
<WORD coords="1025,2177,1221,2142,2170">(addressed)</WORD>
<WORD coords="1253,2175,1348,2147,2170">state,</WORD>
<WORD coords="1376,2171,1439,2142,2170">and</WORD>
<WORD coords="1453,2179,1598,2142,2170">endpoint</WORD>
<WORD coords="1619,2170,1639,2142,2170">0</WORD>
<WORD coords="1662,2171,1687,2143,2170">is</WORD>
<WORD coords="1716,2170,1763,2142,2170">the</WORD>
<WORD coords="1794,2171,1910,2142,2170">control</WORD>
<WORD coords="1939,2179,2095,2142,2170">endpoint.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2221,270,2192,2221">//</WORD>
<WORD coords="295,2221,359,2192,2220">Our</WORD>
<WORD coords="372,2221,475,2192,2220">device</WORD>
<WORD coords="500,2221,551,2202,2220">use</WORD>
<WORD coords="579,2221,696,2192,2220">control</WORD>
<WORD coords="724,2229,869,2192,2220">endpoint</WORD>
<WORD coords="891,2220,911,2192,2220">0</WORD>
<WORD coords="928,2221,990,2192,2220">and</WORD>
<WORD coords="1003,2221,1074,2192,2220">data</WORD>
<WORD coords="1099,2229,1259,2192,2220">endpoints</WORD>
<WORD coords="1287,2225,1312,2192,2223">1,</WORD>
<WORD coords="1338,2220,1357,2192,2220">2</WORD>
<WORD coords="1376,2221,1439,2192,2220">and</WORD>
<WORD coords="1451,2220,1469,2192,2220">3</WORD>
<WORD coords="1491,2229,1529,2192,2225">of</WORD>
<WORD coords="1556,2229,1700,2192,2221">interface</WORD>
<WORD coords="1734,2220,1760,2192,2220">0.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2271,270,2242,2271">//</WORD>
<WORD coords="295,2271,477,2242,2270">Commands</WORD>
<WORD coords="490,2271,541,2252,2270">are</WORD>
<WORD coords="554,2271,630,2242,2270">send</WORD>
<WORD coords="642,2271,670,2247,2270">to</WORD>
<WORD coords="685,2271,743,2252,2270">our</WORD>
<WORD coords="763,2271,866,2242,2270">device</WORD>
<WORD coords="891,2279,928,2242,2270">by</WORD>
<WORD coords="948,2271,1090,2242,2270">vendor—</WORD>
<WORD coords="1095,2279,1229,2247,2270">requests</WORD>
<WORD coords="1248,2279,1335,2243,2270">using</WORD>
<WORD coords="1360,2279,1504,2242,2270">endpoint</WORD>
<WORD coords="1529,2270,1554,2242,2270">0.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2321,270,2292,2321">//</WORD>
<WORD coords="292,2329,444,2292,2320">Endpoint</WORD>
<WORD coords="462,2320,477,2292,2320">1</WORD>
<WORD coords="504,2321,529,2293,2320">is</WORD>
<WORD coords="560,2329,735,2292,2322">configured</WORD>
<WORD coords="760,2321,795,2302,2321">as</WORD>
<WORD coords="815,2320,920,2292,2320">Bulk—</WORD>
<WORD coords="923,2321,994,2293,2320">IN—</WORD>
<WORD coords="998,2329,1143,2292,2320">endpoint</WORD>
<WORD coords="1154,2321,1216,2292,2320">and</WORD>
<WORD coords="1227,2321,1302,2292,2320">used</WORD>
<WORD coords="1314,2320,1342,2298,2320">to</WORD>
<WORD coords="1368,2329,1498,2292,2321">transfer</WORD>
<WORD coords="1533,2321,1628,2297,2320">status</WORD>
<WORD coords="1662,2329,1853,2292,2320">information</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2370,270,2341,2372">//</WORD>
<WORD coords="286,2378,367,2341,2371">from</WORD>
<WORD coords="389,2370,492,2341,2369">device</WORD>
<WORD coords="520,2370,549,2346,2370">to</WORD>
<WORD coords="577,2369,624,2341,2369">the</WORD>
<WORD coords="650,2369,732,2341,2369">host.</WORD>
<WORD coords="762,2370,926,2341,2369">Whenever</WORD>
<WORD coords="935,2369,984,2341,2369">the</WORD>
<WORD coords="1005,2370,1074,2341,2369">host</WORD>
<WORD coords="1107,2370,1177,2342,2369">tries</WORD>
<WORD coords="1212,2370,1240,2346,2369">to</WORD>
<WORD coords="1265,2370,1339,2341,2369">read</WORD>
<WORD coords="1358,2370,1429,2341,2369">data</WORD>
<WORD coords="1444,2378,1525,2341,2371">from</WORD>
<WORD coords="1544,2378,1642,2347,2369">empty</WORD>
<WORD coords="1658,2378,1803,2341,2369">endpoint</WORD>
<WORD coords="1829,2374,1853,2341,2371">1,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2420,270,2391,2420">//</WORD>
<WORD coords="293,2420,311,2401,2420">a</WORD>
<WORD coords="328,2420,438,2391,2419">NAK—</WORD>
<WORD coords="443,2428,589,2392,2419">interrupt</WORD>
<WORD coords="602,2419,626,2392,2419">is</WORD>
<WORD coords="648,2428,825,2391,2419">generated,</WORD>
<WORD coords="854,2427,981,2392,2419">causing</WORD>
<WORD coords="996,2427,1149,2391,2421">firmware</WORD>
<WORD coords="1174,2420,1203,2396,2420">to</WORD>
<WORD coords="1232,2420,1314,2392,2419">write</WORD>
<WORD coords="1346,2420,1441,2396,2419">status</WORD>
<WORD coords="1475,2428,1667,2391,2419">information</WORD>
<WORD coords="1697,2420,1726,2396,2419">to</WORD>
<WORD coords="1758,2419,1815,2391,2419">this</WORD>
<WORD coords="1843,2428,1891,2401,2420">ep.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="292,2478,444,2441,2469">Endpoint</WORD>
<WORD coords="460,2469,479,2441,2469">2</WORD>
<WORD coords="504,2470,529,2442,2469">is</WORD>
<WORD coords="560,2478,736,2441,2471">configured</WORD>
<WORD coords="760,2470,795,2451,2469">as</WORD>
<WORD coords="815,2469,920,2441,2469">Bulk—</WORD>
<WORD coords="923,2470,994,2442,2469">IN—</WORD>
<WORD coords="997,2478,1150,2441,2469">Endpoint</WORD>
<WORD coords="1160,2470,1223,2441,2469">and</WORD>
<WORD coords="1234,2470,1308,2441,2470">used</WORD>
<WORD coords="1321,2470,1349,2446,2469">to</WORD>
<WORD coords="1362,2470,1439,2441,2469">send</WORD>
<WORD coords="1450,2477,1561,2441,2469">DAQ—</WORD>
<WORD coords="1565,2470,1636,2441,2469">data</WORD>
<WORD coords="1651,2470,1679,2446,2469">to</WORD>
<WORD coords="1693,2470,1741,2441,2469">the</WORD>
<WORD coords="1754,2470,1823,2441,2469">host</WORD>
<WORD coords="1829,2470,1834,2465,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2520,269,2491,2520">//</WORD>
<WORD coords="292,2527,373,2491,2519">DAQ</WORD>
<WORD coords="385,2528,542,2492,2519">operation</WORD>
<WORD coords="565,2520,655,2496,2519">starts</WORD>
<WORD coords="685,2520,769,2491,2519">when</WORD>
<WORD coords="784,2520,852,2491,2519">host</WORD>
<WORD coords="872,2520,963,2491,2519">sends</WORD>
<WORD coords="984,2519,1002,2501,2519">a</WORD>
<WORD coords="1022,2520,1136,2491,2519">vendor</WORD>
<WORD coords="1158,2528,1277,2496,2519">request</WORD>
<WORD coords="1287,2520,1292,2515,2520">.</WORD>
<WORD coords="1327,2520,1503,2491,2519">Controlled</WORD>
<WORD coords="1526,2528,1563,2491,2519">by</WORD>
<WORD coords="1582,2520,1600,2501,2520">a</WORD>
<WORD coords="1627,2528,1830,2491,2519">periodically</WORD>
</LINE>
<LINE>
<WORD coords="241,2570,270,2541,2570">//</WORD>
<WORD coords="301,2570,452,2541,2569">activated</WORD>
<WORD coords="483,2569,570,2542,2569">timer</WORD>
<WORD coords="603,2578,749,2542,2569">interrupt</WORD>
<WORD coords="763,2574,769,2565,2574">,</WORD>
<WORD coords="797,2578,858,2541,2569">daq</WORD>
<WORD coords="871,2570,943,2541,2569">data</WORD>
<WORD coords="971,2569,996,2542,2569">is</WORD>
<WORD coords="1020,2578,1075,2547,2569">put</WORD>
<WORD coords="1100,2570,1128,2546,2569">to</WORD>
<WORD coords="1156,2570,1203,2541,2569">the</WORD>
<WORD coords="1227,2570,1319,2541,2569">FIFO</WORD>
<WORD coords="1332,2578,1369,2541,2573">of</WORD>
<WORD coords="1378,2578,1523,2541,2569">endpoint</WORD>
<WORD coords="1547,2570,1573,2541,2569">2.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,270,2590,2619">//</WORD>
<WORD coords="292,2627,444,2590,2618">Endpoint</WORD>
<WORD coords="461,2618,479,2590,2618">3</WORD>
<WORD coords="504,2619,529,2591,2618">is</WORD>
<WORD coords="560,2626,735,2590,2620">configured</WORD>
<WORD coords="760,2619,795,2600,2619">as</WORD>
<WORD coords="815,2619,920,2590,2618">Bulk—</WORD>
<WORD coords="925,2619,1035,2590,2618">OUT—</WORD>
<WORD coords="1038,2627,1191,2590,2618">Endpoint</WORD>
<WORD coords="1202,2619,1265,2590,2618">and</WORD>
<WORD coords="1276,2619,1351,2590,2618">used</WORD>
<WORD coords="1362,2619,1392,2596,2618">to</WORD>
<WORD coords="1404,2619,1480,2590,2618">send</WORD>
<WORD coords="1490,2618,1508,2600,2618">a</WORD>
<WORD coords="1521,2627,1618,2590,2618">single</WORD>
<WORD coords="1640,2627,1707,2590,2618">byte</WORD>
<WORD coords="1724,2627,1806,2590,2620">from</WORD>
<WORD coords="1828,2619,1875,2590,2618">the</WORD>
</LINE>
<LINE>
<WORD coords="241,2669,270,2640,2669">//</WORD>
<WORD coords="296,2668,364,2640,2668">host</WORD>
<WORD coords="390,2668,418,2645,2668">to</WORD>
<WORD coords="446,2668,493,2640,2668">the</WORD>
<WORD coords="520,2669,623,2640,2668">device</WORD>
<WORD coords="633,2669,638,2664,2669">.</WORD>
<WORD coords="670,2668,737,2640,2668">This</WORD>
<WORD coords="763,2677,829,2640,2668">byte</WORD>
<WORD coords="859,2669,920,2645,2668">sets</WORD>
<WORD coords="950,2668,998,2640,2668">the</WORD>
<WORD coords="1020,2677,1091,2641,2668">pins</WORD>
<WORD coords="1117,2677,1155,2640,2673">of</WORD>
<WORD coords="1182,2677,1289,2640,2668">digital</WORD>
<WORD coords="1319,2677,1392,2646,2668">port</WORD>
<WORD coords="1413,2668,1437,2641,2668">B</WORD>
<WORD coords="1453,2677,1491,2640,2672">of</WORD>
<WORD coords="1507,2669,1564,2650,2668">our</WORD>
<WORD coords="1579,2669,1751,2640,2668">AT90USB.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2769,270,2740,2769">//</WORD>
<WORD coords="295,2768,331,2741,2768">To</WORD>
<WORD coords="349,2777,422,2740,2768">keep</WORD>
<WORD coords="450,2768,472,2741,2768">it</WORD>
<WORD coords="500,2777,623,2740,2768">simple:</WORD>
<WORD coords="650,2777,727,2740,2768">Only</WORD>
<WORD coords="741,2769,799,2750,2768">one</WORD>
<WORD coords="826,2777,1068,2740,2769">configuration,</WORD>
<WORD coords="1098,2777,1168,2740,2768">only</WORD>
<WORD coords="1189,2769,1247,2750,2768">one</WORD>
<WORD coords="1275,2777,1441,2740,2769">interface.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2819,270,2790,2819">//</WORD>
<WORD coords="292,2818,374,2790,2818">EP1:</WORD>
<WORD coords="387,2819,493,2790,2818">Bulk—</WORD>
<WORD coords="496,2822,543,2791,2819">IN,</WORD>
<WORD coords="559,2818,578,2790,2818">8</WORD>
<WORD coords="596,2827,679,2790,2818">bytes</WORD>
<WORD coords="704,2822,803,2790,2818">FIFO,</WORD>
<WORD coords="819,2819,877,2800,2818">one</WORD>
<WORD coords="891,2818,977,2790,2818">bank.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2869,270,2840,2869">//</WORD>
<WORD coords="292,2868,374,2840,2868">EP2:</WORD>
<WORD coords="387,2868,493,2840,2868">Bulk—</WORD>
<WORD coords="496,2873,543,2841,2869">IN,</WORD>
<WORD coords="559,2868,599,2840,2868">64</WORD>
<WORD coords="615,2877,698,2840,2868">bytes</WORD>
<WORD coords="722,2873,822,2840,2868">FIFO,</WORD>
<WORD coords="838,2869,910,2840,2868">dual</WORD>
<WORD coords="928,2868,1015,2840,2868">bank.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2918,270,2889,2918">//</WORD>
<WORD coords="292,2917,374,2889,2917">EP3:</WORD>
<WORD coords="387,2917,492,2889,2917">Bulk—</WORD>
<WORD coords="498,2922,585,2889,2917">OUT,</WORD>
<WORD coords="601,2917,621,2889,2917">8</WORD>
<WORD coords="632,2926,715,2889,2917">bytes</WORD>
<WORD coords="727,2921,827,2889,2917">FIFO,</WORD>
<WORD coords="843,2918,900,2899,2917">one</WORD>
<WORD coords="913,2917,999,2889,2917">bank.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,3018,328,2991,3017">const</WORD>
<WORD coords="359,3018,441,2989,3017">uint8</WORD>
<WORD coords="459,3018,469,2994,3018">t</WORD>
<WORD coords="501,3026,1206,2989,3017">USBJnterfaces[USBJVlaxConfigurations]</WORD>
<WORD coords="1221,3012,1242,3001,3019">=</WORD>
<WORD coords="1257,3027,1303,2986,3021">{1,</WORD>
<WORD coords="1323,3020,1351,2989,3019">0,</WORD>
<WORD coords="1379,3020,1407,2989,3019">0,</WORD>
<WORD coords="1434,3027,1483,2986,3022">0};</WORD>
<WORD coords="1511,3018,1541,2989,3018">//</WORD>
<WORD coords="1563,3017,1690,2989,3017">number</WORD>
<WORD coords="1700,3026,1738,2989,3022">of</WORD>
<WORD coords="1762,3026,1923,2989,3018">interfaces</WORD>
<WORD coords="1959,3017,1986,2990,3017">in</WORD>
<WORD coords="2011,3018,2086,2989,3017">each</WORD>
<WORD coords="2115,3026,2334,2989,3018">configuration</WORD>
</LINE>
<LINE>
<WORD coords="237,3068,328,3041,3067">const</WORD>
<WORD coords="359,3068,441,3039,3067">uint8</WORD>
<WORD coords="459,3068,469,3044,3068">t</WORD>
<WORD coords="498,3068,575,3039,3067">USB</WORD>
<WORD coords="581,3074,964,3039,3067">JMaxPower_2mA[USB</WORD>
<WORD coords="970,3076,1315,3038,3067">JVIaxConfigurations]</WORD>
<WORD coords="1330,3062,1351,3051,3070">=</WORD>
<WORD coords="1365,3078,1433,3036,3072">{50,</WORD>
<WORD coords="1446,3073,1474,3039,3071">0,</WORD>
<WORD coords="1488,3073,1516,3039,3071">0,</WORD>
<WORD coords="1529,3078,1579,3036,3073">0};</WORD>
<WORD coords="1589,3076,1730,3039,3067">//power</WORD>
<WORD coords="1740,3076,1951,3040,3068">consumption</WORD>
<WORD coords="1963,3076,2001,3039,3072">of</WORD>
<WORD coords="2011,3068,2087,3038,3068">each</WORD>
<WORD coords="2115,3076,2334,3039,3068">configuration</WORD>
<WORD coords="2379,3067,2394,3037,3067">2</WORD>
</LINE>
<LINE>
<WORD coords="323,3118,353,3090,3118">in</WORD>
<WORD coords="375,3118,449,3089,3117">2mA</WORD>
<WORD coords="464,3118,541,3090,3117">units</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0013.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0014.djvu" width="2481">
<PARAM name="PAGE" value="sources_0014.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2418,104,132">15</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,278,328,251,277">const</WORD>
<WORD coords="358,278,469,249,277">uint8_t</WORD>
<WORD coords="499,286,1587,249,277">USB_AltSettings[USB_MaxConfigurations][USB_MaxInterfaces]</WORD>
<WORD coords="1603,272,1624,261,272">=</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,337,456,296,333">{{1,</WORD>
<WORD coords="483,330,510,299,329">0,</WORD>
<WORD coords="539,330,566,299,329">0,</WORD>
<WORD coords="594,337,642,296,331">0},</WORD>
<WORD coords="670,328,700,299,328">//</WORD>
<WORD coords="722,327,850,299,327">number</WORD>
<WORD coords="860,336,897,299,331">of</WORD>
<WORD coords="914,328,959,299,327">alt</WORD>
<WORD coords="969,328,974,323,328">.</WORD>
<WORD coords="1014,336,1139,300,327">settings</WORD>
<WORD coords="1173,336,1211,299,332">of</WORD>
<WORD coords="1239,336,1400,299,328">interfaces</WORD>
<WORD coords="1435,336,1473,299,332">of</WORD>
<WORD coords="1496,336,1567,299,330">first</WORD>
<WORD coords="1610,336,1830,299,328">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,387,455,346,381">{0,</WORD>
<WORD coords="483,380,510,349,379">0,</WORD>
<WORD coords="539,380,566,349,379">0,</WORD>
<WORD coords="594,387,642,346,381">0},</WORD>
<WORD coords="670,378,700,349,378">//</WORD>
<WORD coords="722,377,849,349,377">number</WORD>
<WORD coords="860,386,897,349,382">of</WORD>
<WORD coords="915,378,959,349,377">alt</WORD>
<WORD coords="969,378,974,373,378">.</WORD>
<WORD coords="1014,386,1139,350,377">settings</WORD>
<WORD coords="1173,386,1211,349,381">of</WORD>
<WORD coords="1239,386,1400,349,378">interfaces</WORD>
<WORD coords="1435,386,1473,349,382">of</WORD>
<WORD coords="1488,378,1604,349,377">second</WORD>
<WORD coords="1629,386,1848,349,378">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,437,423,396,437">{</WORD>
<WORD coords="428,428,447,399,428">0</WORD>
<WORD coords="449,430,455,423,430">,</WORD>
<WORD coords="483,428,502,399,428">0</WORD>
<WORD coords="504,430,510,423,430">,</WORD>
<WORD coords="539,428,558,399,428">0</WORD>
<WORD coords="560,430,566,423,430">,</WORD>
<WORD coords="594,428,613,399,428">0</WORD>
<WORD coords="616,437,642,396,433">},</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,486,423,445,486">{</WORD>
<WORD coords="428,477,447,448,477">0</WORD>
<WORD coords="449,479,455,472,479">,</WORD>
<WORD coords="483,477,502,448,477">0</WORD>
<WORD coords="504,479,510,472,479">,</WORD>
<WORD coords="539,477,558,448,477">0</WORD>
<WORD coords="560,479,566,472,479">,</WORD>
<WORD coords="592,477,611,448,477">0</WORD>
<WORD coords="615,486,662,445,483">}};</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,527,328,500,526">const</WORD>
<WORD coords="358,527,469,498,526">uint8_t</WORD>
<WORD coords="498,535,1566,498,526">USB_Endpoints[USB_MaxConfigurations][USB_MaxInterfaces]</WORD>
<WORD coords="1582,521,1603,510,521">=</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,586,456,545,581">{{3,</WORD>
<WORD coords="483,579,510,548,578">0,</WORD>
<WORD coords="539,579,566,548,578">0,</WORD>
<WORD coords="594,586,642,545,580">0},</WORD>
<WORD coords="670,577,700,548,577">//</WORD>
<WORD coords="722,576,849,548,576">number</WORD>
<WORD coords="860,585,897,548,580">of</WORD>
<WORD coords="913,585,1072,548,576">endpoints</WORD>
<WORD coords="1099,585,1136,548,581">of</WORD>
<WORD coords="1165,585,1325,548,577">interfaces</WORD>
<WORD coords="1360,585,1398,548,580">of</WORD>
<WORD coords="1421,584,1492,548,579">first</WORD>
<WORD coords="1536,585,1755,548,577">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,636,455,595,630">{0,</WORD>
<WORD coords="483,629,510,598,628">0,</WORD>
<WORD coords="539,629,566,598,628">0,</WORD>
<WORD coords="594,636,642,595,630">0},</WORD>
<WORD coords="670,627,700,598,627">//</WORD>
<WORD coords="722,626,849,598,626">number</WORD>
<WORD coords="860,635,897,598,630">of</WORD>
<WORD coords="913,635,1072,598,626">endpoints</WORD>
<WORD coords="1099,635,1136,598,630">of</WORD>
<WORD coords="1165,635,1325,598,627">interfaces</WORD>
<WORD coords="1360,635,1398,598,631">of</WORD>
<WORD coords="1414,627,1528,598,626">second</WORD>
<WORD coords="1554,635,1774,598,627">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,686,423,645,686">{</WORD>
<WORD coords="428,677,447,648,677">0</WORD>
<WORD coords="449,679,455,672,679">,</WORD>
<WORD coords="483,677,502,648,677">0</WORD>
<WORD coords="504,679,510,672,679">,</WORD>
<WORD coords="539,677,558,648,677">0</WORD>
<WORD coords="560,679,566,672,679">,</WORD>
<WORD coords="594,677,613,648,677">0</WORD>
<WORD coords="616,686,642,645,682">},</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="409,736,455,695,730">{0,</WORD>
<WORD coords="483,729,510,698,728">0,</WORD>
<WORD coords="539,729,566,698,728">0,</WORD>
<WORD coords="592,736,662,695,732">0}};</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,826,339,797,825">static</WORD>
<WORD coords="367,826,441,797,825">void</WORD>
<WORD coords="461,834,1144,797,825">UsbDevDisableAndFreeEndpoint(uint8_t</WORD>
<WORD coords="1158,832,1184,797,825">i)</WORD>
<WORD coords="1195,831,1201,806,0">;</WORD>
</LINE>
<LINE>
<WORD coords="246,876,339,847,875">static</WORD>
<WORD coords="367,876,441,847,875">void</WORD>
<WORD coords="461,884,1073,847,875">UsbDevSetUnconfiguredState(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,976,310,947,975">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1025,264,996,1024">U</WORD>
<WORD coords="268,1033,746,996,1024">sbGetDeviceDescriptor(USB</WORD>
<WORD coords="752,1033,1056,996,1024">_DeviceDescriptor</WORD>
<WORD coords="1069,1028,1119,996,1024">*d)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1084,253,1043,1084">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1124,323,1096,1124">d—</WORD>
<WORD coords="330,1133,496,1096,1124">&gt;bLength</WORD>
<WORD coords="508,1119,529,1108,1122">=</WORD>
<WORD coords="543,1133,1055,1096,1124">USB_DeviceDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,1174,323,1146,1174">d—</WORD>
<WORD coords="330,1183,635,1146,1174">&gt;bDescriptorType</WORD>
<WORD coords="648,1169,669,1158,1172">=</WORD>
<WORD coords="681,1175,730,1146,1175">US</WORD>
<WORD coords="738,1174,759,1147,1174">B</WORD>
<WORD coords="777,1183,1159,1145,1174">DeviceDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="274,1224,292,1196,1224">d</WORD>
<WORD coords="298,1214,323,1213,1220">-</WORD>
<WORD coords="330,1226,495,1196,1224">&gt;bcdUSB</WORD>
<WORD coords="510,1219,531,1208,1222">=</WORD>
<WORD coords="545,1225,621,1196,1224">USB</WORD>
<WORD coords="627,1233,717,1196,1224">_Spec</WORD>
<WORD coords="725,1224,771,1196,1225">1_1</WORD>
<WORD coords="779,1230,785,1205,0">;</WORD>
</LINE>
<LINE>
<WORD coords="274,1273,323,1245,1273">d—</WORD>
<WORD coords="330,1275,583,1245,1273">&gt;bDeviceClass</WORD>
<WORD coords="597,1268,618,1257,1271">=</WORD>
<WORD coords="632,1278,963,1245,1273">UsbNoDeviceClass;</WORD>
</LINE>
<LINE>
<WORD coords="274,1323,323,1295,1323">d—</WORD>
<WORD coords="330,1325,648,1295,1323">&gt;bDeviceSubClass</WORD>
<WORD coords="662,1318,683,1307,1321">=</WORD>
<WORD coords="696,1328,1092,1295,1323">UsbNoDeviceSubClass;</WORD>
</LINE>
<LINE>
<WORD coords="274,1373,323,1345,1373">d—</WORD>
<WORD coords="330,1375,646,1345,1373">&gt;bDeviceProtocoll</WORD>
<WORD coords="659,1368,680,1357,1371">=</WORD>
<WORD coords="694,1376,1089,1345,1373">UsbNoDeviceProtokoll;</WORD>
</LINE>
<LINE>
<WORD coords="274,1423,323,1395,1423">d—</WORD>
<WORD coords="330,1425,656,1395,1423">&gt;bMaxPacketSizeO</WORD>
<WORD coords="668,1418,689,1407,1420">=</WORD>
<WORD coords="704,1424,770,1395,1423">EP0</WORD>
<WORD coords="786,1424,874,1395,1423">FIFO</WORD>
<WORD coords="892,1429,971,1395,1423">Size;</WORD>
</LINE>
<LINE>
<WORD coords="274,1473,323,1445,1473">d—</WORD>
<WORD coords="330,1475,511,1445,1473">&gt;idVendor</WORD>
<WORD coords="522,1468,543,1457,1470">=</WORD>
<WORD coords="556,1482,881,1445,1473">MyUSBJVendorlD;</WORD>
</LINE>
<LINE>
<WORD coords="274,1523,323,1495,1523">d—</WORD>
<WORD coords="330,1525,518,1495,1523">&gt;idProduct</WORD>
<WORD coords="531,1518,552,1507,1520">=</WORD>
<WORD coords="565,1532,899,1495,1523">MyUSB_ProductID;</WORD>
</LINE>
<LINE>
<WORD coords="274,1572,323,1544,1572">d—</WORD>
<WORD coords="330,1574,533,1544,1572">&gt;bcdDevice</WORD>
<WORD coords="546,1567,567,1556,1569">=</WORD>
<WORD coords="580,1581,943,1544,1572">MyUSB_DeviceBCD;</WORD>
</LINE>
<LINE>
<WORD coords="274,1622,323,1594,1622">d—</WORD>
<WORD coords="330,1624,596,1594,1622">&gt;iManufacturer</WORD>
<WORD coords="607,1617,628,1606,1620">=</WORD>
<WORD coords="642,1631,1165,1594,1622">USB_ManufacturerStringIndex;</WORD>
</LINE>
<LINE>
<WORD coords="274,1672,323,1644,1672">d—</WORD>
<WORD coords="330,1674,498,1644,1672">&gt;iProduct</WORD>
<WORD coords="510,1667,531,1656,1670">=</WORD>
<WORD coords="545,1681,972,1644,1672">USB_ProductStringIndex;</WORD>
</LINE>
<LINE>
<WORD coords="274,1722,323,1694,1722">d—</WORD>
<WORD coords="330,1724,603,1694,1722">&gt;iSerialNumber</WORD>
<WORD coords="614,1717,635,1706,1720">=</WORD>
<WORD coords="650,1723,725,1694,1722">USB</WORD>
<WORD coords="745,1723,764,1694,1723">S</WORD>
<WORD coords="767,1723,976,1693,1722">erialNumber</WORD>
<WORD coords="978,1723,997,1694,1723">S</WORD>
<WORD coords="1000,1731,1170,1694,1722">tringlndex</WORD>
<WORD coords="1174,1728,1180,1703,0">;</WORD>
</LINE>
<LINE>
<WORD coords="274,1772,323,1744,1772">d—</WORD>
<WORD coords="330,1781,707,1744,1772">&gt;bNumConfigurations</WORD>
<WORD coords="720,1767,741,1756,1770">=</WORD>
<WORD coords="754,1781,1188,1744,1772">USB_NumConfigurations;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1831,253,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1921,308,1893,1921">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="242,1980,1299,1943,1971">UsbGetConfigurationDescriptor(USB_ConfigurationDescriptor</WORD>
<WORD coords="1322,1976,1370,1952,1972">*c,</WORD>
<WORD coords="1405,1972,1486,1943,1971">uint8</WORD>
<WORD coords="1505,1971,1515,1949,1971">t</WORD>
<WORD coords="1545,1978,1726,1943,1971">conflndex)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2031,253,1990,2031">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="283,2072,394,2043,2071">uint8_t</WORD>
<WORD coords="427,2076,454,2043,2071">i;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2120,307,2092,2120">if</WORD>
<WORD coords="334,2126,515,2092,2120">(conflndex</WORD>
<WORD coords="538,2122,589,2097,2119">&gt;=</WORD>
<WORD coords="603,2129,1038,2092,2120">USB_NumConfigurations)</WORD>
<WORD coords="1051,2121,1163,2094,2120">return</WORD>
<WORD coords="1176,2126,1262,2092,2120">false;</WORD>
</LINE>
<LINE>
<WORD coords="274,2170,321,2151,2170">c—</WORD>
<WORD coords="328,2179,494,2142,2170">&gt;bLength</WORD>
<WORD coords="506,2165,527,2154,2168">=</WORD>
<WORD coords="541,2179,1167,2142,2170">USB_ConfigurationDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,2220,321,2201,2220">c—</WORD>
<WORD coords="328,2229,633,2192,2220">&gt;bDescriptorType</WORD>
<WORD coords="646,2215,667,2204,2218">=</WORD>
<WORD coords="679,2229,1271,2192,2220">USB_ConfigurationDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="274,2270,321,2251,2270">c—</WORD>
<WORD coords="328,2279,587,2242,2270">&gt;wTotalLength</WORD>
<WORD coords="600,2265,621,2254,2268">=</WORD>
<WORD coords="634,2279,1260,2242,2270">USB_ConfigurationDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="278,2320,287,2292,2320">i</WORD>
<WORD coords="311,2315,332,2304,2318">=</WORD>
<WORD coords="351,2321,606,2292,2320">USBJnterfaces</WORD>
<WORD coords="616,2327,825,2292,2320">[conflndex];</WORD>
</LINE>
<LINE>
<WORD coords="274,2369,289,2350,2369">c</WORD>
<WORD coords="296,2359,321,2358,2365">—</WORD>
<WORD coords="328,2371,621,2341,2369">&gt;bNumInterfaces</WORD>
<WORD coords="635,2364,656,2353,2366">=</WORD>
<WORD coords="668,2375,688,2341,2369">i;</WORD>
</LINE>
<LINE>
<WORD coords="274,2420,366,2391,2419">while</WORD>
<WORD coords="390,2425,400,2391,2419">(</WORD>
<WORD coords="408,2419,417,2391,2419">i</WORD>
<WORD coords="427,2409,484,2408,2415">—</WORD>
<WORD coords="501,2426,573,2391,2422">&gt;0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,2469,358,2450,2469">c—</WORD>
<WORD coords="365,2478,625,2441,2469">&gt;wTotalLength</WORD>
<WORD coords="637,2469,681,2448,2468">+=</WORD>
<WORD coords="695,2472,785,2441,2469">(USB</WORD>
<WORD coords="791,2478,2358,2441,2469">JnterfaceDescriptorLength+USB_EndpointDescriptorLength*USB_Endpoints[confIndex][i])*</WORD>
<WORD coords="2375,2469,2390,2441,2469">)</WORD>
</LINE>
<LINE>
<WORD coords="394,2520,472,2491,2519">USB</WORD>
<WORD coords="491,2528,919,2491,2519">A]tSettings[confTndex][i];</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2569,289,2550,2569">c</WORD>
<WORD coords="296,2559,321,2558,2565">—</WORD>
<WORD coords="328,2578,607,2541,2569">&gt;bConfiguration</WORD>
<WORD coords="610,2569,701,2541,2569">Value</WORD>
<WORD coords="714,2564,735,2553,2567">=</WORD>
<WORD coords="747,2578,1334,2541,2569">UsbConfigurationValue(conflndex)</WORD>
<WORD coords="1344,2574,1350,2550,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2618,321,2599,2618">c—</WORD>
<WORD coords="328,2627,598,2590,2618">&gt;iConfiguration</WORD>
<WORD coords="610,2613,631,2602,2616">=</WORD>
<WORD coords="649,2627,1071,2590,2618">UsbNoDescriptionString;</WORD>
<WORD coords="1100,2619,1191,2590,2618">//no</WORD>
<WORD coords="1218,2619,1328,2590,2618">textual</WORD>
<WORD coords="1367,2627,1587,2590,2619">configuration</WORD>
<WORD coords="1628,2627,1811,2590,2618">description</WORD>
</LINE>
<LINE>
<WORD coords="274,2668,321,2649,2668">c—</WORD>
<WORD coords="328,2670,572,2640,2668">&gt;bmAttributes</WORD>
<WORD coords="586,2663,607,2652,2666">=</WORD>
<WORD coords="621,2671,1118,2640,2668">UsbConfDesAttrBusPowered;</WORD>
<WORD coords="1129,2669,1158,2640,2669">//</WORD>
<WORD coords="1165,2668,1250,2640,2668">bus—</WORD>
<WORD coords="1250,2677,1401,2640,2668">powered,</WORD>
<WORD coords="1416,2669,1455,2650,2668">no</WORD>
<WORD coords="1469,2668,1580,2645,2668">remote</WORD>
<WORD coords="1592,2677,1716,2640,2668">wakeup</WORD>
</LINE>
<LINE>
<WORD coords="274,2718,289,2699,2718">c</WORD>
<WORD coords="296,2708,321,2707,2714">—</WORD>
<WORD coords="328,2720,538,2690,2718">&gt;MaxPower</WORD>
<WORD coords="549,2713,570,2702,2716">=</WORD>
<WORD coords="586,2719,632,2690,2719">US</WORD>
<WORD coords="639,2719,924,2690,2718">B_MaxPower_2m</WORD>
<WORD coords="928,2718,953,2691,2718">A</WORD>
<WORD coords="960,2725,1161,2690,2718">[conflndex];</WORD>
</LINE>
<LINE>
<WORD coords="274,2768,386,2742,2768">return</WORD>
<WORD coords="410,2768,472,2745,2768">true</WORD>
<WORD coords="485,2774,491,2749,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2828,253,2787,2828">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,308,2889,2917">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,2976,694,2939,2967">UsbGetlnterfaceDescriptor</WORD>
<WORD coords="707,2973,717,2939,2968">(</WORD>
<WORD coords="729,2976,1145,2939,2967">USBJnterfaceDescriptor</WORD>
<WORD coords="1173,2970,1219,2939,2967">*i,</WORD>
<WORD coords="1255,2968,1365,2939,2967">uint8_t</WORD>
<WORD coords="1395,2972,1574,2939,2967">conflndex,</WORD>
<WORD coords="1610,2968,1720,2939,2967">uint8_t</WORD>
<WORD coords="1756,2967,1892,2939,2967">intlndex</WORD>
<WORD coords="1904,2973,1910,2963,2973">,</WORD>
<WORD coords="1946,2968,2056,2939,2967">uint8_t</WORD>
<WORD coords="2101,2976,2256,2939,2967">altSetting</WORD>
<WORD coords="2275,2974,2286,2939,2974">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,3027,253,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,3067,307,3039,3067">if</WORD>
<WORD coords="336,3068,360,3040,3068">((</WORD>
<WORD coords="368,3067,532,3039,3067">conflndex</WORD>
<WORD coords="539,3069,668,3039,3067">&gt;=USB</WORD>
<WORD coords="685,3079,1338,3035,3067">NumConfigurations)||(intIndex&gt;=USB</WORD>
<WORD coords="1360,3067,1517,3039,3067">Interfaces</WORD>
<WORD coords="1523,3074,1616,3039,3067">[cont&apos;I</WORD>
<WORD coords="1623,3077,1736,3038,3067">ndex])|</WORD>
<WORD coords="1754,3068,1761,3043,3068">(</WORD>
<WORD coords="1783,3076,1940,3039,3067">altSetting</WORD>
<WORD coords="1960,3068,2088,3039,3067">;&gt;=USB</WORD>
<WORD coords="2108,3076,2304,3039,3067">AltSettings[</WORD>
<WORD coords="2320,3067,2335,3037,3067">)</WORD>
</LINE>
<LINE>
<WORD coords="357,3124,534,3089,3117">conflndex]</WORD>
<WORD coords="541,3124,691,3089,3117">[intlndex</WORD>
<WORD coords="702,3124,726,3089,3124">])</WORD>
<WORD coords="736,3124,747,3089,3124">)</WORD>
<WORD coords="771,3118,883,3091,3117">return</WORD>
<WORD coords="909,3123,1007,3089,3117">false;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0014.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0015.djvu" width="2481">
<PARAM name="PAGE" value="sources_0015.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2419,104,132">16</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="278,277,287,249,277">i</WORD>
<WORD coords="296,267,321,266,273">—</WORD>
<WORD coords="328,286,494,249,277">&gt;bLength</WORD>
<WORD coords="506,272,527,261,275">=</WORD>
<WORD coords="541,286,1083,249,277">USBJnterfaceDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="278,327,287,299,327">i</WORD>
<WORD coords="295,317,321,316,323">—</WORD>
<WORD coords="328,336,633,299,327">&gt;bDescriptorType</WORD>
<WORD coords="646,322,667,311,325">=</WORD>
<WORD coords="679,328,756,299,327">USB</WORD>
<WORD coords="762,336,1187,299,327">JnterfaceDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="278,377,287,349,377">i</WORD>
<WORD coords="296,367,321,366,373">—</WORD>
<WORD coords="328,379,660,349,377">&gt;bInterfaceNumber</WORD>
<WORD coords="672,372,693,361,374">=</WORD>
<WORD coords="706,382,851,349,377">intlndex;</WORD>
</LINE>
<LINE>
<WORD coords="278,427,287,399,427">i</WORD>
<WORD coords="295,417,321,416,423">—</WORD>
<WORD coords="328,436,647,399,427">&gt;bAlternateSetting</WORD>
<WORD coords="666,422,687,411,424">=</WORD>
<WORD coords="719,436,874,399,427">altSetting</WORD>
<WORD coords="896,430,902,408,430">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,476,287,448,476">i</WORD>
<WORD coords="295,466,321,465,472">—</WORD>
<WORD coords="328,485,626,448,476">&gt;bNumEndpoints</WORD>
<WORD coords="640,471,661,460,474">=</WORD>
<WORD coords="675,485,1306,448,476">USB_Endpoints[confIndex][intIndex];</WORD>
</LINE>
<LINE>
<WORD coords="278,526,287,498,526">i</WORD>
<WORD coords="295,516,321,515,522">—</WORD>
<WORD coords="328,528,613,498,526">&gt;bInterfaceClass</WORD>
<WORD coords="629,521,650,510,524">=</WORD>
<WORD coords="668,531,1033,498,526">UsbNoInterfaceClass;</WORD>
</LINE>
<LINE>
<WORD coords="278,576,287,548,576">i</WORD>
<WORD coords="295,567,321,564,572">—</WORD>
<WORD coords="328,578,678,548,576">&gt;bInterfaceSubClass</WORD>
<WORD coords="690,571,711,560,574">=</WORD>
<WORD coords="725,581,1151,548,576">UsbNoInterfaceSubClass;</WORD>
</LINE>
<LINE>
<WORD coords="278,626,287,598,626">i</WORD>
<WORD coords="295,616,321,615,622">—</WORD>
<WORD coords="328,628,664,598,626">&gt;bInterfaceProtocol</WORD>
<WORD coords="685,621,706,610,624">=</WORD>
<WORD coords="729,627,1144,598,626">UsbNoInterfaceProtokoll</WORD>
<WORD coords="1158,632,1164,607,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,676,287,648,676">i</WORD>
<WORD coords="295,666,321,665,672">—</WORD>
<WORD coords="328,678,514,648,676">&gt;ilnterface</WORD>
<WORD coords="536,671,557,660,674">=</WORD>
<WORD coords="574,685,996,648,676">UsbNoDescriptionString;</WORD>
<WORD coords="1025,677,1055,648,677">//</WORD>
<WORD coords="1077,677,1116,658,676">no</WORD>
<WORD coords="1144,677,1253,648,676">textual</WORD>
<WORD coords="1294,685,1438,648,677">interface</WORD>
<WORD coords="1479,685,1662,648,676">description</WORD>
</LINE>
<LINE>
<WORD coords="274,727,386,700,726">return</WORD>
<WORD coords="410,726,472,703,726">true</WORD>
<WORD coords="485,732,491,707,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,785,253,744,785">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,876,270,847,876">//</WORD>
<WORD coords="291,876,352,848,875">Not</WORD>
<WORD coords="368,876,443,847,875">used</WORD>
<WORD coords="458,884,513,847,878">for</WORD>
<WORD coords="535,879,612,847,875">EPO,</WORD>
<WORD coords="629,876,663,857,876">so</WORD>
<WORD coords="686,875,701,847,876">1</WORD>
<WORD coords="725,877,778,853,874">&lt;=</WORD>
<WORD coords="793,876,944,846,875">endlndex</WORD>
<WORD coords="958,877,1010,853,875">&lt;=</WORD>
<WORD coords="1028,876,1099,847,875">USB</WORD>
<WORD coords="1116,884,1361,847,875">NumEndpoints</WORD>
<WORD coords="1376,877,1429,853,874">&lt;=</WORD>
<WORD coords="1444,875,1463,847,875">6</WORD>
</LINE>
<LINE>
<WORD coords="236,925,308,897,925">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,984,782,947,975">UsbGetEndpointDescriptor(USB</WORD>
<WORD coords="788,984,1127,947,975">JEndpointDescriptor</WORD>
<WORD coords="1140,978,1185,956,975">*e,</WORD>
<WORD coords="1218,976,1328,947,975">uint8_t</WORD>
<WORD coords="1358,980,1537,947,975">conflndex,</WORD>
<WORD coords="1571,976,1684,946,975">uint8_t</WORD>
<WORD coords="1718,981,1873,947,975">intlndex,</WORD>
<WORD coords="1908,976,2019,947,975">uint8_t</WORD>
<WORD coords="2063,984,2219,947,975">altSetting</WORD>
<WORD coords="2241,978,2247,971,978">,</WORD>
<WORD coords="2286,975,2301,947,975">)</WORD>
</LINE>
<LINE>
<WORD coords="328,1025,439,996,1024">uint8_t</WORD>
<WORD coords="469,1031,634,996,1024">endlndex)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1084,253,1043,1084">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1124,307,1095,1124">if</WORD>
<WORD coords="336,1134,1764,1093,1124">((conflndex&gt;=USB_NumConfigurations)||(intIndex&gt;=USB_Interfaces[confIndex])||(</WORD>
<WORD coords="1783,1133,1940,1096,1124">altSetting</WORD>
<WORD coords="1958,1133,2304,1096,1124">&gt;=USB_AltSettings[</WORD>
<WORD coords="2320,1124,2335,1094,1124">)</WORD>
</LINE>
<LINE>
<WORD coords="357,1181,534,1146,1174">conflndex]</WORD>
<WORD coords="541,1181,691,1146,1174">[intlndex</WORD>
<WORD coords="702,1181,726,1146,1182">])</WORD>
<WORD coords="745,1184,758,1143,1184">||</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="352,1233,1008,1196,1224">(endIndex&gt;USBJEndpoints[conf!ndex]</WORD>
<WORD coords="1016,1231,1204,1196,1224">[intlndex]))</WORD>
<WORD coords="1227,1224,1339,1198,1224">return</WORD>
<WORD coords="1365,1224,1441,1196,1224">false</WORD>
<WORD coords="1456,1230,1462,1205,1230">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1274,308,1245,1274">//</WORD>
<WORD coords="330,1282,526,1250,1273">components</WORD>
<WORD coords="550,1274,692,1245,1273">identical</WORD>
<WORD coords="719,1282,774,1245,1276">for</WORD>
<WORD coords="803,1273,846,1245,1273">all</WORD>
<WORD coords="874,1282,912,1245,1278">of</WORD>
<WORD coords="928,1274,985,1255,1273">our</WORD>
<WORD coords="1006,1282,1165,1245,1273">endpoints</WORD>
</LINE>
<LINE>
<WORD coords="274,1323,321,1304,1323">e—</WORD>
<WORD coords="328,1332,494,1295,1323">&gt;bLength</WORD>
<WORD coords="506,1318,527,1307,1321">=</WORD>
<WORD coords="541,1332,1089,1295,1323">USB_EndpointDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,1373,321,1354,1373">e—</WORD>
<WORD coords="328,1382,633,1345,1373">&gt;bDescriptorType</WORD>
<WORD coords="646,1368,667,1357,1371">=</WORD>
<WORD coords="679,1382,1193,1345,1373">USB_EndpointDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="274,1423,321,1404,1423">e—</WORD>
<WORD coords="328,1425,572,1395,1423">&gt;bmAttributes</WORD>
<WORD coords="586,1418,607,1407,1421">=</WORD>
<WORD coords="622,1424,697,1395,1423">USB</WORD>
<WORD coords="714,1429,943,1394,1423">BulkTransfer;</WORD>
</LINE>
<LINE>
<WORD coords="274,1473,321,1454,1473">e—</WORD>
<WORD coords="328,1475,504,1445,1473">&gt;blnterval</WORD>
<WORD coords="517,1468,538,1457,1471">=</WORD>
<WORD coords="557,1478,586,1445,1476">0;</WORD>
<WORD coords="614,1474,644,1445,1474">//</WORD>
<WORD coords="668,1473,739,1445,1473">bulk</WORD>
<WORD coords="762,1482,918,1445,1473">endpoint,</WORD>
<WORD coords="947,1474,985,1455,1473">no</WORD>
<WORD coords="1006,1482,1124,1445,1473">polling</WORD>
</LINE>
<LINE>
<WORD coords="278,1524,308,1495,1524">//</WORD>
<WORD coords="330,1532,526,1500,1523">components</WORD>
<WORD coords="539,1524,635,1495,1523">which</WORD>
<WORD coords="659,1532,748,1495,1526">differ</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1573,385,1543,1572">switch</WORD>
<WORD coords="408,1579,589,1544,1572">(endlndex)</WORD>
<WORD coords="614,1573,644,1544,1573">//</WORD>
<WORD coords="668,1581,738,1544,1572">only</WORD>
<WORD coords="763,1581,922,1544,1572">endpoints</WORD>
<WORD coords="943,1581,999,1544,1575">for</WORD>
<WORD coords="1033,1581,1177,1544,1573">interface</WORD>
<WORD coords="1208,1572,1228,1544,1572">0</WORD>
<WORD coords="1249,1572,1277,1545,1572">in</WORD>
<WORD coords="1301,1573,1359,1554,1572">our</WORD>
<WORD coords="1384,1581,1570,1544,1572">application</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,290,1591,1632">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1673,383,1652,1672">case</WORD>
<WORD coords="411,1673,435,1644,1672">1:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1722,395,1703,1722">e—</WORD>
<WORD coords="402,1731,603,1694,1722">&gt;bEndpoint</WORD>
<WORD coords="605,1722,739,1694,1722">Address</WORD>
<WORD coords="751,1717,772,1706,1720">=</WORD>
<WORD coords="785,1731,1211,1694,1722">UsblnEndpointAdress(l);</WORD>
</LINE>
<LINE>
<WORD coords="349,1772,395,1753,1772">e—</WORD>
<WORD coords="402,1774,717,1744,1772">&gt;wMaxPacketSize</WORD>
<WORD coords="730,1767,751,1756,1769">=</WORD>
<WORD coords="763,1776,1032,1744,1772">EPl_FIFO_Size;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1824,422,1793,1821">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1872,383,1851,1871">case</WORD>
<WORD coords="407,1872,435,1843,1871">2:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1921,395,1902,1921">e—</WORD>
<WORD coords="402,1930,603,1893,1921">&gt;bEndpoint</WORD>
<WORD coords="605,1922,739,1893,1921">Address</WORD>
<WORD coords="751,1916,772,1905,1919">=</WORD>
<WORD coords="786,1930,1211,1893,1921">UsblnEndpointAdress(2);</WORD>
</LINE>
<LINE>
<WORD coords="349,1971,395,1952,1971">e—</WORD>
<WORD coords="402,1973,717,1943,1971">&gt;wMaxPacketSize</WORD>
<WORD coords="730,1966,751,1955,1968">=</WORD>
<WORD coords="762,1971,831,1943,1971">EP2</WORD>
<WORD coords="847,1972,935,1943,1971">FIFO</WORD>
<WORD coords="953,1974,1032,1943,1971">Size;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2024,422,1993,2021">break;</WORD>
</LINE>
<LINE>
<WORD coords="312,2072,383,2051,2071">case</WORD>
<WORD coords="408,2072,435,2043,2071">3;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2120,395,2101,2120">e—</WORD>
<WORD coords="402,2129,603,2092,2120">&gt;bEndpoint</WORD>
<WORD coords="605,2121,739,2092,2120">Address</WORD>
<WORD coords="751,2115,772,2104,2118">=</WORD>
<WORD coords="786,2129,1238,2092,2120">UsbOutEndpointAdress(3);</WORD>
</LINE>
<LINE>
<WORD coords="349,2170,395,2151,2170">e—</WORD>
<WORD coords="402,2172,717,2142,2170">&gt;wMaxPacketSize</WORD>
<WORD coords="730,2165,751,2154,2167">=</WORD>
<WORD coords="763,2174,1032,2142,2170">EP3_FIFO_Size;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2223,422,2192,2220">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2280,290,2239,2280">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2320,386,2294,2320">return</WORD>
<WORD coords="410,2320,472,2297,2320">true</WORD>
<WORD coords="485,2326,491,2301,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2379,253,2338,2379">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2470,310,2441,2469">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2528,746,2491,2519">UsbGetStringDescriptor(char</WORD>
<WORD coords="762,2519,775,2500,2519">s</WORD>
<WORD coords="789,2526,822,2491,2525">[],</WORD>
<WORD coords="864,2520,945,2491,2519">uint8</WORD>
<WORD coords="963,2520,974,2496,2520">t</WORD>
<WORD coords="1003,2526,1109,2491,2519">index)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2579,253,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,2619,394,2590,2618">uint8_t</WORD>
<WORD coords="427,2623,454,2590,2618">i;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2668,289,2639,2668">#if</WORD>
<WORD coords="315,2677,894,2640,2668">(USB_MaxStringDescriptorLength</WORD>
<WORD coords="909,2670,935,2646,2670">&lt;</WORD>
<WORD coords="953,2675,1002,2640,2670">18)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2719,350,2689,2718">#error</WORD>
<WORD coords="368,2727,932,2690,2718">USB_MaxStringDescriptorLength</WORD>
<WORD coords="944,2718,994,2695,2718">too</WORD>
<WORD coords="1008,2718,1108,2690,2718">small!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2768,349,2739,2768">#endif</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,2818,287,2790,2818">i</WORD>
<WORD coords="311,2813,332,2802,2816">=</WORD>
<WORD coords="350,2827,923,2790,2818">USBJdaxStringDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,2869,366,2840,2868">while</WORD>
<WORD coords="390,2874,417,2840,2868">(i</WORD>
<WORD coords="427,2858,484,2857,2875">—</WORD>
<WORD coords="488,2878,718,2837,2868">)*s++=’\0’;</WORD>
</LINE>
<LINE>
<WORD coords="276,2918,289,2898,2918">s</WORD>
<WORD coords="314,2908,339,2906,2910">—</WORD>
<WORD coords="344,2912,365,2901,2918">=</WORD>
<WORD coords="378,2918,455,2889,2917">USB</WORD>
<WORD coords="460,2926,952,2889,2917">JVlaxStringDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="276,2968,288,2948,2968">s</WORD>
<WORD coords="300,2974,340,2939,2972">[1]</WORD>
<WORD coords="367,2962,388,2951,2965">=</WORD>
<WORD coords="405,2976,868,2939,2967">USB_StringDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="274,3018,385,2988,3017">switch</WORD>
<WORD coords="408,3024,530,2989,3017">(index)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3077,290,3036,3077">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,3117,383,3097,3117">case</WORD>
<WORD coords="406,3126,940,3089,3117">USB_LanguageDescriptorIndex:</WORD>
<WORD coords="955,3118,985,3089,3118">//</WORD>
<WORD coords="1006,3112,1054,3101,3113">==</WORD>
<WORD coords="1069,3117,1089,3089,3117">0</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0015.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0016.djvu" width="2481">
<PARAM name="PAGE" value="sources_0016.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,132,2419,104,132">17</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="351,277,363,258,277">s</WORD>
<WORD coords="374,284,415,249,282">[0]</WORD>
<WORD coords="442,272,463,261,274">=</WORD>
<WORD coords="482,282,511,249,279">4;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,328,364,308,328">s</WORD>
<WORD coords="374,334,415,299,332">[2]</WORD>
<WORD coords="442,322,463,311,324">=</WORD>
<WORD coords="482,330,511,299,329">9;</WORD>
<WORD coords="540,328,569,299,328">//</WORD>
<WORD coords="593,328,649,304,327">two</WORD>
<WORD coords="669,335,736,299,327">byte</WORD>
<WORD coords="761,336,911,299,327">language</WORD>
<WORD coords="928,332,1014,299,327">code,</WORD>
<WORD coords="1042,336,1112,299,327">only</WORD>
<WORD coords="1135,336,1262,305,327">support</WORD>
<WORD coords="1280,336,1335,299,330">for</WORD>
<WORD coords="1358,336,1484,299,327">English</WORD>
</LINE>
<LINE>
<WORD coords="351,377,363,358,377">s</WORD>
<WORD coords="374,384,415,349,382">[3]</WORD>
<WORD coords="442,372,463,361,374">=</WORD>
<WORD coords="482,382,511,349,379">4;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,433,460,399,427">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,477,383,456,476">case</WORD>
<WORD coords="405,477,482,448,476">USB</WORD>
<WORD coords="488,485,928,448,476">_ManufacturerStringIndex:</WORD>
</LINE>
<LINE>
<WORD coords="351,527,364,507,527">s</WORD>
<WORD coords="373,533,414,498,531">[2]</WORD>
<WORD coords="442,521,463,510,521">=</WORD>
<WORD coords="485,532,547,498,527">’S’;</WORD>
</LINE>
<LINE>
<WORD coords="351,577,364,557,577">s</WORD>
<WORD coords="374,583,415,548,581">[4]</WORD>
<WORD coords="442,571,463,560,571">=</WORD>
<WORD coords="485,579,550,548,576">’A’;</WORD>
</LINE>
<LINE>
<WORD coords="351,627,363,607,627">s</WORD>
<WORD coords="373,633,414,598,631">[6]</WORD>
<WORD coords="442,621,463,610,621">=</WORD>
<WORD coords="484,632,548,598,626">’L’;</WORD>
</LINE>
<LINE>
<WORD coords="351,677,364,657,677">s</WORD>
<WORD coords="374,683,415,648,681">[8]</WORD>
<WORD coords="442,671,463,660,671">=</WORD>
<WORD coords="484,682,548,648,676">’E’;</WORD>
</LINE>
<LINE>
<WORD coords="351,727,364,707,727">s</WORD>
<WORD coords="373,733,435,698,730">[10]</WORD>
<WORD coords="461,721,482,710,721">=</WORD>
<WORD coords="503,732,578,698,727">’W’;</WORD>
</LINE>
<LINE>
<WORD coords="351,775,363,756,775">s</WORD>
<WORD coords="373,782,434,747,779">[12]</WORD>
<WORD coords="461,770,482,759,770">=</WORD>
<WORD coords="503,781,566,747,776">’S’;</WORD>
</LINE>
<LINE>
<WORD coords="351,825,363,806,825">s</WORD>
<WORD coords="373,832,434,797,829">[14]</WORD>
<WORD coords="461,820,482,809,820">=</WORD>
<WORD coords="503,831,569,797,825">’K’;</WORD>
</LINE>
<LINE>
<WORD coords="351,875,363,856,875">s</WORD>
<WORD coords="373,882,434,847,879">[16]</WORD>
<WORD coords="461,870,482,859,870">=</WORD>
<WORD coords="503,881,566,847,875">’I’;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,925,363,906,925">s</WORD>
<WORD coords="374,932,415,897,930">[0]</WORD>
<WORD coords="442,920,463,909,922">=</WORD>
<WORD coords="486,928,531,897,926">18;</WORD>
<WORD coords="558,926,588,897,926">//</WORD>
<WORD coords="615,934,715,897,925">length</WORD>
<WORD coords="744,934,781,897,930">of</WORD>
<WORD coords="805,934,976,897,925">descriptor</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,981,460,947,975">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1025,383,1004,1024">case</WORD>
<WORD coords="406,1033,832,996,1024">USB_ProductStringIndex:</WORD>
</LINE>
<LINE>
<WORD coords="351,1075,364,1055,1075">s</WORD>
<WORD coords="373,1081,414,1046,1079">[2]</WORD>
<WORD coords="442,1069,463,1058,1069">=</WORD>
<WORD coords="485,1077,550,1046,1074">’A’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1131,415,1096,1125">s[4]</WORD>
<WORD coords="442,1119,463,1108,1119">=</WORD>
<WORD coords="484,1130,548,1096,1124">’T’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1175,364,1155,1175">s</WORD>
<WORD coords="374,1181,415,1146,1179">[6]</WORD>
<WORD coords="442,1169,463,1158,1169">=</WORD>
<WORD coords="485,1180,547,1146,1166">’9’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1225,364,1205,1225">s</WORD>
<WORD coords="374,1231,415,1196,1229">[8]</WORD>
<WORD coords="442,1219,463,1208,1219">=</WORD>
<WORD coords="485,1230,547,1196,1225">’O’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1273,363,1254,1273">s</WORD>
<WORD coords="373,1280,434,1245,1277">[10]</WORD>
<WORD coords="461,1268,482,1257,1268">=</WORD>
<WORD coords="503,1279,569,1245,1274">’U’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1323,363,1304,1323">s</WORD>
<WORD coords="373,1330,434,1295,1327">[12]</WORD>
<WORD coords="461,1318,482,1307,1318">=</WORD>
<WORD coords="503,1329,566,1295,1324">’S’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1373,363,1354,1373">s</WORD>
<WORD coords="373,1380,434,1345,1377">[14]</WORD>
<WORD coords="461,1368,482,1357,1368">=</WORD>
<WORD coords="503,1379,568,1345,1373">’B’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1423,364,1404,1423">s</WORD>
<WORD coords="374,1430,415,1395,1428">[0]</WORD>
<WORD coords="442,1418,463,1407,1420">=</WORD>
<WORD coords="486,1426,531,1395,1424">16;</WORD>
</LINE>
<LINE>
<WORD coords="349,1479,460,1445,1473">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1524,383,1503,1523">case</WORD>
<WORD coords="405,1524,454,1495,1524">US</WORD>
<WORD coords="458,1523,482,1496,1523">B</WORD>
<WORD coords="488,1524,520,1495,1524">_S</WORD>
<WORD coords="524,1523,625,1495,1523">erialN</WORD>
<WORD coords="627,1524,752,1495,1523">umberS</WORD>
<WORD coords="756,1532,927,1495,1523">tringlndex</WORD>
<WORD coords="931,1524,936,1504,0">:</WORD>
</LINE>
<LINE>
<WORD coords="351,1573,364,1553,1573">s</WORD>
<WORD coords="373,1579,414,1544,1577">[2]</WORD>
<WORD coords="442,1567,463,1556,1567">=</WORD>
<WORD coords="485,1578,547,1544,1573">’O’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1623,364,1603,1623">s</WORD>
<WORD coords="374,1629,415,1594,1627">[4]</WORD>
<WORD coords="442,1617,463,1606,1617">=</WORD>
<WORD coords="485,1628,547,1594,1623">’O’;</WORD>
</LINE>
<LINE>
<WORD coords="351,1679,415,1644,1673">s[6]</WORD>
<WORD coords="442,1667,463,1656,1667">=</WORD>
<WORD coords="484,1654,490,1644,1663">’</WORD>
<WORD coords="502,1672,528,1644,1668">1’</WORD>
<WORD coords="541,1678,547,1653,0">;</WORD>
</LINE>
<LINE>
<WORD coords="351,1723,364,1703,1723">s</WORD>
<WORD coords="374,1729,415,1694,1727">[0]</WORD>
<WORD coords="442,1717,463,1706,1720">=</WORD>
<WORD coords="484,1725,511,1694,1724">8;</WORD>
</LINE>
<LINE>
<WORD coords="349,1778,460,1744,1772">break;</WORD>
</LINE>
<LINE>
<WORD coords="315,1822,437,1792,1821">default</WORD>
<WORD coords="448,1821,453,1802,0">:</WORD>
</LINE>
<LINE>
<WORD coords="351,1878,415,1843,1872">s[2]</WORD>
<WORD coords="442,1866,463,1855,1866">=</WORD>
<WORD coords="484,1872,527,1843,1863">’?’</WORD>
<WORD coords="541,1877,547,1852,0">;</WORD>
</LINE>
<LINE>
<WORD coords="351,1921,363,1902,1921">s</WORD>
<WORD coords="374,1928,415,1893,1926">[0]</WORD>
<WORD coords="442,1916,463,1905,1918">=</WORD>
<WORD coords="482,1926,511,1893,1923">4;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1981,290,1940,1981">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2031,253,1990,2031">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2121,339,2092,2120">static</WORD>
<WORD coords="367,2121,441,2092,2120">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2171,265,2142,2170">U</WORD>
<WORD coords="268,2171,496,2142,2170">sbDevDisable</WORD>
<WORD coords="499,2179,807,2142,2170">AndFreeEndpointl</WORD>
<WORD coords="810,2171,891,2142,2170">uint8</WORD>
<WORD coords="897,2171,920,2147,2170">_t</WORD>
<WORD coords="934,2170,943,2142,2170">i</WORD>
<WORD coords="949,2177,960,2142,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2230,253,2189,2230">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2279,700,2242,2270">UsbDevSelectEndpoint(i)</WORD>
<WORD coords="709,2275,715,2251,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2321,302,2292,2321">U</WORD>
<WORD coords="305,2329,713,2292,2320">sbDevDisableEndpoint()</WORD>
<WORD coords="718,2325,724,2301,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2378,830,2340,2369">UsbDevClearEndpointAllocBit();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2429,253,2388,2429">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2520,339,2491,2519">static</WORD>
<WORD coords="367,2520,441,2491,2519">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2578,837,2540,2569">UsbDevSetUnconfiguredState(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2628,253,2587,2628">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,2669,394,2640,2668">uint8_t</WORD>
<WORD coords="427,2673,454,2640,2668">i;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2719,583,2690,2718">UsbDevConfValue</WORD>
<WORD coords="597,2713,618,2702,2716">=</WORD>
<WORD coords="632,2727,1017,2690,2718">UsbUnconfiguredState;</WORD>
</LINE>
<LINE>
<WORD coords="278,2768,287,2740,2768">i</WORD>
<WORD coords="311,2763,332,2752,2766">=</WORD>
<WORD coords="367,2777,867,2740,2768">UsbNumEndpointsAT90USB;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2819,366,2790,2818">while</WORD>
<WORD coords="387,2825,398,2790,2817">(</WORD>
<WORD coords="464,2818,473,2790,2818">i</WORD>
<WORD coords="489,2820,515,2796,2820">&gt;</WORD>
<WORD coords="529,2825,561,2790,2823">0)</WORD>
<WORD coords="578,2819,607,2790,2821">//</WORD>
<WORD coords="628,2826,695,2790,2820">free</WORD>
<WORD coords="728,2819,771,2790,2818">all</WORD>
<WORD coords="800,2827,960,2790,2818">endpoints</WORD>
<WORD coords="986,2818,1038,2790,2818">but</WORD>
<WORD coords="1058,2818,1129,2790,2818">EP0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2869,339,2840,2869">U</WORD>
<WORD coords="342,2869,571,2840,2868">sbDevDisable</WORD>
<WORD coords="573,2877,907,2840,2868">AndFreeEndpoint(i)</WORD>
<WORD coords="912,2873,918,2849,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2918,564,2889,2917">UsbAllocatedEPs</WORD>
<WORD coords="577,2912,598,2901,2914">=</WORD>
<WORD coords="617,2922,642,2889,2919">1;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2977,253,2936,2977">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,3068,270,3039,3068">//</WORD>
<WORD coords="290,3067,315,3039,3067">A</WORD>
<WORD coords="333,3068,436,3039,3067">device</WORD>
<WORD coords="461,3068,517,3049,3067">can</WORD>
<WORD coords="536,3068,612,3039,3067">have</WORD>
<WORD coords="636,3076,769,3039,3067">multiple</WORD>
<WORD coords="808,3076,1045,3039,3068">configurations</WORD>
<WORD coords="1063,3068,1068,3063,3068">.</WORD>
<WORD coords="1096,3067,1128,3040,3067">In</WORD>
<WORD coords="1156,3068,1203,3039,3067">the</WORD>
<WORD coords="1233,3076,1369,3039,3067">simplest</WORD>
<WORD coords="1395,3068,1467,3049,3068">case</WORD>
<WORD coords="1499,3076,1736,3039,3068">configurations</WORD>
<WORD coords="1768,3076,1836,3049,3067">may</WORD>
<WORD coords="1857,3076,1946,3039,3070">differ</WORD>
<WORD coords="1976,3076,2046,3039,3067">only</WORD>
<WORD coords="2071,3068,2099,3040,3068">in</WORD>
<WORD coords="2120,3076,2227,3049,3067">power</WORD>
<WORD coords="2251,3067,2266,3037,3067">D</WORD>
</LINE>
<LINE>
<WORD coords="320,3126,537,3090,3117">consumption.</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0016.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0017.djvu" width="2481">
<PARAM name="PAGE" value="sources_0017.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1556,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2418,104,132">18</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="292,277,350,250,277">But</WORD>
<WORD coords="379,286,616,249,278">configurations</WORD>
<WORD coords="648,278,705,259,277">can</WORD>
<WORD coords="722,278,759,249,277">be</WORD>
<WORD coords="792,286,895,249,277">totally</WORD>
<WORD coords="943,286,1081,249,279">different</WORD>
<WORD coords="1118,284,1129,249,284">(</WORD>
<WORD coords="1145,286,1234,249,280">differ</WORD>
<WORD coords="1268,277,1295,250,277">in</WORD>
<WORD coords="1320,277,1447,249,277">number</WORD>
<WORD coords="1457,286,1495,249,281">of</WORD>
<WORD coords="1519,286,1703,249,278">interfaces,</WORD>
<WORD coords="1734,286,1908,249,277">endpoints,</WORD>
<WORD coords="1949,278,1975,273,278">...</WORD>
</LINE>
<LINE>
<WORD coords="236,327,308,299,327">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,386,666,349,377">UsbDevSetConfiguration(</WORD>
<WORD coords="678,378,759,349,377">uint8</WORD>
<WORD coords="778,377,788,355,377">t</WORD>
<WORD coords="816,384,848,349,377">c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,437,253,396,437">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,477,394,448,476">uint8_t</WORD>
<WORD coords="427,481,454,448,476">i;</WORD>
</LINE>
<LINE>
<WORD coords="274,527,385,498,526">switch</WORD>
<WORD coords="408,533,456,498,526">(c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,586,290,545,586">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,627,383,606,626">case</WORD>
<WORD coords="407,627,435,598,626">0:</WORD>
<WORD coords="465,627,495,598,629">//</WORD>
<WORD coords="516,635,556,608,626">go</WORD>
<WORD coords="573,627,650,598,626">back</WORD>
<WORD coords="670,626,698,604,626">to</WORD>
<WORD coords="727,635,943,598,627">unconfigured</WORD>
<WORD coords="969,633,980,598,626">(</WORD>
<WORD coords="985,627,1152,598,626">addressed</WORD>
<WORD coords="1156,631,1165,598,631">)</WORD>
<WORD coords="1197,627,1273,603,626">state</WORD>
</LINE>
<LINE>
<WORD coords="349,677,376,648,677">U</WORD>
<WORD coords="380,685,873,648,676">sbDevSetUnconfiguredState()</WORD>
<WORD coords="879,681,885,657,0">;</WORD>
</LINE>
<LINE>
<WORD coords="349,727,461,700,726">return</WORD>
<WORD coords="485,726,547,703,726">true</WORD>
<WORD coords="560,732,566,707,732">;</WORD>
</LINE>
<LINE>
<WORD coords="349,781,460,747,775">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,826,383,805,825">case</WORD>
<WORD coords="411,826,435,797,825">1:</WORD>
<WORD coords="465,826,495,797,826">//</WORD>
<WORD coords="522,826,567,802,826">set</WORD>
<WORD coords="602,834,821,797,826">configuration</WORD>
<WORD coords="854,825,869,797,825">1</WORD>
</LINE>
<LINE>
<WORD coords="354,875,381,846,875">if</WORD>
<WORD coords="408,881,734,847,875">(UsbDevConfValue</WORD>
<WORD coords="751,875,781,847,873">!=</WORD>
<WORD coords="794,882,823,847,875">c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,935,365,894,935">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,975,399,947,975">i</WORD>
<WORD coords="424,970,445,959,973">=</WORD>
<WORD coords="461,980,804,947,975">USB_MaxInterfaces;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1024,478,996,1024">while</WORD>
<WORD coords="502,1030,529,996,1024">(i</WORD>
<WORD coords="613,1031,685,996,1028">&gt;0)</WORD>
<WORD coords="707,1033,1066,996,1024">AltSettingOflnterface</WORD>
<WORD coords="1083,1031,1126,996,1024">[i]</WORD>
<WORD coords="1152,1019,1173,1008,1022">=</WORD>
<WORD coords="1193,1033,1633,996,1024">UsblnterfaceUnconfigured</WORD>
<WORD coords="1643,1030,1649,1005,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1084,365,1043,1084">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1125,401,1095,1124">for</WORD>
<WORD coords="427,1130,455,1096,1124">(i</WORD>
<WORD coords="480,1119,501,1108,1122">=</WORD>
<WORD coords="519,1127,548,1096,1126">0;</WORD>
<WORD coords="577,1124,587,1096,1124">i</WORD>
<WORD coords="613,1126,639,1101,1126">&lt;</WORD>
<WORD coords="653,1131,975,1096,1124">USB_Interfaces[c—</WORD>
<WORD coords="983,1131,1021,1096,1130">1];</WORD>
<WORD coords="1044,1131,1116,1096,1124">i++)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1184,365,1143,1184">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,1224,419,1196,1224">if</WORD>
<WORD coords="448,1230,470,1196,1226">(!</WORD>
<WORD coords="481,1229,864,1196,1224">UsbDevSetInterface(c,</WORD>
<WORD coords="894,1224,903,1196,1224">i</WORD>
<WORD coords="933,1230,939,1220,1230">,</WORD>
<WORD coords="967,1231,1016,1196,1229">0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1283,402,1242,1283">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1332,948,1295,1323">UsbDevSetUnconfiguredState()</WORD>
<WORD coords="954,1328,960,1304,0">;</WORD>
</LINE>
<LINE>
<WORD coords="424,1373,535,1347,1373">return</WORD>
<WORD coords="562,1373,638,1345,1373">false</WORD>
<WORD coords="653,1379,659,1354,1379">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1433,402,1392,1433">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1483,365,1442,1483">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,1524,658,1495,1523">UsbDevConfValue</WORD>
<WORD coords="672,1518,693,1507,1520">=</WORD>
<WORD coords="706,1528,732,1504,1523">c;</WORD>
</LINE>
<LINE>
<WORD coords="349,1573,461,1546,1572">return</WORD>
<WORD coords="485,1572,547,1549,1572">true</WORD>
<WORD coords="560,1578,566,1553,1578">;</WORD>
</LINE>
<LINE>
<WORD coords="349,1628,460,1594,1622">break;</WORD>
</LINE>
<LINE>
<WORD coords="315,1672,437,1644,1672">default</WORD>
<WORD coords="448,1672,453,1653,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1731,944,1694,1722">Debug(”UsbDevSetConfiguration():</WORD>
<WORD coords="976,1731,1196,1694,1722">configuration</WORD>
<WORD coords="1227,1723,1301,1694,1722">does</WORD>
<WORD coords="1322,1722,1373,1699,1722">not</WORD>
<WORD coords="1403,1722,1479,1694,1722">exist</WORD>
<WORD coords="1494,1732,1631,1691,1722">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="349,1773,461,1746,1772">return</WORD>
<WORD coords="487,1772,563,1744,1772">false</WORD>
<WORD coords="579,1777,585,1753,1777">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1831,290,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1881,253,1840,1881">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1972,270,1943,1972">//</WORD>
<WORD coords="295,1980,435,1943,1971">Multiple</WORD>
<WORD coords="473,1980,634,1943,1972">interfaces</WORD>
<WORD coords="666,1972,723,1953,1971">can</WORD>
<WORD coords="750,1972,825,1944,1972">exist</WORD>
<WORD coords="856,1971,887,1948,1971">at</WORD>
<WORD coords="913,1971,960,1943,1971">the</WORD>
<WORD coords="984,1972,1067,1953,1971">same</WORD>
<WORD coords="1081,1971,1166,1943,1971">time!</WORD>
<WORD coords="1191,1972,1284,1943,1971">These</WORD>
<WORD coords="1314,1980,1475,1943,1972">interfaces</WORD>
<WORD coords="1507,1972,1583,1943,1971">have</WORD>
<WORD coords="1604,1972,1632,1948,1972">to</WORD>
<WORD coords="1658,1972,1710,1953,1971">use</WORD>
<WORD coords="1746,1980,1884,1943,1973">different</WORD>
<WORD coords="1921,1980,2095,1943,1971">endpoints.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2022,270,1993,2022">//</WORD>
<WORD coords="292,2022,351,1994,2021">For</WORD>
<WORD coords="367,2030,503,1993,2021">example</WORD>
<WORD coords="528,2030,672,1993,2022">interface</WORD>
<WORD coords="706,2021,720,1993,2021">1</WORD>
<WORD coords="741,2022,797,2003,2021">can</WORD>
<WORD coords="817,2022,869,2003,2021">use</WORD>
<WORD coords="891,2030,946,1993,2021">epl</WORD>
<WORD coords="965,2022,1028,1993,2021">and</WORD>
<WORD coords="1040,2030,1107,1993,2021">ep2,</WORD>
<WORD coords="1133,2022,1196,1993,2021">and</WORD>
<WORD coords="1219,2030,1363,1993,2022">interface</WORD>
<WORD coords="1394,2021,1413,1993,2021">2</WORD>
<WORD coords="1432,2022,1488,2003,2021">can</WORD>
<WORD coords="1508,2022,1560,2003,2021">use</WORD>
<WORD coords="1582,2022,1665,2003,2021">some</WORD>
<WORD coords="1679,2030,1716,1993,2026">of</WORD>
<WORD coords="1735,2021,1782,1993,2021">the</WORD>
<WORD coords="1809,2022,1896,1993,2021">other</WORD>
<WORD coords="1921,2030,2081,1993,2021">endpoints</WORD>
<WORD coords="2108,2028,2119,1993,2022">(</WORD>
<WORD coords="2123,2030,2191,1993,2025">ep3,</WORD>
<WORD coords="2217,2030,2284,1993,2021">ep4,</WORD>
<WORD coords="2310,2030,2368,1993,2021">ep5</WORD>
<WORD coords="2383,2021,2398,1991,2021">D</WORD>
</LINE>
<LINE>
<WORD coords="321,2076,327,2067,2076">,</WORD>
<WORD coords="353,2080,437,2042,2072">ep6).</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2121,270,2092,2121">//</WORD>
<WORD coords="290,2120,315,2092,2120">A</WORD>
<WORD coords="337,2129,453,2092,2120">special</WORD>
<WORD coords="477,2129,614,2092,2120">problem</WORD>
<WORD coords="630,2121,738,2102,2120">occurs</WORD>
<WORD coords="753,2129,834,2092,2122">from</WORD>
<WORD coords="852,2121,946,2092,2120">FIFO</WORD>
<WORD coords="958,2129,1090,2102,2120">memory</WORD>
<WORD coords="1102,2129,1313,2098,2120">management</WORD>
<WORD coords="1324,2129,1362,2092,2124">of</WORD>
<WORD coords="1363,2121,1541,2092,2120">AT90USB:</WORD>
<WORD coords="1553,2129,1692,2093,2120">Memory</WORD>
<WORD coords="1697,2129,1752,2092,2123">for</WORD>
<WORD coords="1762,2121,1855,2092,2120">FIFO</WORD>
<WORD coords="1868,2120,1923,2092,2120">has</WORD>
<WORD coords="1937,2121,1965,2097,2120">to</WORD>
<WORD coords="1978,2120,2015,2092,2120">be</WORD>
<WORD coords="2028,2121,2182,2092,2120">allocated</WORD>
<WORD coords="2194,2121,2222,2093,2121">in</WORD>
<WORD coords="2234,2129,2370,2093,2120">growing</WORD>
<WORD coords="2385,2120,2400,2090,2120">D</WORD>
</LINE>
<LINE>
<WORD coords="334,2171,435,2142,2170">order.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2221,270,2192,2221">//</WORD>
<WORD coords="298,2228,330,2192,2224">If</WORD>
<WORD coords="350,2221,392,2202,2221">we</WORD>
<WORD coords="406,2221,458,2202,2220">use</WORD>
<WORD coords="486,2229,620,2192,2220">multiple</WORD>
<WORD coords="660,2229,821,2192,2221">interfaces</WORD>
<WORD coords="855,2221,924,2192,2220">with</WORD>
<WORD coords="953,2229,1087,2192,2220">multiple</WORD>
<WORD coords="1124,2221,1271,2192,2220">alternate</WORD>
<WORD coords="1313,2229,1437,2193,2220">settings</WORD>
<WORD coords="1475,2221,1556,2192,2220">there</WORD>
<WORD coords="1582,2229,1649,2202,2220">may</WORD>
<WORD coords="1661,2221,1756,2202,2220">occur</WORD>
<WORD coords="1768,2229,1901,2202,2220">memory</WORD>
<WORD coords="1921,2228,2057,2192,2221">conflicts</WORD>
<WORD coords="2086,2229,2271,2193,2220">concerning</WORD>
<WORD coords="2305,2220,2320,2190,2220">D</WORD>
</LINE>
<LINE>
<WORD coords="319,2271,412,2242,2270">FIFO</WORD>
<WORD coords="425,2279,568,2252,2270">memory:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2321,270,2292,2321">//</WORD>
<WORD coords="298,2328,330,2292,2324">If</WORD>
<WORD coords="350,2321,392,2302,2321">we</WORD>
<WORD coords="413,2321,544,2292,2320">allocate</WORD>
<WORD coords="573,2329,705,2302,2320">memory</WORD>
<WORD coords="710,2329,765,2292,2323">for</WORD>
<WORD coords="781,2329,925,2292,2320">endpoint</WORD>
<WORD coords="951,2325,974,2293,2320">i,</WORD>
<WORD coords="1008,2320,1089,2292,2320">there</WORD>
<WORD coords="1115,2329,1182,2302,2320">may</WORD>
<WORD coords="1194,2321,1231,2292,2320">be</WORD>
<WORD coords="1244,2321,1283,2302,2320">an</WORD>
<WORD coords="1304,2329,1427,2292,2320">overlap</WORD>
<WORD coords="1452,2321,1521,2292,2320">with</WORD>
<WORD coords="1543,2321,1637,2292,2320">FIFO</WORD>
<WORD coords="1649,2329,1687,2292,2324">of</WORD>
<WORD coords="1696,2329,1841,2292,2320">endpoint</WORD>
<WORD coords="1866,2320,1875,2293,2320">i</WORD>
<WORD coords="1883,2320,1905,2299,2320">+</WORD>
<WORD coords="1910,2320,1925,2292,2320">1</WORD>
<WORD coords="1940,2320,1976,2302,2320">or</WORD>
<WORD coords="1993,2329,2125,2302,2320">memory</WORD>
<WORD coords="2137,2329,2174,2292,2324">of</WORD>
<WORD coords="2182,2329,2326,2292,2320">endpoint</WORD>
<WORD coords="2352,2320,2361,2293,2320">i</WORD>
<WORD coords="2379,2320,2394,2290,2320">D</WORD>
</LINE>
<LINE>
<WORD coords="322,2369,364,2341,2369">+1</WORD>
<WORD coords="379,2377,447,2351,2369">may</WORD>
<WORD coords="462,2370,538,2341,2369">slide</WORD>
<WORD coords="548,2369,553,2365,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2420,270,2391,2420">//</WORD>
<WORD coords="296,2419,364,2391,2419">This</WORD>
<WORD coords="392,2420,417,2392,2419">is</WORD>
<WORD coords="442,2420,460,2401,2420">a</WORD>
<WORD coords="490,2420,582,2391,2419">result</WORD>
<WORD coords="613,2428,651,2391,2424">of</WORD>
<WORD coords="676,2420,805,2391,2419">internal</WORD>
<WORD coords="836,2428,941,2391,2419">design</WORD>
<WORD coords="968,2428,1006,2391,2424">of</WORD>
<WORD coords="1018,2423,1191,2391,2419">AT90USB,</WORD>
<WORD coords="1207,2420,1257,2401,2420">see</WORD>
<WORD coords="1274,2420,1387,2392,2419">section</WORD>
<WORD coords="1415,2419,1487,2391,2419">21.7</WORD>
<WORD coords="1510,2419,1538,2392,2419">in</WORD>
<WORD coords="1567,2420,1740,2391,2419">datasheet.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="292,2469,350,2442,2469">But</WORD>
<WORD coords="360,2478,442,2441,2471">from</WORD>
<WORD coords="464,2470,535,2441,2469">USB</WORD>
<WORD coords="547,2478,652,2441,2469">design</WORD>
<WORD coords="679,2478,839,2441,2470">interfaces</WORD>
<WORD coords="873,2470,983,2441,2469">should</WORD>
<WORD coords="1003,2470,1039,2441,2469">be</WORD>
<WORD coords="1061,2478,1262,2441,2469">independent</WORD>
<WORD coords="1267,2474,1273,2465,2474">,</WORD>
<WORD coords="1301,2478,1434,2441,2469">changes</WORD>
<WORD coords="1453,2478,1491,2441,2474">of</WORD>
<WORD coords="1518,2478,1662,2441,2470">interface</WORD>
<WORD coords="1698,2469,1707,2442,2469">i</WORD>
<WORD coords="1732,2470,1843,2441,2469">should</WORD>
<WORD coords="1863,2470,1916,2446,2469">not</WORD>
<WORD coords="1947,2478,2038,2441,2472">affect</WORD>
<WORD coords="2079,2478,2223,2441,2470">interface</WORD>
<WORD coords="2256,2477,2306,2441,2469">j#i</WORD>
</LINE>
<LINE>
<WORD coords="241,2520,270,2491,2520">//</WORD>
<WORD coords="295,2519,330,2492,2519">To</WORD>
<WORD coords="349,2528,475,2496,2519">prevent</WORD>
<WORD coords="513,2527,649,2491,2521">conflicts</WORD>
<WORD coords="670,2524,676,2515,2526">,</WORD>
<WORD coords="702,2528,864,2491,2520">following</WORD>
<WORD coords="899,2528,1030,2496,2519">strategy</WORD>
<WORD coords="1064,2520,1089,2492,2519">is</WORD>
<WORD coords="1122,2528,1219,2491,2520">useful</WORD>
<WORD coords="1230,2519,1239,2501,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2570,270,2541,2570">//</WORD>
<WORD coords="296,2570,355,2542,2570">Use</WORD>
<WORD coords="371,2578,530,2541,2569">endpoints</WORD>
<WORD coords="555,2569,570,2541,2569">1</WORD>
<WORD coords="595,2570,624,2546,2569">to</WORD>
<WORD coords="647,2570,667,2550,2570">n</WORD>
<WORD coords="682,2578,737,2541,2572">for</WORD>
<WORD coords="771,2578,915,2541,2570">interface</WORD>
<WORD coords="951,2574,975,2541,2572">1,</WORD>
<WORD coords="1006,2578,1165,2541,2569">endpoints</WORD>
<WORD coords="1188,2570,1254,2541,2570">n+1</WORD>
<WORD coords="1270,2570,1299,2546,2569">to</WORD>
<WORD coords="1320,2578,1411,2541,2571">mfor</WORD>
<WORD coords="1443,2578,1588,2541,2570">interface</WORD>
<WORD coords="1622,2574,1648,2541,2572">2,</WORD>
<WORD coords="1675,2570,1738,2541,2569">and</WORD>
<WORD coords="1753,2578,1912,2541,2569">endpoints</WORD>
<WORD coords="1936,2574,2020,2541,2569">m+1,</WORD>
<WORD coords="2036,2569,2112,2541,2569">m+2</WORD>
<WORD coords="2127,2570,2153,2565,2571">...</WORD>
<WORD coords="2176,2578,2232,2541,2572">for</WORD>
<WORD coords="2267,2569,2282,2539,2569">D</WORD>
</LINE>
<LINE>
<WORD coords="331,2627,475,2590,2619">interface</WORD>
<WORD coords="510,2618,535,2590,2618">3.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2669,270,2640,2669">//</WORD>
<WORD coords="294,2669,369,2640,2668">Give</WORD>
<WORD coords="388,2677,458,2640,2668">only</WORD>
<WORD coords="480,2669,561,2650,2668">more</WORD>
<WORD coords="575,2668,644,2640,2668">than</WORD>
<WORD coords="666,2669,724,2650,2668">one</WORD>
<WORD coords="750,2669,898,2640,2668">alternate</WORD>
<WORD coords="938,2677,1047,2641,2668">setting</WORD>
<WORD coords="1081,2669,1109,2645,2668">to</WORD>
<WORD coords="1137,2668,1184,2640,2668">the</WORD>
<WORD coords="1219,2677,1363,2640,2669">interface</WORD>
<WORD coords="1396,2669,1465,2640,2668">with</WORD>
<WORD coords="1492,2669,1539,2640,2668">the</WORD>
<WORD coords="1568,2677,1688,2640,2668">highest</WORD>
<WORD coords="1712,2668,1844,2640,2668">number.</WORD>
<WORD coords="1862,2669,1902,2640,2669">So</WORD>
<WORD coords="1918,2677,2051,2640,2668">changes</WORD>
<WORD coords="2070,2677,2108,2640,2672">of</WORD>
<WORD coords="2132,2669,2280,2640,2668">alternate</WORD>
<WORD coords="2323,2668,2338,2638,2668">D</WORD>
</LINE>
<LINE>
<WORD coords="329,2727,439,2691,2718">setting</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2769,270,2740,2769">//</WORD>
<WORD coords="294,2769,363,2740,2768">with</WORD>
<WORD coords="386,2769,451,2750,2768">new</WORD>
<WORD coords="462,2769,555,2740,2768">FIFO</WORD>
<WORD coords="568,2771,645,2741,2769">sizes</WORD>
<WORD coords="666,2769,723,2750,2768">can</WORD>
<WORD coords="743,2769,795,2745,2768">not</WORD>
<WORD coords="822,2769,938,2740,2768">disturb</WORD>
<WORD coords="968,2768,1056,2740,2768">other</WORD>
<WORD coords="1090,2777,1250,2740,2769">interfaces</WORD>
<WORD coords="1268,2769,1273,2764,2769">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2819,270,2790,2819">//</WORD>
<WORD coords="298,2826,330,2790,2822">If</WORD>
<WORD coords="347,2827,406,2800,2818">you</WORD>
<WORD coords="433,2827,526,2790,2818">really</WORD>
<WORD coords="554,2819,633,2790,2818">need</WORD>
<WORD coords="648,2818,729,2800,2818">more</WORD>
<WORD coords="743,2818,812,2790,2818">than</WORD>
<WORD coords="834,2818,892,2800,2818">one</WORD>
<WORD coords="920,2827,1065,2790,2819">interface</WORD>
<WORD coords="1098,2819,1166,2790,2818">with</WORD>
<WORD coords="1204,2827,1342,2790,2820">different</WORD>
<WORD coords="1385,2819,1533,2790,2818">alternate</WORD>
<WORD coords="1574,2827,1699,2791,2818">settings</WORD>
<WORD coords="1735,2825,1746,2790,2818">(</WORD>
<WORD coords="1752,2827,1897,2790,2818">endpoint</WORD>
<WORD coords="1917,2819,2010,2790,2818">FIFO</WORD>
<WORD coords="2025,2821,2101,2791,2819">sizes</WORD>
<WORD coords="2109,2823,2118,2790,2827">)</WORD>
<WORD coords="2140,2827,2199,2800,2818">you</WORD>
<WORD coords="2217,2827,2285,2800,2818">may</WORD>
<WORD coords="2300,2827,2344,2796,2818">try</WORD>
<WORD coords="2379,2818,2394,2788,2818">D</WORD>
</LINE>
<LINE>
<WORD coords="323,2869,353,2845,2868">to</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2918,270,2889,2918">//</WORD>
<WORD coords="303,2918,396,2890,2917">insert</WORD>
<WORD coords="425,2918,540,2889,2917">unused</WORD>
<WORD coords="554,2925,673,2889,2917">dummy</WORD>
<WORD coords="685,2926,844,2889,2917">endpoints</WORD>
<WORD coords="858,2918,887,2894,2918">to</WORD>
<WORD coords="909,2926,1035,2895,2917">prevent</WORD>
<WORD coords="1059,2925,1191,2899,2917">memory</WORD>
<WORD coords="1205,2918,1297,2889,2917">slides</WORD>
<WORD coords="1320,2918,1357,2899,2917">or</WORD>
<WORD coords="1380,2926,1520,2889,2917">overlaps</WORD>
<WORD coords="1530,2918,1535,2913,2918">.</WORD>
<WORD coords="1565,2918,1609,2889,2917">Or</WORD>
<WORD coords="1621,2918,1673,2899,2917">use</WORD>
<WORD coords="1709,2926,1846,2889,2919">different</WORD>
<WORD coords="1892,2926,2129,2889,2918">configurations</WORD>
<WORD coords="2161,2918,2198,2899,2917">or</WORD>
<WORD coords="2215,2926,2303,2889,2919">force</WORD>
<WORD coords="2342,2917,2357,2887,2917">D</WORD>
</LINE>
<LINE>
<WORD coords="332,2968,529,2939,2967">reallocation</WORD>
<WORD coords="565,2976,603,2939,2972">of</WORD>
<WORD coords="625,2967,667,2939,2967">all</WORD>
<WORD coords="697,2976,856,2939,2967">endpoints</WORD>
<WORD coords="866,2967,871,2963,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,3018,270,2989,3018">//</WORD>
<WORD coords="295,3018,359,2989,3017">Our</WORD>
<WORD coords="377,3026,562,2989,3017">application</WORD>
<WORD coords="594,3018,663,2999,3017">uses</WORD>
<WORD coords="687,3026,757,2989,3017">only</WORD>
<WORD coords="790,3026,934,2989,3018">interface</WORD>
<WORD coords="965,3017,985,2989,3017">0</WORD>
<WORD coords="1005,3018,1073,2989,3017">with</WORD>
<WORD coords="1099,3026,1259,2989,3017">endpoints</WORD>
<WORD coords="1283,3026,1350,2989,3017">epl,</WORD>
<WORD coords="1376,3026,1443,2989,3018">ep2,</WORD>
<WORD coords="1470,3026,1537,2989,3018">ep3.</WORD>
<WORD coords="1562,3017,1620,2990,3017">But</WORD>
<WORD coords="1641,3018,1689,2989,3017">the</WORD>
<WORD coords="1712,3018,1788,2989,3018">code</WORD>
<WORD coords="1812,3017,1836,2990,3017">is</WORD>
<WORD coords="1863,3026,2011,2989,3017">designed</WORD>
<WORD coords="2034,3018,2062,2994,3017">to</WORD>
<WORD coords="2088,3026,2214,2994,3017">support</WORD>
<WORD coords="2235,3017,2317,2999,3017">more</WORD>
<WORD coords="2343,3017,2358,2987,3017">D</WORD>
</LINE>
<LINE>
<WORD coords="332,3076,492,3039,3068">interfaces</WORD>
<WORD coords="510,3068,515,3063,3068">.</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,3117,308,3089,3117">bool</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0017.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0018.djvu" width="2481">
<PARAM name="PAGE" value="sources_0018.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2384,133,2419,104,132">19</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,283,586,249,277">UsbDevSetInterface(</WORD>
<WORD coords="601,278,711,249,277">uint8_t</WORD>
<WORD coords="742,280,827,249,277">conf,</WORD>
<WORD coords="862,278,973,249,277">uint8_t</WORD>
<WORD coords="1008,283,1070,249,277">inf,</WORD>
<WORD coords="1105,278,1216,249,277">uint8_t</WORD>
<WORD coords="1247,284,1296,249,278">as)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,337,253,296,337">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,378,365,349,377">uint8</WORD>
<WORD coords="371,377,394,354,377">_t</WORD>
<WORD coords="427,382,454,349,377">i;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,427,307,398,427">if</WORD>
<WORD coords="334,433,424,399,427">(conf</WORD>
<WORD coords="498,422,543,411,422">==</WORD>
<WORD coords="557,436,945,399,427">UsbUnconfiguredState)</WORD>
<WORD coords="956,428,986,399,428">//</WORD>
<WORD coords="1003,428,1078,399,427">each</WORD>
<WORD coords="1107,436,1251,399,428">interface</WORD>
<WORD coords="1283,428,1394,399,427">should</WORD>
<WORD coords="1414,428,1450,399,427">be</WORD>
<WORD coords="1470,428,1573,399,427">bound</WORD>
<WORD coords="1585,428,1615,404,428">to</WORD>
<WORD coords="1638,428,1656,409,428">a</WORD>
<WORD coords="1685,436,1904,399,428">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,486,290,445,486">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,535,827,498,526">Debug(”UsbDevSetInterface():</WORD>
<WORD coords="860,526,956,498,526">called</WORD>
<WORD coords="984,526,1063,498,526">from</WORD>
<WORD coords="1080,535,1297,498,526">unconfigured</WORD>
<WORD coords="1324,532,1520,498,526">(addressed)</WORD>
<WORD coords="1554,527,1627,502,526">state</WORD>
<WORD coords="1643,537,1780,495,526">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="311,577,423,550,576">return</WORD>
<WORD coords="450,576,525,548,576">false</WORD>
<WORD coords="541,581,547,557,581">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,636,290,595,636">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,676,307,647,676">if</WORD>
<WORD coords="336,682,420,648,676">((inf</WORD>
<WORD coords="445,678,495,653,675">&gt;=</WORD>
<WORD coords="509,677,585,648,676">USB</WORD>
<WORD coords="591,676,764,648,676">-Interfaces</WORD>
<WORD coords="770,683,856,648,676">[conf</WORD>
<WORD coords="863,683,884,648,684">])</WORD>
<WORD coords="920,686,934,645,686">||</WORD>
<WORD coords="969,682,1018,648,677">(as</WORD>
<WORD coords="1043,678,1093,654,675">&gt;=</WORD>
<WORD coords="1107,677,1183,648,676">USB</WORD>
<WORD coords="1203,676,1228,649,676">A</WORD>
<WORD coords="1234,677,1326,648,676">ItSetti</WORD>
<WORD coords="1333,685,1385,657,676">ngs</WORD>
<WORD coords="1392,683,1477,648,676">[conf</WORD>
<WORD coords="1484,682,1487,649,682">|</WORD>
<WORD coords="1495,682,1499,649,682">[</WORD>
<WORD coords="1514,676,1559,648,676">inf</WORD>
<WORD coords="1572,683,1614,648,683">]))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,736,290,695,736">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,784,827,747,775">Debug(”UsbDevSetInterface():</WORD>
<WORD coords="865,775,1007,747,775">interface</WORD>
<WORD coords="1041,775,1093,752,775">not</WORD>
<WORD coords="1118,784,1278,747,775">supported</WORD>
<WORD coords="1288,785,1425,744,775">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="311,826,423,799,825">return</WORD>
<WORD coords="450,825,525,797,825">false</WORD>
<WORD coords="541,830,547,806,830">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,885,290,844,885">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,925,307,897,925">if</WORD>
<WORD coords="336,931,401,897,926">((as</WORD>
<WORD coords="426,927,452,902,927">&gt;</WORD>
<WORD coords="466,932,498,897,930">0)</WORD>
<WORD coords="518,925,579,897,926">&amp;&amp;</WORD>
<WORD coords="593,928,653,897,925">(inf</WORD>
<WORD coords="671,925,701,897,925">!=</WORD>
<WORD coords="726,931,819,897,925">(USB</WORD>
<WORD coords="825,925,998,897,925">-Interfaces</WORD>
<WORD coords="1008,932,1105,897,925">[conf]</WORD>
<WORD coords="1112,916,1138,914,920">—</WORD>
<WORD coords="1146,932,1203,897,932">1)))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,985,290,944,985">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1033,827,996,1024">Debug(”UsbDevSetInterface():</WORD>
<WORD coords="856,1033,997,996,1024">Multiple</WORD>
<WORD coords="1034,1025,1192,996,1024">interfaces</WORD>
<WORD coords="1227,1024,1299,996,1024">with</WORD>
<WORD coords="1320,1024,1403,1005,1024">more</WORD>
<WORD coords="1416,1024,1486,996,1024">than</WORD>
<WORD coords="1507,1024,1564,1005,1024">one</WORD>
<WORD coords="1595,1024,1735,996,1024">alternate</WORD>
<WORD coords="1779,1033,1886,996,1024">setting</WORD>
<WORD coords="1918,1026,1970,1001,1023">=&gt;</WORD>
<WORD coords="1984,1025,2072,996,1024">FIFO</WORD>
<WORD coords="2086,1033,2220,1005,1024">memory</WORD>
<WORD coords="2233,1024,2371,996,1024">conflicts</WORD>
<WORD coords="2387,1024,2402,996,1024">)</WORD>
</LINE>
<LINE>
<WORD coords="406,1083,475,1055,1074">may</WORD>
<WORD coords="487,1084,701,1043,1074">occur!\r\n”)</WORD>
<WORD coords="710,1080,716,1055,0">;</WORD>
</LINE>
<LINE>
<WORD coords="311,1125,423,1098,1124">return</WORD>
<WORD coords="450,1124,525,1096,1124">false</WORD>
<WORD coords="541,1129,547,1105,1129">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1184,290,1143,1184">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1224,307,1196,1224">if</WORD>
<WORD coords="334,1230,345,1196,1230">(</WORD>
<WORD coords="364,1233,723,1196,1224">AltSettingOflnterface</WORD>
<WORD coords="747,1230,751,1197,1230">|</WORD>
<WORD coords="765,1224,812,1196,1224">inf</WORD>
<WORD coords="821,1230,827,1197,1230">]</WORD>
<WORD coords="853,1219,898,1208,1221">==</WORD>
<WORD coords="911,1231,960,1196,1225">as)</WORD>
<WORD coords="988,1225,1018,1196,1225">//</WORD>
<WORD coords="1040,1225,1080,1206,1224">no</WORD>
<WORD coords="1096,1233,1238,1196,1224">changes,</WORD>
<WORD coords="1272,1225,1350,1201,1224">reset</WORD>
<WORD coords="1382,1233,1481,1196,1224">toggle</WORD>
<WORD coords="1514,1225,1572,1196,1224">bits</WORD>
<WORD coords="1603,1233,1641,1196,1229">of</WORD>
<WORD coords="1660,1233,1819,1196,1224">endpoints</WORD>
<WORD coords="1846,1233,1883,1196,1228">of</WORD>
<WORD coords="1908,1224,1964,1196,1224">this</WORD>
<WORD coords="2004,1233,2148,1196,1225">interface</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,1283,287,1243,1283">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,1323,344,1295,1323">if</WORD>
<WORD coords="371,1329,462,1295,1323">(conf</WORD>
<WORD coords="480,1318,524,1307,1319">==</WORD>
<WORD coords="538,1330,569,1295,1326">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1383,327,1342,1392">{</WORD>
<WORD coords="357,1401,363,1394,1401">_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="355,1423,381,1395,1423">if</WORD>
<WORD coords="408,1429,476,1395,1423">(inf</WORD>
<WORD coords="498,1418,543,1407,1420">==</WORD>
<WORD coords="556,1430,588,1395,1428">0)</WORD>
<WORD coords="613,1424,644,1395,1426">//</WORD>
<WORD coords="678,1431,745,1395,1424">first</WORD>
<WORD coords="790,1432,934,1395,1424">interface</WORD>
<WORD coords="968,1432,1006,1395,1428">of</WORD>
<WORD coords="1029,1432,1100,1395,1426">first</WORD>
<WORD coords="1143,1432,1363,1395,1424">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1483,365,1442,1483">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1524,439,1494,1523">for</WORD>
<WORD coords="464,1529,492,1495,1523">(i</WORD>
<WORD coords="517,1518,538,1507,1520">=</WORD>
<WORD coords="561,1528,586,1495,1526">1;</WORD>
<WORD coords="613,1523,623,1494,1523">i</WORD>
<WORD coords="650,1524,676,1500,1524">&lt;</WORD>
<WORD coords="689,1529,719,1494,1527">4;</WORD>
<WORD coords="744,1530,817,1494,1523">i++)</WORD>
<WORD coords="838,1524,867,1495,1524">//</WORD>
<WORD coords="898,1523,976,1500,1523">reset</WORD>
<WORD coords="1007,1531,1108,1494,1523">toggle</WORD>
<WORD coords="1139,1523,1183,1494,1523">bit</WORD>
<WORD coords="1211,1531,1247,1494,1527">of</WORD>
<WORD coords="1269,1523,1313,1494,1523">all</WORD>
<WORD coords="1342,1531,1501,1494,1523">endpoints</WORD>
<WORD coords="1527,1531,1565,1494,1527">of</WORD>
<WORD coords="1589,1523,1647,1494,1523">this</WORD>
<WORD coords="1685,1531,1830,1494,1523">interface</WORD>
<WORD coords="1846,1528,1855,1504,1528">;</WORD>
<WORD coords="1880,1523,1919,1504,1523">an</WORD>
<WORD coords="1939,1531,2083,1494,1523">endpoint</WORD>
<WORD coords="2112,1523,2190,1500,1523">reset</WORD>
<WORD coords="2216,1531,2284,1504,1523">may</WORD>
<WORD coords="2295,1523,2333,1494,1523">be</WORD>
<WORD coords="2360,1523,2376,1493,1523">2</WORD>
</LINE>
<LINE>
<WORD coords="470,1580,633,1553,1572">necessary</WORD>
<WORD coords="657,1572,708,1549,1572">too</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1632,402,1591,1632">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1681,849,1644,1672">UsbDevSelectEndpoint(i)</WORD>
<WORD coords="859,1677,865,1653,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1731,850,1694,1722">UsbDevResetEndpoint(i);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1781,930,1744,1772">UsbDevResetDataToggleBit();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1831,402,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1881,365,1840,1881">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="354,1922,416,1893,1921">else</WORD>
<WORD coords="448,1921,475,1893,1921">if</WORD>
<WORD coords="502,1927,569,1893,1921">(inf</WORD>
<WORD coords="592,1916,636,1905,1917">==</WORD>
<WORD coords="654,1928,681,1893,1925">1)</WORD>
<WORD coords="708,1922,737,1893,1922">//</WORD>
<WORD coords="760,1922,875,1893,1921">second</WORD>
<WORD coords="902,1930,1046,1893,1922">interface</WORD>
<WORD coords="1080,1930,1118,1893,1926">of</WORD>
<WORD coords="1141,1930,1212,1893,1924">first</WORD>
<WORD coords="1255,1930,1475,1893,1922">configuration</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1982,366,1940,1982">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,2022,420,1993,2022">//</WORD>
<WORD coords="450,2022,528,1998,2021">reset</WORD>
<WORD coords="558,2030,717,1993,2021">endpoints</WORD>
<WORD coords="744,2030,781,1993,2026">of</WORD>
<WORD coords="797,2022,913,1993,2021">second</WORD>
<WORD coords="939,2030,1083,1993,2022">interface</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,2081,365,2040,2081">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="314,2130,327,2089,2130">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2171,379,2142,2170">else</WORD>
<WORD coords="411,2170,437,2142,2170">if</WORD>
<WORD coords="464,2176,555,2142,2170">(conf</WORD>
<WORD coords="573,2165,617,2154,2166">==</WORD>
<WORD coords="632,2177,663,2142,2174">2)</WORD>
<WORD coords="689,2171,719,2142,2171">//</WORD>
<WORD coords="748,2170,865,2142,2170">similar</WORD>
<WORD coords="895,2179,1070,2143,2170">operations</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="314,2230,327,2189,2230">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2280,327,2239,2280">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2320,423,2294,2320">return</WORD>
<WORD coords="447,2320,509,2297,2320">true</WORD>
<WORD coords="522,2326,528,2301,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2379,290,2338,2379">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2419,307,2391,2419">if</WORD>
<WORD coords="334,2425,424,2391,2419">(conf</WORD>
<WORD coords="442,2414,487,2403,2415">==</WORD>
<WORD coords="500,2426,532,2391,2422">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2479,290,2438,2479">{</WORD>
<WORD coords="319,2497,325,2490,2497">_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2519,344,2491,2519">if</WORD>
<WORD coords="371,2525,381,2491,2519">(</WORD>
<WORD coords="391,2519,438,2491,2519">inf</WORD>
<WORD coords="461,2514,505,2503,2516">==</WORD>
<WORD coords="519,2526,551,2491,2524">0)</WORD>
<WORD coords="577,2520,607,2491,2522">//</WORD>
<WORD coords="637,2528,707,2491,2522">first</WORD>
<WORD coords="750,2520,915,2491,2519">allocation</WORD>
<WORD coords="947,2520,984,2501,2519">or</WORD>
<WORD coords="1015,2520,1212,2491,2519">reallocation</WORD>
<WORD coords="1247,2520,1316,2491,2519">with</WORD>
<WORD coords="1339,2520,1403,2501,2519">new</WORD>
<WORD coords="1424,2520,1571,2491,2519">alternate</WORD>
<WORD coords="1610,2528,1718,2492,2519">setting</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="314,2579,327,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2627,964,2590,2618">UsbDevDisableAndFreeEndpoint(3);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2677,964,2640,2668">UsbDevDisableAndFreeEndpoint(2);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2719,376,2690,2719">U</WORD>
<WORD coords="380,2718,608,2690,2718">sbDevDisable</WORD>
<WORD coords="611,2727,920,2690,2718">AndFreeEndpoint(</WORD>
<WORD coords="926,2718,937,2690,2721">1</WORD>
<WORD coords="943,2725,964,2690,2723">);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,2769,639,2740,2768">UsbAllocatedEPs</WORD>
<WORD coords="652,2763,673,2752,2765">=</WORD>
<WORD coords="692,2774,717,2740,2771">1;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="364,2827,723,2790,2818">AltSettingOflnterface</WORD>
<WORD coords="748,2825,788,2790,2823">[0]</WORD>
<WORD coords="816,2813,837,2802,2816">=</WORD>
<WORD coords="857,2827,1296,2790,2818">UsblnterfaceUnconfigured</WORD>
<WORD coords="1308,2821,1313,2799,0">;</WORD>
</LINE>
<LINE>
<WORD coords="355,2868,381,2840,2868">if</WORD>
<WORD coords="408,2874,456,2840,2868">(as</WORD>
<WORD coords="480,2863,524,2852,2864">==</WORD>
<WORD coords="538,2875,569,2840,2872">0)</WORD>
<WORD coords="596,2869,625,2840,2869">//</WORD>
<WORD coords="649,2869,701,2850,2868">use</WORD>
<WORD coords="731,2869,879,2840,2868">alternate</WORD>
<WORD coords="919,2877,1028,2841,2868">setting</WORD>
<WORD coords="1059,2868,1079,2840,2868">0</WORD>
</LINE>
<LINE>
<WORD coords="351,2927,365,2886,2927">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,2967,419,2939,2967">if</WORD>
<WORD coords="446,2976,795,2939,2967">(UsbDevEP_Setup(l,</WORD>
<WORD coords="809,2976,1109,2939,2967">UsbEP.TypeBulk,</WORD>
<WORD coords="1123,2972,1390,2939,2967">EPl_FIFO_Size,</WORD>
<WORD coords="1408,2971,1432,2939,2969">1,</WORD>
<WORD coords="1446,2974,1691,2939,2967">UsbEP_DirIn))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,3027,402,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,3076,604,3039,3067">Debug(”H!</WORD>
<WORD coords="635,3068,809,3039,3067">Successful</WORD>
<WORD coords="840,3067,884,3044,3067">set</WORD>
<WORD coords="909,3076,948,3048,3067">up</WORD>
<WORD coords="965,3077,1166,3036,3067">EPl!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="428,3126,905,3089,3117">//UsbDevSelectEndpoint(l);</WORD>
<WORD coords="936,3118,993,3089,3117">this</WORD>
<WORD coords="1021,3126,1058,3099,3118">ep</WORD>
<WORD coords="1083,3118,1108,3090,3117">is</WORD>
<WORD coords="1136,3126,1260,3089,3117">already</WORD>
<WORD coords="1291,3118,1425,3089,3118">selected</WORD>
<WORD coords="1451,3126,1489,3089,3118">by</WORD>
<WORD coords="1510,3126,1823,3089,3117">UsbDevEPSetupO</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0018.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0019.djvu" width="2481">
<PARAM name="PAGE" value="sources_0019.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1556,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2420,104,132">20</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="425,284,918,249,277">UsbDevEnableNAKJN_Int();</WORD>
<WORD coords="929,278,958,249,278">//</WORD>
<WORD coords="974,286,1088,250,277">trigger</WORD>
<WORD coords="1126,286,1272,250,277">interrupt</WORD>
<WORD coords="1301,278,1386,249,277">when</WORD>
<WORD coords="1400,278,1469,249,277">host</WORD>
<WORD coords="1489,286,1542,254,278">got</WORD>
<WORD coords="1563,278,1581,259,278">a</WORD>
<WORD coords="1598,278,1681,249,277">NAK</WORD>
<WORD coords="1690,278,1725,259,277">as</WORD>
<WORD coords="1738,277,1756,259,277">a</WORD>
<WORD coords="1779,278,1871,249,277">result</WORD>
<WORD coords="1902,286,1940,249,282">of</WORD>
<WORD coords="1954,277,1973,259,277">a</WORD>
<WORD coords="1994,278,2068,249,277">read</WORD>
<WORD coords="2092,286,2211,254,277">request</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,337,402,296,337">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,378,453,349,377">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,437,402,396,437">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,485,604,448,476">Debug(”!!!</WORD>
<WORD coords="649,485,739,448,476">Setup</WORD>
<WORD coords="761,476,797,448,476">of</WORD>
<WORD coords="816,476,879,448,476">EP1</WORD>
<WORD coords="902,476,993,448,476">failed</WORD>
<WORD coords="1008,487,1145,445,476">!\r\n”);</WORD>
<WORD coords="1175,477,1204,448,477">//</WORD>
<WORD coords="1227,477,1338,448,476">should</WORD>
<WORD coords="1359,476,1412,454,476">not</WORD>
<WORD coords="1432,477,1527,458,476">occur</WORD>
<WORD coords="1544,483,1601,448,477">;—)</WORD>
</LINE>
<LINE>
<WORD coords="424,527,535,500,526">return</WORD>
<WORD coords="562,526,638,498,526">false</WORD>
<WORD coords="653,532,659,507,532">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,586,402,545,586">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,626,419,598,626">if</WORD>
<WORD coords="446,635,795,598,626">(UsbDevEP_Setup(2,</WORD>
<WORD coords="809,627,923,598,626">UsbEP</WORD>
<WORD coords="939,635,1109,598,626">TypeBulk,</WORD>
<WORD coords="1123,626,1189,598,626">EP2</WORD>
<WORD coords="1207,627,1295,598,626">FIFO</WORD>
<WORD coords="1313,629,1390,598,626">Size,</WORD>
<WORD coords="1404,629,1432,598,628">2,</WORD>
<WORD coords="1445,627,1560,598,626">UsbEP</WORD>
<WORD coords="1577,634,1691,597,626">Dirln))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,686,402,645,686">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,735,604,698,726">Debug(”H!</WORD>
<WORD coords="635,727,809,698,726">Successful</WORD>
<WORD coords="840,726,884,703,726">set</WORD>
<WORD coords="909,735,949,707,726">up</WORD>
<WORD coords="965,736,1166,695,726">EP2!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,785,402,744,785">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,826,453,797,825">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,885,402,844,885">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,934,604,897,925">Debug(”!!!</WORD>
<WORD coords="649,934,739,897,925">Setup</WORD>
<WORD coords="761,925,797,897,925">of</WORD>
<WORD coords="815,925,882,897,925">EP2</WORD>
<WORD coords="902,925,993,897,925">failed</WORD>
<WORD coords="1008,936,1145,894,925">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="424,976,535,949,975">return</WORD>
<WORD coords="562,975,638,947,975">false</WORD>
<WORD coords="653,981,659,956,981">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1034,402,993,1034">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,1074,419,1046,1074">if</WORD>
<WORD coords="446,1083,795,1046,1074">(UsbDevEP_Setup(3,</WORD>
<WORD coords="809,1083,1109,1046,1074">UsbEP.TypeBulk,</WORD>
<WORD coords="1123,1079,1390,1046,1074">EP3_FIFO_Size,</WORD>
<WORD coords="1408,1080,1432,1046,1078">1,</WORD>
<WORD coords="1446,1081,1718,1046,1074">UsbEP_DirOut))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1134,402,1093,1134">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1183,604,1146,1174">Debug(”!!!</WORD>
<WORD coords="635,1175,809,1146,1174">Successful</WORD>
<WORD coords="840,1174,884,1151,1174">set</WORD>
<WORD coords="909,1183,949,1155,1174">up</WORD>
<WORD coords="965,1184,1166,1143,1174">EP3!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1225,911,1196,1224">UsbDcvEnableReceivcdOUT</WORD>
<WORD coords="929,1224,1028,1196,1224">DA&apos;I’A</WORD>
<WORD coords="1050,1231,1169,1196,1224">Inti);//</WORD>
<WORD coords="1177,1232,1290,1197,1224">trimmer</WORD>
<WORD coords="1313,1233,1459,1197,1224">interrupt</WORD>
<WORD coords="1488,1225,1573,1196,1224">when</WORD>
<WORD coords="1586,1225,1639,1202,1224">out</WORD>
<WORD coords="1656,1225,1728,1196,1224">data</WORD>
<WORD coords="1756,1224,1780,1197,1224">is</WORD>
<WORD coords="1813,1225,1965,1196,1224">available</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1283,402,1242,1283">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,1323,453,1295,1323">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1383,402,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1432,604,1395,1423">Debug(”H!</WORD>
<WORD coords="649,1432,739,1395,1423">Setup</WORD>
<WORD coords="761,1423,797,1395,1423">of</WORD>
<WORD coords="816,1424,881,1395,1423">EP3</WORD>
<WORD coords="902,1423,993,1395,1423">failed</WORD>
<WORD coords="1008,1434,1145,1392,1423">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="424,1473,535,1447,1473">return</WORD>
<WORD coords="562,1473,638,1445,1473">false</WORD>
<WORD coords="653,1479,659,1454,1479">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1533,402,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1582,365,1541,1582">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="354,1623,416,1594,1622">else</WORD>
<WORD coords="448,1622,475,1594,1622">if</WORD>
<WORD coords="502,1628,551,1594,1622">(as</WORD>
<WORD coords="573,1617,617,1606,1618">==</WORD>
<WORD coords="636,1629,663,1594,1626">1)</WORD>
<WORD coords="689,1623,719,1594,1623">//</WORD>
<WORD coords="750,1623,898,1594,1622">alternate</WORD>
<WORD coords="938,1630,1047,1595,1622">setting</WORD>
<WORD coords="1078,1622,1093,1594,1622">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1682,365,1641,1682">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,1723,420,1694,1723">//</WORD>
<WORD coords="447,1723,493,1700,1723">set</WORD>
<WORD coords="518,1731,557,1704,1722">up</WORD>
<WORD coords="573,1723,657,1704,1722">same</WORD>
<WORD coords="671,1731,830,1694,1722">endpoints</WORD>
<WORD coords="856,1723,924,1694,1722">with</WORD>
<WORD coords="961,1731,1099,1694,1724">different</WORD>
<WORD coords="1129,1731,1319,1699,1722">parameters</WORD>
<WORD coords="1342,1729,1480,1694,1722">(FIFO—</WORD>
<WORD coords="1483,1727,1558,1694,1723">size)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1782,365,1741,1782">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="364,1830,723,1793,1821">AltSettingOflnterface</WORD>
<WORD coords="748,1828,788,1793,1826">[0]</WORD>
<WORD coords="816,1816,837,1805,1819">=</WORD>
<WORD coords="855,1826,902,1802,1822">as;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="353,1880,679,1843,1871">UsbStartupFinished</WORD>
<WORD coords="704,1866,725,1855,1868">=</WORD>
<WORD coords="748,1876,772,1843,1873">1;</WORD>
</LINE>
<LINE>
<WORD coords="349,1922,461,1895,1921">return</WORD>
<WORD coords="485,1921,547,1898,1921">true</WORD>
<WORD coords="560,1927,566,1902,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1981,327,1940,1981">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2022,379,1993,2021">else</WORD>
<WORD coords="411,2021,437,1993,2021">if</WORD>
<WORD coords="464,2024,474,1994,2021">(</WORD>
<WORD coords="485,2021,532,1993,2021">inf</WORD>
<WORD coords="554,2016,599,2005,2017">==</WORD>
<WORD coords="616,2028,644,1993,2025">1)</WORD>
<WORD coords="670,2022,700,1993,2022">//</WORD>
<WORD coords="725,2030,810,1999,2021">setup</WORD>
<WORD coords="846,2030,990,1993,2022">interface</WORD>
<WORD coords="1022,2021,1037,1993,2021">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2081,327,2040,2081">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2130,327,2089,2130">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2180,290,2139,2180">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,2220,341,2192,2220">else</WORD>
<WORD coords="373,2220,400,2192,2220">if</WORD>
<WORD coords="427,2226,518,2192,2220">(conf</WORD>
<WORD coords="536,2215,580,2204,2216">==</WORD>
<WORD coords="598,2227,625,2192,2224">1)</WORD>
<WORD coords="652,2221,681,2192,2221">//</WORD>
<WORD coords="710,2220,828,2192,2220">similar</WORD>
<WORD coords="856,2229,941,2198,2220">setup</WORD>
<WORD coords="973,2229,1001,2192,2224">if</WORD>
<WORD coords="1031,2229,1250,2192,2221">configuration</WORD>
<WORD coords="1282,2220,1301,2192,2220">2</WORD>
<WORD coords="1323,2221,1390,2192,2220">with</WORD>
<WORD coords="1416,2220,1504,2192,2220">other</WORD>
<WORD coords="1538,2229,1699,2192,2221">interfaces</WORD>
<WORD coords="1737,2221,1761,2193,2220">is</WORD>
<WORD coords="1795,2221,1929,2192,2220">selected</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2280,290,2239,2280">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2330,290,2289,2330">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2370,386,2343,2369">return</WORD>
<WORD coords="413,2369,488,2341,2369">false</WORD>
<WORD coords="504,2372,510,2350,2372">;</WORD>
<WORD coords="539,2370,569,2341,2370">//</WORD>
<WORD coords="592,2371,710,2341,2369">dummy</WORD>
<WORD coords="723,2369,751,2346,2369">to</WORD>
<WORD coords="765,2378,907,2351,2369">suppress</WORD>
<WORD coords="929,2378,1076,2341,2369">compiler</WORD>
<WORD coords="1096,2377,1233,2342,2369">warning</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2429,253,2388,2429">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2520,310,2491,2519">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2578,1110,2541,2569">UsbDevProcessVendorRequest(USB_DeviceRequest</WORD>
<WORD coords="1124,2578,1207,2542,2569">*req)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2628,253,2587,2628">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2677,747,2640,2668">ProcessUserCommand(req—</WORD>
<WORD coords="754,2677,945,2640,2668">&gt;bRequest,</WORD>
<WORD coords="960,2677,1008,2649,2668">req</WORD>
<WORD coords="1031,2671,1208,2640,2668">-&gt;wValue,</WORD>
<WORD coords="1221,2677,1303,2649,2668">req—</WORD>
<WORD coords="1309,2675,1485,2640,2668">&gt;wlndex);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2728,253,2687,2728">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2819,270,2790,2819">//</WORD>
<WORD coords="296,2818,364,2790,2818">This</WORD>
<WORD coords="386,2827,525,2790,2819">function</WORD>
<WORD coords="560,2818,585,2791,2818">is</WORD>
<WORD coords="616,2819,717,2790,2818">called</WORD>
<WORD coords="741,2819,899,2790,2818">whenever</WORD>
<WORD coords="912,2819,981,2790,2818">host</WORD>
<WORD coords="1013,2819,1084,2791,2818">tries</WORD>
<WORD coords="1118,2819,1147,2796,2818">to</WORD>
<WORD coords="1172,2819,1246,2790,2818">read</WORD>
<WORD coords="1265,2819,1336,2790,2818">data</WORD>
<WORD coords="1351,2827,1432,2790,2820">from</WORD>
<WORD coords="1451,2827,1506,2790,2818">epl</WORD>
</LINE>
<LINE>
<WORD coords="241,2869,270,2840,2869">//</WORD>
<WORD coords="295,2869,340,2841,2869">We</WORD>
<WORD coords="352,2869,429,2840,2868">send</WORD>
<WORD coords="442,2868,460,2850,2868">a</WORD>
<WORD coords="487,2869,582,2845,2868">status</WORD>
<WORD coords="613,2877,680,2840,2869">byte</WORD>
<WORD coords="704,2869,800,2840,2868">which</WORD>
<WORD coords="826,2869,973,2840,2868">indicates</WORD>
<WORD coords="1006,2869,1128,2850,2868">success</WORD>
<WORD coords="1155,2877,1191,2840,2873">of</WORD>
<WORD coords="1207,2876,1288,2840,2868">DAQ</WORD>
<WORD coords="1301,2877,1458,2841,2868">operation</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2918,310,2889,2917">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2968,265,2939,2968">U</WORD>
<WORD coords="268,2967,476,2939,2967">sbDevFillEP</WORD>
<WORD coords="482,2967,493,2939,2967">1</WORD>
<WORD coords="498,2974,689,2938,2967">FIFO(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,3027,253,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,3067,307,3039,3067">if</WORD>
<WORD coords="331,3076,788,3039,3067">UsbDevTransmitterReadyO</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3127,290,3086,3127">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0019.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0020.djvu" width="2481">
<PARAM name="PAGE" value="sources_0020.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,141,1641,103,132">api.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,132,2416,104,132">21</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="311,278,339,249,278">U</WORD>
<WORD coords="342,286,833,249,277">sbDevClearTransmitterReady</WORD>
<WORD coords="836,284,859,249,283">()</WORD>
<WORD coords="864,282,870,258,0">;</WORD>
</LINE>
<LINE>
<WORD coords="311,336,920,299,327">UsbDevClearNAK_ResponseInBit();</WORD>
</LINE>
<LINE>
<WORD coords="311,378,339,349,377">U</WORD>
<WORD coords="342,377,483,349,377">sbDevW</WORD>
<WORD coords="485,386,660,349,377">riteByte(D</WORD>
<WORD coords="662,384,716,349,384">AQ</WORD>
<WORD coords="736,381,851,349,377">Result)</WORD>
<WORD coords="856,382,862,358,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,428,339,399,428">U</WORD>
<WORD coords="342,428,465,399,427">sbDevS</WORD>
<WORD coords="470,434,667,399,427">endInData()</WORD>
<WORD coords="672,432,678,408,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,486,290,445,486">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="296,626,364,598,626">This</WORD>
<WORD coords="386,635,525,598,627">function</WORD>
<WORD coords="560,626,585,599,626">is</WORD>
<WORD coords="616,627,717,598,626">called</WORD>
<WORD coords="741,627,899,598,626">whenever</WORD>
<WORD coords="912,627,995,598,626">OUT</WORD>
<WORD coords="1003,627,1096,598,626">FIFO</WORD>
<WORD coords="1108,626,1164,598,626">has</WORD>
<WORD coords="1176,627,1247,598,626">data</WORD>
<WORD coords="1253,635,1309,598,629">for</WORD>
<WORD coords="1321,626,1355,608,626">us</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,677,310,648,676">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,732,717,697,726">UsbDevReadEP3FIFO(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,785,253,744,785">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,825,307,797,825">if</WORD>
<WORD coords="334,832,918,797,825">(UsbDevHasReceivedOUT_Data())</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,885,290,844,885">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,926,339,897,926">U</WORD>
<WORD coords="342,926,424,897,925">sbDe</WORD>
<WORD coords="426,926,471,897,926">vC</WORD>
<WORD coords="474,926,583,897,925">learHa</WORD>
<WORD coords="586,926,838,896,925">sReeeivedOUT</WORD>
<WORD coords="856,925,881,898,925">D</WORD>
<WORD coords="885,925,912,902,925">at</WORD>
<WORD coords="915,929,944,897,925">a(</WORD>
<WORD coords="947,932,957,902,930">)</WORD>
<WORD coords="962,930,968,906,0">;</WORD>
</LINE>
<LINE>
<WORD coords="316,975,344,946,975">if</WORD>
<WORD coords="371,982,787,947,975">(UsbDevReadAllowedO)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1034,327,993,1034">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1074,459,1047,1074">DDRB</WORD>
<WORD coords="474,1069,495,1058,1072">=</WORD>
<WORD coords="508,1079,604,1046,1074">OxFF;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1125,476,1096,1124">PORTB</WORD>
<WORD coords="490,1119,511,1108,1122">=</WORD>
<WORD coords="524,1133,859,1096,1124">UsbDevReadByte();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,1181,864,1146,1174">UsbDevClearFifoControllBit()</WORD>
<WORD coords="877,1180,883,1155,1180">;</WORD>
<WORD coords="913,1175,943,1146,1175">//</WORD>
<WORD coords="965,1176,1071,1146,1174">mavbe</WORD>
<WORD coords="1084,1175,1128,1156,1175">we</WORD>
<WORD coords="1140,1175,1251,1146,1174">should</WORD>
<WORD coords="1265,1175,1317,1156,1174">use</WORD>
<WORD coords="1339,1174,1377,1156,1174">an</WORD>
<WORD coords="1401,1175,1480,1146,1174">alias</WORD>
<WORD coords="1504,1183,1559,1146,1177">for</WORD>
<WORD coords="1590,1175,1647,1146,1174">this</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1234,327,1193,1234">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,1283,291,1242,1283">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1333,254,1292,1333">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1674,1174,1777,1155,1174">macro</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0020.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0021.djvu" width="2481">
<PARAM name="PAGE" value="sources_0021.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1735,104,132">requests.!!</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,132,2419,104,132">22</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,525,249,277">AT90USB/usb</WORD>
<WORD coords="528,286,683,254,277">_requests.</WORD>
<WORD coords="689,277,707,249,0">h</WORD>
</LINE>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="292,336,448,299,327">Handling</WORD>
<WORD coords="463,336,501,299,331">of</WORD>
<WORD coords="520,328,591,299,327">USB</WORD>
<WORD coords="604,334,775,299,327">(standard)</WORD>
<WORD coords="804,336,938,304,327">requests</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">22—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,477,478,448,476">JJSB</WORD>
<WORD coords="484,483,702,448,476">.REQUESTS</WORD>
<WORD coords="708,477,766,449,476">_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,478,498,526">_USB</WORD>
<WORD coords="484,533,702,498,526">.REQUESTS</WORD>
<WORD coords="708,527,766,499,526">_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,384,597,626">#include</WORD>
<WORD coords="408,628,603,598,626">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="408,678,622,648,676">&lt;stdbool.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,735,568,698,726">”usb_spec</WORD>
<WORD coords="579,726,583,722,726">.</WORD>
<WORD coords="592,726,628,698,726">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,784,610,747,775">”usb_api.h”</WORD>
<WORD coords="633,776,663,747,776">//</WORD>
<WORD coords="688,784,1014,747,776">USB_MaxInterfaces</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,876,270,847,876">//</WORD>
<WORD coords="296,876,397,847,875">USB—</WORD>
<WORD coords="401,876,580,847,875">Standard—</WORD>
<WORD coords="583,876,727,848,875">Device—</WORD>
<WORD coords="730,884,883,848,875">Requests,</WORD>
<WORD coords="898,876,963,848,875">H.J.</WORD>
<WORD coords="979,875,1063,847,875">Kelm</WORD>
<WORD coords="1078,876,1149,847,875">USB</WORD>
<WORD coords="1161,879,1219,847,876">2.0,</WORD>
<WORD coords="1234,876,1348,848,875">section</WORD>
<WORD coords="1368,880,1457,847,877">2.9.1,</WORD>
<WORD coords="1484,884,1567,857,875">page</WORD>
<WORD coords="1583,875,1643,847,875">108</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="388,926,463,897,925">USB</WORD>
<WORD coords="483,934,752,897,925">StdDcvRcqGET</WORD>
<WORD coords="769,926,912,897,925">STATUS</WORD>
<WORD coords="984,926,1065,897,925">0x00</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="388,984,805,947,975">USB.StdDcvRcqCLEAR</WORD>
<WORD coords="810,975,912,947,975">J’EA&apos;I</WORD>
<WORD coords="924,976,1004,947,975">URE</WORD>
<WORD coords="1016,976,1093,947,975">0x01</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="387,1033,942,996,1024">USB_StdDevReqSET_FEATURE</WORD>
<WORD coords="984,1025,1063,996,1024">0x03</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="386,1083,946,1046,1074">USB_StdDevReqSET_ADDRESS</WORD>
<WORD coords="984,1075,1063,1046,1074">0x05</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1133,1019,1096,1124">USB_StdDevReqGET_DESCRIPTOR</WORD>
<WORD coords="1031,1125,1111,1096,1124">0x06</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="389,1175,463,1146,1174">USB</WORD>
<WORD coords="483,1183,745,1146,1174">StdDevReqSET</WORD>
<WORD coords="763,1175,1010,1146,1174">DESCRIPTOR</WORD>
<WORD coords="1024,1175,1104,1146,1174">0x07</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="387,1225,463,1196,1224">USB</WORD>
<WORD coords="483,1233,752,1196,1224">StdDcvRcqGET</WORD>
<WORD coords="768,1225,1103,1196,1224">CONFIGURATION</WORD>
<WORD coords="1115,1225,1194,1196,1224">0x08</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1273,363,1244,1273">#define</WORD>
<WORD coords="387,1282,1096,1245,1273">USB_StdDevReqSET_CONFIGURATION</WORD>
<WORD coords="1108,1274,1188,1245,1273">0x09</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="386,1324,463,1295,1323">USB</WORD>
<WORD coords="469,1332,886,1295,1323">.StdDevReqGETJNTER</WORD>
<WORD coords="890,1324,990,1295,1323">FACE</WORD>
<WORD coords="1002,1324,1092,1295,1323">OxOA</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,363,1344,1373">#define</WORD>
<WORD coords="387,1382,983,1345,1373">USB_StdDevReqSET_INTERFACE</WORD>
<WORD coords="995,1374,1081,1345,1373">OxOB</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="388,1424,463,1395,1423">USB</WORD>
<WORD coords="483,1424,533,1395,1423">Std</WORD>
<WORD coords="539,1432,691,1395,1423">DevReqS</WORD>
<WORD coords="695,1424,780,1395,1423">YNC</WORD>
<WORD coords="786,1423,809,1396,1423">H</WORD>
<WORD coords="830,1423,968,1395,1423">FRAME</WORD>
<WORD coords="984,1424,1071,1395,1423">OxOC</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,1524,270,1495,1524">//</WORD>
<WORD coords="291,1532,439,1496,1523">Meaning</WORD>
<WORD coords="451,1532,488,1495,1527">of</WORD>
<WORD coords="498,1532,763,1495,1523">bmRequestType,</WORD>
<WORD coords="778,1524,845,1496,1523">H.J.</WORD>
<WORD coords="871,1523,956,1495,1523">Kelm</WORD>
</LINE>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1579,877,1544,1572">UsblsDataHostToDevice(bm)</WORD>
</LINE>
<LINE>
<WORD coords="236,1622,363,1593,1622">#define</WORD>
<WORD coords="387,1629,877,1594,1622">UsblsDataDeviceToHost(bm)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="386,1731,842,1694,1722">UsblsStandardRequest(bm)</WORD>
</LINE>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1781,786,1744,1772">UsblsClassRequest(bm)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1830,815,1793,1821">UsbIsVendorRequest(bm)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1921,363,1892,1921">#define</WORD>
<WORD coords="387,1930,868,1893,1921">UsblsRequestForDevice(bm)</WORD>
</LINE>
<LINE>
<WORD coords="236,1971,363,1942,1971">#define</WORD>
<WORD coords="393,1980,825,1943,1971">UsblsRequestForlnterface</WORD>
<WORD coords="838,1978,917,1943,1971">(bm)</WORD>
</LINE>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="387,2022,414,1993,2021">U</WORD>
<WORD coords="417,2030,904,1993,2021">sblsRequestForEndpoint(bm)</WORD>
</LINE>
<LINE>
<WORD coords="236,2071,363,2042,2071">#define</WORD>
<WORD coords="387,2080,846,2043,2071">UsblsRequestForOther(bm)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="971,1524,1042,1495,1523">USB</WORD>
<WORD coords="1055,1527,1112,1495,1524">2.0,</WORD>
<WORD coords="1140,1524,1254,1496,1523">section</WORD>
<WORD coords="1291,1528,1380,1495,1525">2.9.1,</WORD>
<WORD coords="1411,1532,1491,1505,1523">page</WORD>
<WORD coords="1508,1523,1569,1495,1523">107</WORD>
</LINE>
<LINE>
<WORD coords="992,1579,1305,1544,1572">(!(bm&amp;(l«7)))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="987,1628,1054,1594,1622">(bm</WORD>
<WORD coords="1067,1623,1096,1594,1626">&amp;</WORD>
<WORD coords="1110,1629,1253,1594,1625">(1&lt;&lt;7))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="987,1728,1054,1694,1722">(bm</WORD>
<WORD coords="1067,1722,1096,1694,1725">&amp;</WORD>
<WORD coords="1110,1729,1253,1693,1726">(3«5))</WORD>
<WORD coords="1267,1717,1311,1706,1719">==</WORD>
<WORD coords="1324,1723,1343,1694,1723">0</WORD>
</LINE>
<LINE>
<WORD coords="987,1779,1253,1744,1772">(bm&amp;(3«5))</WORD>
<WORD coords="1267,1767,1311,1756,1770">==</WORD>
<WORD coords="1325,1779,1455,1744,1775">(1«5)</WORD>
</LINE>
<LINE>
<WORD coords="987,1828,1253,1793,1821">(bm&amp;(3«5))</WORD>
<WORD coords="1267,1816,1311,1805,1820">==</WORD>
<WORD coords="1325,1828,1455,1792,1824">(1«6)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="987,1927,1054,1893,1921">(bm</WORD>
<WORD coords="1067,1921,1096,1893,1922">&amp;</WORD>
<WORD coords="1110,1925,1175,1893,1923">(31)</WORD>
<WORD coords="1189,1916,1234,1905,1918">==</WORD>
<WORD coords="1247,1922,1266,1893,1922">0</WORD>
</LINE>
<LINE>
<WORD coords="987,1978,1054,1943,1971">(bm</WORD>
<WORD coords="1067,1972,1096,1943,1975">&amp;</WORD>
<WORD coords="1110,1978,1175,1943,1975">(31)</WORD>
<WORD coords="1189,1966,1234,1955,1967">==</WORD>
<WORD coords="1251,1971,1262,1943,1971">1</WORD>
</LINE>
<LINE>
<WORD coords="987,2027,1054,1993,2021">(bm</WORD>
<WORD coords="1067,2021,1096,1993,2022">&amp;</WORD>
<WORD coords="1110,2028,1175,1993,2024">(31)</WORD>
<WORD coords="1189,2016,1234,2005,2017">==</WORD>
<WORD coords="1247,2021,1265,1993,2021">2</WORD>
</LINE>
<LINE>
<WORD coords="987,2077,1054,2043,2071">(bm</WORD>
<WORD coords="1067,2071,1096,2043,2072">&amp;</WORD>
<WORD coords="1110,2075,1175,2043,2073">(31)</WORD>
<WORD coords="1189,2066,1234,2055,2068">==</WORD>
<WORD coords="1248,2072,1264,2043,2072">3</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,2170,347,2144,2170">extern</WORD>
<WORD coords="377,2171,487,2142,2170">uint8_t</WORD>
<WORD coords="517,2175,837,2142,2170">UsbDevConfValue;</WORD>
<WORD coords="848,2171,878,2142,2171">//</WORD>
<WORD coords="896,2171,1016,2148,2170">current</WORD>
<WORD coords="1050,2179,1269,2142,2171">configuration</WORD>
<WORD coords="1304,2179,1342,2142,2175">of</WORD>
<WORD coords="1358,2171,1415,2152,2170">our</WORD>
<WORD coords="1436,2175,1557,2142,2170">device;</WORD>
<WORD coords="1582,2170,1602,2142,2170">0</WORD>
<WORD coords="1625,2170,1649,2143,2170">is</WORD>
<WORD coords="1679,2179,1896,2142,2171">unconfigured</WORD>
<WORD coords="1925,2171,2001,2147,2170">state</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2221,347,2194,2220">extern</WORD>
<WORD coords="378,2221,460,2192,2220">uint8</WORD>
<WORD coords="477,2220,487,2198,2220">t</WORD>
<WORD coords="532,2229,891,2192,2220">AltSettingOflnterface</WORD>
<WORD coords="933,2227,1303,2192,2220">[USBJMaxInterfaces];</WORD>
<WORD coords="1324,2221,1354,2192,2221">//</WORD>
<WORD coords="1381,2221,1501,2197,2220">current</WORD>
<WORD coords="1535,2221,1682,2192,2220">alternate</WORD>
<WORD coords="1722,2229,1831,2193,2220">setting</WORD>
<WORD coords="1864,2229,1902,2192,2224">of</WORD>
<WORD coords="1924,2221,2021,2193,2221">active</WORD>
<WORD coords="2061,2229,2222,2192,2221">interfaces</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,2321,310,2292,2320">void</WORD>
<WORD coords="331,2329,866,2292,2320">UsbProcessSetupRequest(void);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2420,347,2391,2419">//void</WORD>
<WORD coords="370,2428,858,2391,2419">UsbDevWriteDescriptor(void</WORD>
<WORD coords="874,2424,920,2391,2420">*d,</WORD>
<WORD coords="957,2420,1067,2391,2419">uint8j</WORD>
<WORD coords="1098,2418,1113,2400,2419">*</WORD>
<WORD coords="1122,2420,1236,2392,2419">written</WORD>
<WORD coords="1249,2424,1255,2415,2424">,</WORD>
<WORD coords="1293,2420,1404,2391,2419">uint8_t</WORD>
<WORD coords="1437,2428,1631,2391,2419">requested);</WORD>
</LINE>
<LINE>
<WORD coords="241,2470,347,2441,2469">//void</WORD>
<WORD coords="370,2477,789,2441,2469">UsbDevReadBytesN(void</WORD>
<WORD coords="801,2474,843,2450,2470">*c,</WORD>
<WORD coords="867,2470,977,2441,2469">uint8_t</WORD>
<WORD coords="1003,2474,1052,2441,2469">n);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2520,270,2491,2520">//</WORD>
<WORD coords="277,2520,347,2491,2519">void</WORD>
<WORD coords="369,2520,512,2492,2519">WaitZLP</WORD>
<WORD coords="516,2526,804,2491,2519">JFromHost(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2570,270,2541,2570">//</WORD>
<WORD coords="277,2570,347,2541,2569">void</WORD>
<WORD coords="370,2578,903,2541,2569">UsbProcessSetupRequest(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,348,2590,2618">//bool</WORD>
<WORD coords="370,2627,723,2590,2618">UsbSendDescriptorsf</WORD>
<WORD coords="734,2619,844,2590,2618">uint8j</WORD>
<WORD coords="874,2623,937,2590,2618">cdi,</WORD>
<WORD coords="976,2619,1086,2590,2618">uint8_t</WORD>
<WORD coords="1117,2617,1132,2599,2618">*</WORD>
<WORD coords="1141,2619,1255,2591,2618">written</WORD>
<WORD coords="1267,2623,1273,2614,2623">,</WORD>
<WORD coords="1312,2619,1422,2590,2618">uint8j</WORD>
<WORD coords="1456,2627,1650,2590,2618">requested);</WORD>
</LINE>
<LINE>
<WORD coords="241,2669,348,2640,2668">//bool</WORD>
<WORD coords="372,2677,718,2640,2668">UsbDevSetInterface(</WORD>
<WORD coords="733,2669,843,2640,2668">uint8j</WORD>
<WORD coords="879,2677,937,2640,2671">inf,</WORD>
<WORD coords="976,2669,1086,2640,2668">uint8_t</WORD>
<WORD coords="1115,2673,1183,2640,2668">as);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2719,348,2690,2718">//bool</WORD>
<WORD coords="370,2727,796,2690,2719">UsbDevSetConfigurationf</WORD>
<WORD coords="808,2719,918,2690,2718">uint8j</WORD>
<WORD coords="947,2724,996,2690,2719">c);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,349,2789,2818">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0021.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0022.djvu" width="2481">
<PARAM name="PAGE" value="sources_0022.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,132">23</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,525,249,277">AT90USB/usb</WORD>
<WORD coords="528,286,683,254,277">_requests.</WORD>
<WORD coords="689,278,706,259,0">c</WORD>
</LINE>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="292,336,448,299,327">Handling</WORD>
<WORD coords="463,336,501,299,331">of</WORD>
<WORD coords="520,328,591,299,327">USB</WORD>
<WORD coords="604,334,775,299,327">(standard)</WORD>
<WORD coords="804,336,938,304,327">requests</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">22—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,384,447,476">#include</WORD>
<WORD coords="408,478,603,448,476">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="405,526,550,498,526">’’macros.</WORD>
<WORD coords="554,526,591,498,508">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="405,585,628,548,576">”usb_spec.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="405,627,481,598,626">”usb</WORD>
<WORD coords="498,626,610,598,626">drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,676,507,648,676">”usart</WORD>
<WORD coords="524,685,622,648,676">debug</WORD>
<WORD coords="635,676,639,672,676">.</WORD>
<WORD coords="650,676,684,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,735,610,698,726">”usb_api.h”</WORD>
<WORD coords="633,727,663,698,727">//</WORD>
<WORD coords="684,729,945,698,726">EPO-FIFO-Size</WORD>
<WORD coords="957,727,1021,698,726">and</WORD>
<WORD coords="1034,735,1364,698,726">USBJVumlnterfaces</WORD>
</LINE>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,757,421,747,766">”</WORD>
<WORD coords="430,776,486,747,775">usb</WORD>
<WORD coords="491,784,637,752,775">.requests</WORD>
<WORD coords="654,775,703,747,775">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,876,328,847,875">uint8</WORD>
<WORD coords="346,875,356,853,875">t</WORD>
<WORD coords="387,876,696,847,875">UsbDevConfValue</WORD>
<WORD coords="709,870,730,859,873">=</WORD>
<WORD coords="743,884,1129,847,875">UsbUnconfiguredState;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,926,329,897,925">uint8</WORD>
<WORD coords="346,925,356,902,925">t</WORD>
<WORD coords="402,934,761,897,925">AltSettingOflnterface</WORD>
<WORD coords="785,932,826,897,930">[4]</WORD>
<WORD coords="853,920,874,909,927">=</WORD>
<WORD coords="898,935,905,894,926">{</WORD>
<WORD coords="914,934,1353,896,925">UsblnterfaceUnconfigured</WORD>
<WORD coords="1364,928,1369,921,928">,</WORD>
<WORD coords="1399,934,1854,897,925">UsblnterfaceUnconfigured,</WORD>
<WORD coords="1885,934,2324,897,925">UsblnterfaceUnconfigured</WORD>
<WORD coords="2334,928,2340,921,928">,</WORD>
<WORD coords="2379,925,2394,897,925">)</WORD>
</LINE>
<LINE>
<WORD coords="323,984,762,947,975">UsblnterfaceUnconfigured</WORD>
<WORD coords="773,985,799,944,981">};</WORD>
</LINE>
<LINE>
<WORD coords="246,1025,356,996,1024">uint8_t</WORD>
<WORD coords="386,1033,647,996,1024">RemoteWakeup</WORD>
<WORD coords="650,1024,755,996,1024">Active</WORD>
<WORD coords="769,1019,790,1008,1022">=</WORD>
<WORD coords="803,1027,832,996,1026">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1125,339,1096,1124">static</WORD>
<WORD coords="367,1125,441,1096,1124">void</WORD>
<WORD coords="461,1133,953,1096,1124">UsbDevWriteDescriptorlvoid</WORD>
<WORD coords="968,1127,1016,1096,1124">*d,</WORD>
<WORD coords="1048,1125,1160,1096,1124">uint8_t</WORD>
<WORD coords="1191,1123,1206,1105,1123">*</WORD>
<WORD coords="1216,1127,1350,1096,1124">written,</WORD>
<WORD coords="1386,1125,1496,1096,1124">uint8_t</WORD>
<WORD coords="1530,1133,1724,1096,1124">requested);</WORD>
</LINE>
<LINE>
<WORD coords="246,1175,339,1146,1174">static</WORD>
<WORD coords="367,1175,441,1146,1174">void</WORD>
<WORD coords="461,1183,893,1145,1174">UsbDevReadBytesN(void</WORD>
<WORD coords="907,1180,952,1154,1175">*c,</WORD>
<WORD coords="966,1175,1076,1146,1174">uint8_t</WORD>
<WORD coords="1096,1179,1145,1147,1174">n);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1225,339,1196,1224">static</WORD>
<WORD coords="367,1224,439,1196,1224">bool</WORD>
<WORD coords="462,1233,814,1196,1224">UsbSendDescriptors(</WORD>
<WORD coords="824,1225,936,1196,1224">uint8_t</WORD>
<WORD coords="968,1228,1032,1196,1224">cdi,</WORD>
<WORD coords="1069,1225,1151,1196,1224">uint8</WORD>
<WORD coords="1168,1225,1178,1201,1225">t</WORD>
<WORD coords="1210,1223,1225,1205,1223">*</WORD>
<WORD coords="1234,1227,1369,1196,1224">written,</WORD>
<WORD coords="1405,1225,1486,1196,1224">uint8</WORD>
<WORD coords="1505,1224,1515,1202,1224">t</WORD>
<WORD coords="1549,1233,1743,1196,1224">requested);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1324,270,1295,1324">//</WORD>
<WORD coords="293,1324,374,1295,1323">Send</WORD>
<WORD coords="394,1332,565,1295,1323">descriptor</WORD>
<WORD coords="595,1324,624,1301,1323">to</WORD>
<WORD coords="650,1328,732,1295,1323">host,</WORD>
<WORD coords="762,1323,813,1295,1323">but</WORD>
<WORD coords="834,1324,924,1295,1323">don’t</WORD>
<WORD coords="947,1324,1023,1295,1323">send</WORD>
<WORD coords="1040,1324,1121,1305,1323">more</WORD>
<WORD coords="1143,1324,1217,1295,1323">total</WORD>
<WORD coords="1249,1331,1333,1295,1324">bytes</WORD>
<WORD coords="1359,1323,1428,1295,1323">than</WORD>
<WORD coords="1456,1332,1628,1295,1323">requested.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1374,270,1345,1374">//</WORD>
<WORD coords="293,1382,364,1345,1373">Stop</WORD>
<WORD coords="394,1382,422,1345,1377">if</WORD>
<WORD coords="448,1374,528,1345,1373">there</WORD>
<WORD coords="560,1374,585,1346,1373">is</WORD>
<WORD coords="610,1374,628,1355,1374">a</WORD>
<WORD coords="647,1373,718,1346,1373">ZLP</WORD>
<WORD coords="731,1381,742,1345,1373">(</WORD>
<WORD coords="744,1374,833,1345,1373">abort</WORD>
<WORD coords="839,1378,848,1345,1382">)</WORD>
<WORD coords="865,1382,946,1345,1375">from</WORD>
<WORD coords="968,1374,1037,1345,1373">host</WORD>
<WORD coords="1059,1373,1096,1355,1373">or</WORD>
<WORD coords="1123,1382,1150,1345,1377">if</WORD>
<WORD coords="1177,1373,1219,1345,1373">all</WORD>
<WORD coords="1249,1381,1333,1345,1374">bytes</WORD>
<WORD coords="1359,1373,1410,1355,1373">are</WORD>
<WORD coords="1432,1378,1517,1345,1373">send,</WORD>
<WORD coords="1549,1374,1611,1345,1374">else</WORD>
</LINE>
<LINE>
<WORD coords="241,1424,270,1395,1426">//</WORD>
<WORD coords="301,1432,350,1395,1427">fill</WORD>
<WORD coords="385,1424,479,1395,1423">FIFO</WORD>
<WORD coords="491,1424,554,1395,1423">and</WORD>
<WORD coords="564,1424,640,1395,1423">send</WORD>
<WORD coords="650,1424,743,1395,1423">FIFO</WORD>
<WORD coords="756,1431,784,1395,1427">if</WORD>
<WORD coords="796,1424,890,1395,1423">FIFO</WORD>
<WORD coords="903,1424,928,1396,1423">is</WORD>
<WORD coords="949,1432,1010,1395,1425">full</WORD>
<WORD coords="1025,1423,1030,1419,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1474,339,1445,1473">static</WORD>
<WORD coords="367,1474,441,1445,1473">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1532,729,1495,1523">UsbDevWriteDescriptor(void</WORD>
<WORD coords="743,1526,792,1495,1523">*d,</WORD>
<WORD coords="825,1524,936,1495,1523">uint8_t</WORD>
<WORD coords="967,1522,982,1504,1522">*</WORD>
<WORD coords="992,1526,1126,1495,1523">written,</WORD>
<WORD coords="1161,1524,1272,1495,1523">uint8_t</WORD>
<WORD coords="1306,1532,1483,1495,1523">requested)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1582,253,1541,1582">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,1623,394,1594,1622">uint8_t</WORD>
<WORD coords="427,1625,454,1594,1623">1;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1672,287,1644,1672">1</WORD>
<WORD coords="311,1667,332,1656,1669">=</WORD>
<WORD coords="353,1681,510,1644,1672">requested</WORD>
<WORD coords="538,1663,564,1660,1667">—</WORD>
<WORD coords="580,1671,595,1653,1671">*</WORD>
<WORD coords="602,1675,734,1644,1672">written;</WORD>
<WORD coords="764,1673,793,1644,1673">//</WORD>
<WORD coords="817,1673,859,1654,1673">we</WORD>
<WORD coords="872,1681,940,1654,1672">may</WORD>
<WORD coords="952,1673,1028,1644,1672">send</WORD>
<WORD coords="1045,1672,1054,1644,1672">l</WORD>
<WORD coords="1081,1674,1164,1644,1672">bytes</WORD>
<WORD coords="1189,1672,1271,1654,1672">more</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1722,307,1694,1722">if</WORD>
<WORD coords="334,1725,361,1694,1723">(1</WORD>
<WORD coords="389,1724,414,1699,1724">&gt;</WORD>
<WORD coords="431,1728,462,1694,1725">*(</WORD>
<WORD coords="472,1723,553,1694,1722">uint8</WORD>
<WORD coords="559,1723,582,1699,1723">_t</WORD>
<WORD coords="595,1729,662,1694,1722">*)d)</WORD>
<WORD coords="689,1722,698,1694,1722">1</WORD>
<WORD coords="722,1717,743,1706,1719">=</WORD>
<WORD coords="763,1728,794,1694,1725">*(</WORD>
<WORD coords="806,1723,917,1694,1722">uint8_t</WORD>
<WORD coords="931,1729,997,1694,1722">*)d;</WORD>
<WORD coords="1025,1723,1055,1694,1723">//</WORD>
<WORD coords="1084,1731,1143,1694,1722">clip</WORD>
<WORD coords="1174,1723,1203,1699,1722">to</WORD>
<WORD coords="1233,1725,1293,1695,1723">size</WORD>
<WORD coords="1323,1731,1360,1694,1726">of</WORD>
<WORD coords="1385,1722,1441,1694,1722">this</WORD>
<WORD coords="1478,1731,1648,1694,1722">descriptor</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1773,366,1744,1772">while</WORD>
<WORD coords="390,1775,417,1744,1770">(1</WORD>
<WORD coords="426,1763,484,1760,1779">—</WORD>
<WORD coords="488,1779,499,1744,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1831,290,1790,1831">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,1871,344,1842,1871">if</WORD>
<WORD coords="368,1878,923,1842,1871">UsbDevHasReceivedOUT_Data()</WORD>
<WORD coords="933,1872,963,1843,1872">//</WORD>
<WORD coords="970,1871,1040,1844,1871">ZLP</WORD>
<WORD coords="1050,1879,1126,1843,1873">from</WORD>
<WORD coords="1139,1872,1207,1843,1871">host</WORD>
<WORD coords="1293,1872,1383,1843,1871">abort</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1931,327,1890,1931">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1970,366,1952,1970">*</WORD>
<WORD coords="375,1971,491,1943,1971">written</WORD>
<WORD coords="517,1966,538,1955,1968">=</WORD>
<WORD coords="559,1980,734,1943,1971">requested;</WORD>
<WORD coords="764,1972,793,1943,1974">//</WORD>
<WORD coords="816,1980,942,1949,1971">prevent</WORD>
<WORD coords="966,1980,1088,1943,1972">further</WORD>
<WORD coords="1121,1972,1219,1944,1971">writes</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2024,473,1995,2021">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2081,327,2040,2081">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2129,905,2092,2120">UsbDevWriteByte(*(uint8_t*)d++);</WORD>
<WORD coords="931,2121,962,2092,2123">//</WORD>
<WORD coords="981,2129,1038,2098,2120">put</WORD>
<WORD coords="1061,2129,1128,2092,2120">byte</WORD>
<WORD coords="1156,2121,1184,2098,2121">to</WORD>
<WORD coords="1207,2121,1301,2092,2120">FIFO</WORD>
</LINE>
<LINE>
<WORD coords="317,2170,344,2142,2170">if</WORD>
<WORD coords="375,2176,432,2142,2173">(((*</WORD>
<WORD coords="449,2171,565,2141,2170">written</WORD>
<WORD coords="573,2177,652,2142,2172">+=1)</WORD>
<WORD coords="667,2171,697,2142,2171">%</WORD>
<WORD coords="711,2171,779,2142,2170">EPO</WORD>
<WORD coords="783,2171,883,2142,2170">.FIFO</WORD>
<WORD coords="887,2177,983,2142,2170">.Size)</WORD>
<WORD coords="996,2165,1040,2154,2167">==</WORD>
<WORD coords="1053,2177,1085,2142,2175">0)</WORD>
<WORD coords="1101,2171,1131,2142,2171">//</WORD>
<WORD coords="1160,2179,1188,2142,2174">if</WORD>
<WORD coords="1208,2171,1301,2142,2170">FIFO</WORD>
<WORD coords="1310,2179,1371,2142,2172">full</WORD>
</LINE>
<LINE>
<WORD coords="313,2230,327,2189,2230">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2277,764,2242,2270">UsbDevSendControlIn();</WORD>
<WORD coords="783,2271,812,2242,2271">//</WORD>
<WORD coords="834,2271,911,2242,2270">send</WORD>
<WORD coords="927,2271,1020,2242,2270">FIFO</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="353,2321,475,2292,2320">//while</WORD>
<WORD coords="507,2327,545,2292,2325">(!(</WORD>
<WORD coords="557,2327,1110,2292,2320">UsbDevHasReceivedOUTJData()</WORD>
<WORD coords="1127,2330,1141,2289,2330">||</WORD>
<WORD coords="1159,2329,1652,2292,2320">UsbDevTransmitterReadyO));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2369,441,2341,2369">while</WORD>
<WORD coords="469,2375,1005,2341,2369">(!(UEINTX&amp;((l«RXOUTI)</WORD>
<WORD coords="1022,2379,1024,2338,2379">|</WORD>
<WORD coords="1041,2377,1316,2341,2369">(1«TXINI))));</WORD>
<WORD coords="1326,2370,1411,2340,2370">//the</WORD>
<WORD coords="1423,2370,1507,2350,2370">same</WORD>
<WORD coords="1595,2370,1683,2351,2370">saves</WORD>
<WORD coords="1694,2370,1713,2351,2370">a</WORD>
<WORD coords="1719,2378,1782,2341,2372">few</WORD>
<WORD coords="1794,2378,1877,2341,2369">bytes</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2429,328,2388,2429">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,2479,290,2438,2479">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2529,253,2488,2529">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,269,2590,2619">//</WORD>
<WORD coords="292,2619,378,2590,2618">Read</WORD>
<WORD coords="388,2618,405,2600,2618">n</WORD>
<WORD coords="428,2627,511,2590,2618">bytes</WORD>
<WORD coords="529,2627,610,2590,2620">from</WORD>
<WORD coords="628,2623,734,2590,2618">FIFO;</WORD>
<WORD coords="747,2619,840,2590,2618">FIFO</WORD>
<WORD coords="853,2619,964,2590,2618">should</WORD>
<WORD coords="974,2619,1094,2591,2618">contain</WORD>
<WORD coords="1122,2627,1237,2590,2619">exactly</WORD>
<WORD coords="1264,2618,1281,2600,2618">n</WORD>
<WORD coords="1305,2627,1389,2590,2618">bytes</WORD>
</LINE>
<LINE>
<WORD coords="241,2669,270,2640,2669">//</WORD>
<WORD coords="294,2669,422,2640,2668">Limited</WORD>
<WORD coords="446,2668,474,2646,2668">to</WORD>
<WORD coords="498,2668,515,2650,2668">n</WORD>
<WORD coords="538,2670,564,2646,2670">&lt;</WORD>
<WORD coords="577,2668,639,2640,2668">256</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2719,339,2690,2718">static</WORD>
<WORD coords="367,2719,441,2690,2718">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,2777,669,2739,2768">UsbDevReadBytesN(void</WORD>
<WORD coords="683,2773,728,2749,2769">*c,</WORD>
<WORD coords="742,2769,823,2740,2768">uint8</WORD>
<WORD coords="842,2768,852,2746,2768">t</WORD>
<WORD coords="872,2772,905,2741,2768">n)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2828,253,2787,2828">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,2868,382,2840,2868">Assert</WORD>
<WORD coords="390,2877,880,2840,2868">(UsbDevGetByteCountLow()</WORD>
<WORD coords="893,2863,937,2852,2864">==</WORD>
<WORD coords="950,2875,993,2840,2868">n);</WORD>
</LINE>
<LINE>
<WORD coords="274,2918,366,2889,2917">while</WORD>
<WORD coords="390,2924,424,2889,2917">(n</WORD>
<WORD coords="490,2924,501,2889,2924">)</WORD>
<WORD coords="516,2924,767,2889,2917">*(uint8_t*)c++</WORD>
<WORD coords="780,2912,801,2901,2915">=</WORD>
<WORD coords="817,2926,1150,2889,2917">UsbDevReadByte();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2977,253,2936,2977">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="246,3068,339,3039,3067">static</WORD>
<WORD coords="367,3068,441,3039,3067">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,3123,672,3089,3117">WaitZLP_FromHost(void)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0022.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0023.djvu" width="2481">
<PARAM name="PAGE" value="sources_0023.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,132,2420,104,132">24</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,287,253,246,287">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,328,366,299,327">while</WORD>
<WORD coords="392,333,414,299,329">(!</WORD>
<WORD coords="425,334,1004,299,327">UsbDevHasReceivedOUT_Data());</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,378,800,349,377">UsbDcvCIearHasReceivetlOUT</WORD>
<WORD coords="817,384,931,349,377">Data();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,437,253,396,437">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,527,310,498,526">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,585,759,548,576">UsbProcessSetupRequest(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,636,253,595,636">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,677,351,648,676">USB</WORD>
<WORD coords="372,685,617,648,676">DeviceRequest</WORD>
<WORD coords="629,685,691,657,676">req;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,726,374,698,726">union</WORD>
<WORD coords="390,727,420,698,727">//</WORD>
<WORD coords="443,727,486,708,727">we</WORD>
<WORD coords="499,727,555,708,726">can</WORD>
<WORD coords="574,727,626,708,726">use</WORD>
<WORD coords="651,727,699,698,726">the</WORD>
<WORD coords="722,727,805,708,726">same</WORD>
<WORD coords="816,735,905,699,726">piece</WORD>
<WORD coords="930,735,968,698,731">of</WORD>
<WORD coords="984,728,1116,708,726">memory</WORD>
<WORD coords="1121,735,1176,698,729">for</WORD>
<WORD coords="1194,727,1276,698,726">these</WORD>
<WORD coords="1311,735,1495,698,726">descriptors</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,785,290,744,785">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,834,698,797,825">USB_DeviceDescriptor</WORD>
<WORD coords="709,829,841,797,825">devDes;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,876,390,847,875">USB</WORD>
<WORD coords="409,876,474,847,875">Con</WORD>
<WORD coords="479,884,635,847,875">figuration</WORD>
<WORD coords="641,884,814,847,875">Descriptor</WORD>
<WORD coords="834,880,981,847,875">confDes;</WORD>
</LINE>
<LINE>
<WORD coords="311,926,391,897,925">char</WORD>
<WORD coords="409,925,511,898,925">strDes</WORD>
<WORD coords="522,932,613,897,925">[USB</WORD>
<WORD coords="631,934,1098,897,925">MaxStriiigDcscriptorLength</WORD>
<WORD coords="1108,931,1124,898,928">|;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,985,290,944,985">}</WORD>
<WORD coords="310,981,343,956,976">u;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,1025,394,996,1024">uint8_t</WORD>
<WORD coords="423,1029,455,996,1025">b;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1083,719,1046,1074">UsbDevSelectEndpoint(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1133,725,1096,1124">UsbDevReadBytesN(&amp;req,</WORD>
<WORD coords="740,1131,781,1096,1128">8);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,1175,308,1146,1175">//</WORD>
<WORD coords="332,1175,475,1146,1174">Caution:</WORD>
<WORD coords="500,1175,545,1147,1174">We</WORD>
<WORD coords="558,1175,634,1146,1174">have</WORD>
<WORD coords="650,1175,680,1151,1174">to</WORD>
<WORD coords="705,1183,794,1146,1174">delay</WORD>
<WORD coords="819,1175,867,1146,1174">the</WORD>
<WORD coords="888,1183,1260,1146,1174">AcknowledgeSETUPf)</WORD>
<WORD coords="1274,1183,1302,1146,1178">if</WORD>
<WORD coords="1310,1183,1429,1151,1174">request</WORD>
<WORD coords="1457,1174,1481,1147,1174">is</WORD>
<WORD coords="1507,1175,1525,1156,1175">a</WORD>
<WORD coords="1544,1174,1562,1146,1174">3</WORD>
<WORD coords="1585,1183,1670,1152,1174">stage</WORD>
<WORD coords="1677,1165,1703,1162,1174">—</WORD>
<WORD coords="1710,1183,1841,1146,1175">transfer</WORD>
<WORD coords="1863,1175,1932,1146,1174">with</WORD>
<WORD coords="1957,1175,2009,1152,1174">out</WORD>
<WORD coords="2030,1175,2101,1146,1174">data</WORD>
</LINE>
<LINE>
<WORD coords="278,1225,308,1196,1225">//</WORD>
<WORD coords="330,1225,461,1196,1224">because</WORD>
<WORD coords="482,1225,551,1196,1224">host</WORD>
<WORD coords="573,1233,641,1206,1224">may</WORD>
<WORD coords="651,1225,729,1196,1224">send</WORD>
<WORD coords="743,1224,795,1202,1224">out</WORD>
<WORD coords="816,1225,887,1196,1224">data</WORD>
<WORD coords="911,1233,1112,1196,1224">immediately</WORD>
<WORD coords="1141,1233,1219,1196,1226">after</WORD>
<WORD coords="1245,1225,1304,1206,1224">our</WORD>
<WORD coords="1319,1233,1533,1196,1224">acknowledge</WORD>
<WORD coords="1545,1225,1608,1196,1224">and</WORD>
<WORD coords="1618,1233,1687,1206,1224">may</WORD>
<WORD coords="1698,1225,1751,1201,1224">not</WORD>
<WORD coords="1770,1225,1821,1206,1225">see</WORD>
<WORD coords="1843,1225,1901,1206,1224">our</WORD>
<WORD coords="1929,1225,1999,1196,1224">stall</WORD>
<WORD coords="2036,1233,2175,1196,1224">request!</WORD>
</LINE>
<LINE>
<WORD coords="280,1273,307,1245,1273">if</WORD>
<WORD coords="338,1279,376,1245,1273">(!(</WORD>
<WORD coords="387,1282,614,1245,1273">req.bRequest</WORD>
<WORD coords="629,1268,673,1257,1270">==</WORD>
<WORD coords="687,1282,1339,1245,1273">USB_StdDevReqSET_DESCRIPTOR))</WORD>
<WORD coords="1349,1274,1397,1245,1273">///</WORD>
<WORD coords="1410,1273,1428,1245,1273">3</WORD>
<WORD coords="1441,1282,1556,1250,1273">stage—</WORD>
<WORD coords="1560,1282,1691,1245,1274">transfer</WORD>
<WORD coords="1702,1274,1770,1245,1273">with</WORD>
<WORD coords="1783,1273,1835,1251,1273">out</WORD>
<WORD coords="1845,1274,1917,1245,1273">data</WORD>
</LINE>
<LINE>
<WORD coords="312,1332,838,1295,1323">UsbDevAcknowledgeSETUP();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1382,794,1345,1373">UsbDumpSetupRequest(&amp;req);</WORD>
</LINE>
<LINE>
<WORD coords="280,1423,307,1395,1423">if</WORD>
<WORD coords="334,1432,1072,1395,1423">(UsblsVendorRequest(req.bmRequestType))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1484,291,1442,1484">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1532,670,1495,1523">ReqDebugC’Received</WORD>
<WORD coords="685,1532,1044,1495,1523">UsbVendorRequest”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1581,948,1544,1572">UsbDevProcessVendorRequest(&amp;req);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,1623,339,1594,1623">U</WORD>
<WORD coords="342,1623,465,1594,1622">sbDevS</WORD>
<WORD coords="470,1631,711,1594,1622">electEndpoint(</WORD>
<WORD coords="714,1629,746,1594,1626">0)</WORD>
<WORD coords="751,1627,757,1603,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1677,727,1644,1672">UsbDevSendControlInO;</WORD>
<WORD coords="745,1673,775,1644,1673">//</WORD>
<WORD coords="797,1673,873,1644,1672">send</WORD>
<WORD coords="890,1672,961,1645,1672">ZLP</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1732,290,1691,1732">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1773,341,1744,1772">else</WORD>
<WORD coords="373,1772,400,1744,1772">if</WORD>
<WORD coords="427,1781,887,1744,1772">(UsbIsStandardRequest(req</WORD>
<WORD coords="897,1772,901,1768,1772">.</WORD>
<WORD coords="908,1781,1203,1744,1772">bmRequestType))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1831,290,1790,1831">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1880,670,1843,1871">ReqDebugC’Received</WORD>
<WORD coords="685,1880,1072,1843,1871">UsbStandardRequest”);</WORD>
</LINE>
<LINE>
<WORD coords="311,1922,422,1893,1921">switch</WORD>
<WORD coords="446,1930,701,1893,1921">(req.bRequest)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1981,327,1940,1981">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2022,421,2001,2021">case</WORD>
<WORD coords="444,2022,519,1993,2021">USB</WORD>
<WORD coords="539,2030,808,1993,2021">StdDcvRcqGET</WORD>
<WORD coords="825,2022,979,1993,2021">STATUS:</WORD>
<WORD coords="991,2022,1021,1993,2021">//</WORD>
<WORD coords="1027,2021,1046,1993,2022">3</WORD>
<WORD coords="1059,2030,1160,1998,2022">stages</WORD>
<WORD coords="1172,2022,1241,1993,2021">with</WORD>
<WORD coords="1254,2021,1272,1993,2021">2</WORD>
<WORD coords="1285,2029,1352,1993,2022">byte</WORD>
<WORD coords="1364,2022,1434,1994,2021">IN—</WORD>
<WORD coords="1437,2022,1509,1993,2021">data</WORD>
<WORD coords="1597,2022,1650,1998,2021">not</WORD>
<WORD coords="1662,2022,1758,1993,2021">tested</WORD>
<WORD coords="1770,2030,1820,1998,2021">yet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2080,1165,2043,2071">ReqDebug(”USB_StdDevReqGET_STATUS”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2120,494,2092,2120">Assert</WORD>
<WORD coords="502,2123,512,2092,2120">(</WORD>
<WORD coords="517,2129,570,2101,2120">req</WORD>
<WORD coords="579,2120,583,2116,2120">.</WORD>
<WORD coords="592,2120,620,2101,2120">w</WORD>
<WORD coords="623,2120,713,2092,2120">Value</WORD>
<WORD coords="726,2115,771,2104,2117">==</WORD>
<WORD coords="784,2127,815,2092,2124">0)</WORD>
<WORD coords="823,2125,829,2101,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2170,494,2142,2170">Assert</WORD>
<WORD coords="502,2173,512,2142,2170">(</WORD>
<WORD coords="517,2179,570,2151,2170">req</WORD>
<WORD coords="579,2170,583,2166,2170">.</WORD>
<WORD coords="592,2179,737,2142,2170">wLength</WORD>
<WORD coords="750,2165,794,2154,2166">==</WORD>
<WORD coords="807,2177,849,2142,2174">2);</WORD>
</LINE>
<LINE>
<WORD coords="386,2221,497,2192,2220">switch</WORD>
<WORD coords="520,2223,530,2193,2220">(</WORD>
<WORD coords="537,2229,588,2201,2220">req</WORD>
<WORD coords="598,2220,602,2216,2220">.</WORD>
<WORD coords="609,2229,890,2192,2220">bmRequestType)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2280,399,2240,2280">&lt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2321,495,2300,2320">case</WORD>
<WORD coords="521,2321,587,2292,2320">128:</WORD>
<WORD coords="614,2321,644,2292,2321">//</WORD>
<WORD coords="670,2321,791,2292,2320">device:</WORD>
<WORD coords="822,2329,889,2292,2322">Self</WORD>
<WORD coords="894,2321,1056,2293,2320">—Power—</WORD>
<WORD coords="1059,2325,1114,2293,2320">Bit,</WORD>
<WORD coords="1128,2321,1282,2293,2320">Remote—</WORD>
<WORD coords="1289,2329,1442,2292,2320">Wakeup—</WORD>
<WORD coords="1447,2320,1496,2293,2320">Bit</WORD>
<WORD coords="1507,2321,1572,2292,2321">set?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="464,2369,568,2341,2369">Assert</WORD>
<WORD coords="576,2372,586,2342,2369">(</WORD>
<WORD coords="593,2378,644,2350,2369">req</WORD>
<WORD coords="654,2369,658,2365,2369">.</WORD>
<WORD coords="666,2369,787,2341,2369">wlndex</WORD>
<WORD coords="801,2364,845,2353,2365">==</WORD>
<WORD coords="858,2376,890,2341,2372">0)</WORD>
<WORD coords="897,2372,903,2350,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2419,493,2391,2419">if</WORD>
<WORD coords="520,2425,845,2391,2419">(UsbDevConfValue</WORD>
<WORD coords="858,2414,903,2403,2416">==</WORD>
<WORD coords="917,2428,1305,2391,2419">UsbUnconfiguredState)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2479,477,2438,2479">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2528,802,2491,2519">ReqDebugC’Error:</WORD>
<WORD coords="817,2528,1182,2491,2519">USB.StdDevReqGET</WORD>
<WORD coords="1185,2520,1343,2491,2519">.STATUS</WORD>
<WORD coords="1357,2519,1462,2491,2519">device</WORD>
<WORD coords="1475,2519,1505,2491,2519">in</WORD>
<WORD coords="1516,2528,1735,2491,2519">unconfigured</WORD>
<WORD coords="1748,2526,1877,2491,2519">state!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,2578,1063,2540,2569">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2624,623,2592,2618">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2678,477,2637,2678">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="465,2727,1225,2690,2718">UsbGetConfigurationDescriptorl&amp;u.confDes,</WORD>
<WORD coords="1245,2725,1580,2690,2718">UsbDevConfValue);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2768,493,2740,2768">if</WORD>
<WORD coords="520,2774,566,2740,2768">(u.</WORD>
<WORD coords="573,2769,719,2740,2768">confDes.</WORD>
<WORD coords="724,2768,940,2740,2768">bmAttributes</WORD>
<WORD coords="966,2775,1260,2740,2768">&amp;(l&lt;&lt;6))b=l;</WORD>
<WORD coords="1288,2769,1350,2740,2768">else</WORD>
<WORD coords="1375,2768,1394,2740,2768">b</WORD>
<WORD coords="1414,2763,1435,2752,2766">=</WORD>
<WORD coords="1453,2773,1482,2740,2771">0;</WORD>
<WORD coords="1511,2769,1541,2740,2769">//</WORD>
<WORD coords="1572,2777,1635,2740,2770">self</WORD>
<WORD coords="1652,2777,1817,2740,2768">powered?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2818,493,2790,2818">if</WORD>
<WORD coords="523,2824,585,2790,2818">((u.</WORD>
<WORD coords="592,2818,736,2790,2818">confDes.</WORD>
<WORD coords="743,2818,959,2790,2818">bmAttributes</WORD>
<WORD coords="985,2819,1014,2790,2822">&amp;</WORD>
<WORD coords="1028,2825,1171,2789,2822">(1&lt;&lt;5))</WORD>
<WORD coords="1186,2818,1247,2790,2819">&amp;&amp;</WORD>
<WORD coords="1260,2827,1671,2790,2818">(RemoteWakeupActive))</WORD>
<WORD coords="1683,2819,1702,2790,2819">b</WORD>
<WORD coords="1719,2828,1748,2787,2821">|=</WORD>
<WORD coords="1762,2824,1789,2790,2820">(1</WORD>
<WORD coords="1798,2820,1855,2795,2820">&lt;&lt;</WORD>
<WORD coords="1864,2825,1902,2790,2822">1);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2877,825,2840,2868">UsbDevWriteByte(b);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2920,572,2889,2917">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2968,495,2947,2967">case</WORD>
<WORD coords="521,2968,587,2939,2967">129:</WORD>
<WORD coords="614,2968,644,2939,2968">//</WORD>
<WORD coords="678,2976,822,2939,2968">interface</WORD>
<WORD coords="838,2967,847,2949,2967">:</WORD>
<WORD coords="869,2976,990,2939,2967">Always</WORD>
<WORD coords="1008,2968,1106,2944,2967">return</WORD>
<WORD coords="1133,2967,1153,2939,2967">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,3017,493,2989,3017">if</WORD>
<WORD coords="520,3023,845,2989,3017">(UsbDevConfValue</WORD>
<WORD coords="858,3012,903,3001,3014">==</WORD>
<WORD coords="917,3026,1305,2989,3017">UsbUnconfiguredState)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,3077,477,3036,3077">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,3126,802,3089,3117">ReqDebugC’Error:</WORD>
<WORD coords="818,3126,1182,3089,3117">USB_StdDevReqGET</WORD>
<WORD coords="1185,3118,1343,3089,3117">.STATUS</WORD>
<WORD coords="1357,3117,1499,3089,3117">interface</WORD>
<WORD coords="1512,3117,1543,3089,3117">in</WORD>
<WORD coords="1555,3126,1772,3089,3117">unconfigured</WORD>
<WORD coords="1785,3124,1915,3089,3117">state!”);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0023.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0024.djvu" width="2481">
<PARAM name="PAGE" value="sources_0024.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,132">25</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="498,286,1063,248,277">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,330,623,301,327">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,387,477,346,387">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="465,428,495,399,427">//</WORD>
<WORD coords="499,428,606,399,427">Assert</WORD>
<WORD coords="614,436,822,399,427">(req.wlndex</WORD>
<WORD coords="837,429,863,405,429">&lt;</WORD>
<WORD coords="880,428,951,399,427">USB</WORD>
<WORD coords="955,436,1179,399,428">Jnterfaces[U</WORD>
<WORD coords="1182,436,1498,399,427">sbDevConjValue]);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,485,825,448,476">UsbDevWriteByte(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,532,572,498,526">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,577,495,556,576">case</WORD>
<WORD coords="521,577,587,548,576">130:</WORD>
<WORD coords="614,577,644,548,577">//</WORD>
<WORD coords="668,585,828,548,576">endpoint:</WORD>
<WORD coords="859,576,884,549,576">is</WORD>
<WORD coords="918,576,974,548,576">this</WORD>
<WORD coords="1005,585,1149,548,576">endpoint</WORD>
<WORD coords="1181,577,1320,548,576">stalled?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="464,626,568,598,626">Assert</WORD>
<WORD coords="579,635,910,598,626">((MSB(req.wIndex)</WORD>
<WORD coords="923,621,968,610,623">==</WORD>
<WORD coords="980,633,1037,598,631">0));</WORD>
</LINE>
<LINE>
<WORD coords="460,677,479,648,677">b</WORD>
<WORD coords="498,671,519,660,673">=</WORD>
<WORD coords="536,685,824,648,676">LSB(req.wIndex)</WORD>
<WORD coords="838,677,867,648,677">&amp;</WORD>
<WORD coords="884,679,950,648,677">127;</WORD>
<WORD coords="969,677,999,648,677">//</WORD>
<WORD coords="1023,685,1168,648,676">endpoint</WORD>
<WORD coords="1189,676,1316,648,676">number</WORD>
</LINE>
<LINE>
<WORD coords="466,726,493,697,726">if</WORD>
<WORD coords="520,732,554,698,726">(b</WORD>
<WORD coords="576,728,626,703,725">&gt;=</WORD>
<WORD coords="639,727,667,698,727">U</WORD>
<WORD coords="670,735,1078,697,726">sbNumEndpointsAT90U</WORD>
<WORD coords="1081,733,1141,698,726">SB)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,785,477,744,785">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,834,802,797,825">ReqDebugC’Error:</WORD>
<WORD coords="817,834,1182,797,825">USB_StdDevReqGET</WORD>
<WORD coords="1185,826,1343,797,825">.STATUS</WORD>
<WORD coords="1357,834,1500,797,825">endpoint</WORD>
<WORD coords="1513,825,1586,797,825">does</WORD>
<WORD coords="1599,825,1651,802,825">not</WORD>
<WORD coords="1663,832,1795,797,825">exist!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,884,1063,846,875">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,928,623,899,925">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,985,477,944,985">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="466,1024,493,995,1024">if</WORD>
<WORD coords="523,1030,864,996,1024">((UsbDevConfValue</WORD>
<WORD coords="877,1019,922,1008,1021">==</WORD>
<WORD coords="935,1033,1324,996,1024">UsbUnconfiguredState)</WORD>
<WORD coords="1338,1025,1399,996,1026">&amp;&amp;</WORD>
<WORD coords="1413,1029,1445,996,1025">(b</WORD>
<WORD coords="1459,1026,1485,1002,1026">&gt;</WORD>
<WORD coords="1499,1031,1545,996,1029">0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1084,477,1043,1084">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1133,802,1096,1124">ReqDebugC’Error:</WORD>
<WORD coords="818,1133,1182,1096,1124">USB.StdDevReqGET</WORD>
<WORD coords="1185,1125,1343,1096,1124">.STATUS</WORD>
<WORD coords="1357,1124,1405,1096,1124">for</WORD>
<WORD coords="1416,1133,1452,1105,1124">ep</WORD>
<WORD coords="1468,1126,1494,1102,1126">&gt;</WORD>
<WORD coords="1508,1125,1527,1096,1125">0</WORD>
<WORD coords="1539,1124,1570,1096,1124">in</WORD>
<WORD coords="1581,1133,1799,1095,1124">unconfigured</WORD>
<WORD coords="1812,1131,1942,1096,1124">state!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,1183,1063,1146,1174">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1227,623,1198,1224">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1283,477,1242,1283">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1332,906,1295,1323">UsbDevSelectEndpoint(b);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,1373,493,1345,1373">if</WORD>
<WORD coords="520,1379,530,1345,1374">(</WORD>
<WORD coords="537,1382,966,1345,1373">UsbDevIsEndpointStalled</WORD>
<WORD coords="973,1380,996,1345,1378">()</WORD>
<WORD coords="1005,1380,1016,1345,1380">)</WORD>
<WORD coords="1044,1374,1074,1345,1374">//</WORD>
<WORD coords="1106,1374,1217,1345,1373">stalled</WORD>
<WORD coords="1252,1373,1295,1345,1373">bit</WORD>
<WORD coords="1326,1374,1351,1346,1373">is</WORD>
<WORD coords="1376,1374,1501,1345,1373">marked</WORD>
<WORD coords="1514,1374,1628,1346,1373">write—</WORD>
<WORD coords="1633,1382,1703,1345,1373">only</WORD>
<WORD coords="1717,1373,1744,1346,1373">in</WORD>
<WORD coords="1773,1374,1932,1345,1373">datasheet</WORD>
<WORD coords="2030,1374,2070,1345,1374">do</WORD>
<WORD coords="2082,1374,2126,1355,1374">we</WORD>
<WORD coords="2139,1374,2217,1345,1373">need</WORD>
<WORD coords="2227,1373,2245,1355,1373">a</WORD>
<WORD coords="2271,1373,2286,1343,1373">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="545,1432,685,1401,1423">separate</WORD>
<WORD coords="715,1424,791,1400,1423">state</WORD>
<WORD coords="826,1424,961,1395,1423">variable</WORD>
<WORD coords="973,1424,988,1395,1424">?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="499,1474,630,1445,1473">UsbDev</WORD>
<WORD coords="633,1482,773,1445,1473">WriteBy</WORD>
<WORD coords="776,1476,817,1445,1474">tel</WORD>
<WORD coords="824,1473,835,1445,1476">1</WORD>
<WORD coords="841,1480,852,1445,1479">)</WORD>
<WORD coords="857,1479,863,1454,0">;</WORD>
</LINE>
<LINE>
<WORD coords="466,1524,528,1495,1523">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1573,526,1544,1573">U</WORD>
<WORD coords="529,1572,630,1544,1572">sbDev</WORD>
<WORD coords="633,1581,774,1544,1572">WriteBy</WORD>
<WORD coords="776,1577,852,1544,1572">te(0)</WORD>
<WORD coords="857,1578,863,1553,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1631,906,1594,1622">UsbDevSelectEndpoint(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1678,572,1644,1672">break;</WORD>
</LINE>
<LINE>
<WORD coords="427,1723,549,1693,1722">default</WORD>
<WORD coords="560,1722,565,1703,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1781,764,1744,1772">ReqDebugC’Error;</WORD>
<WORD coords="780,1781,1305,1744,1772">USB.StdDevReqGET.STATUS</WORD>
<WORD coords="1313,1779,1363,1744,1770">!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1830,1025,1793,1821">UsbDevRequestStallHandshakel);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1874,585,1845,1871">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1931,402,1890,1931">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1980,750,1943,1971">UsbDevWriteByte(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2028,801,1993,2021">UsbDevSendControlIn();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2072,447,2043,2071">Wai</WORD>
<WORD coords="452,2072,536,2043,2071">tZLP</WORD>
<WORD coords="539,2072,639,2043,2071">.From</WORD>
<WORD coords="642,2078,745,2043,2071">Host()</WORD>
<WORD coords="750,2077,756,2052,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2123,497,2092,2120">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2171,421,2150,2170">case</WORD>
<WORD coords="442,2179,1068,2142,2170">USB.StdDevReqCLEARJFEATURE;</WORD>
<WORD coords="1080,2171,1110,2142,2170">//</WORD>
<WORD coords="1116,2170,1135,2142,2170">2</WORD>
<WORD coords="1148,2179,1249,2147,2170">stages</WORD>
<WORD coords="1262,2177,1314,2142,2170">(no</WORD>
<WORD coords="1327,2171,1429,2142,2170">data—</WORD>
<WORD coords="1433,2179,1531,2142,2170">stage)</WORD>
<WORD coords="1619,2171,1671,2147,2170">not</WORD>
<WORD coords="1683,2171,1779,2142,2170">tested</WORD>
<WORD coords="1788,2179,1837,2147,2171">yet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2221,421,2200,2220">case</WORD>
<WORD coords="442,2229,1006,2192,2220">USB_StdDevReqSET_FEATURE:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2279,1340,2242,2270">ReqDebug(”USB_StdDevReqCLEAR/SETJFEATURE”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2320,494,2292,2320">Assert</WORD>
<WORD coords="502,2324,512,2292,2320">(</WORD>
<WORD coords="517,2329,570,2301,2320">req</WORD>
<WORD coords="579,2320,583,2316,2320">.</WORD>
<WORD coords="592,2329,737,2292,2320">wLength</WORD>
<WORD coords="750,2315,794,2304,2316">==</WORD>
<WORD coords="807,2327,849,2292,2324">0);</WORD>
</LINE>
<LINE>
<WORD coords="386,2370,497,2340,2369">switch</WORD>
<WORD coords="539,2372,549,2342,2372">1</WORD>
<WORD coords="556,2378,607,2350,2369">req</WORD>
<WORD coords="616,2369,620,2365,2369">.</WORD>
<WORD coords="629,2378,909,2341,2369">bmRequestType)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2429,402,2388,2429">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2470,495,2449,2469">case</WORD>
<WORD coords="519,2470,547,2441,2469">0:</WORD>
<WORD coords="577,2470,607,2441,2470">//</WORD>
<WORD coords="632,2470,735,2441,2470">device</WORD>
</LINE>
<LINE>
<WORD coords="464,2519,568,2491,2519">Assert</WORD>
<WORD coords="576,2522,586,2492,2522">1</WORD>
<WORD coords="592,2528,644,2500,2519">req</WORD>
<WORD coords="654,2519,658,2515,2519">.</WORD>
<WORD coords="666,2519,788,2491,2519">wlndex</WORD>
<WORD coords="801,2514,845,2503,2516">==</WORD>
<WORD coords="858,2526,890,2491,2523">0)</WORD>
<WORD coords="897,2524,903,2500,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2569,493,2541,2569">if</WORD>
<WORD coords="520,2575,530,2541,2569">(</WORD>
<WORD coords="537,2578,602,2550,2569">req.</WORD>
<WORD coords="610,2569,638,2550,2569">w</WORD>
<WORD coords="641,2569,732,2541,2569">Value</WORD>
<WORD coords="749,2569,780,2541,2567">!=</WORD>
<WORD coords="803,2576,830,2541,2573">1)</WORD>
<WORD coords="857,2570,887,2541,2570">//</WORD>
<WORD coords="910,2570,1036,2542,2569">Feature</WORD>
<WORD coords="1068,2570,1199,2541,2569">selector</WORD>
<WORD coords="1227,2570,1265,2541,2567">!=</WORD>
<WORD coords="1282,2570,1430,2541,2569">DEVICE</WORD>
<WORD coords="1432,2570,1608,2541,2569">.REMOTE</WORD>
<WORD coords="1608,2570,1787,2541,2569">J/VAKEUP</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2628,477,2587,2628">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2677,802,2640,2668">ReqDebugC’Error:</WORD>
<WORD coords="818,2677,1520,2640,2668">USB_StdDevReqSET/CLEAR_FEATURE</WORD>
<WORD coords="1532,2677,1635,2649,2668">wrong</WORD>
<WORD coords="1648,2668,1761,2640,2668">feature</WORD>
<WORD coords="1775,2668,1902,2640,2668">selector</WORD>
<WORD coords="1913,2668,1961,2640,2668">for</WORD>
<WORD coords="1972,2675,2133,2640,2668">device!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,2727,1063,2690,2718">UsbDevRequestStallHandshakel);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2771,623,2742,2768">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2828,477,2787,2828">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2868,493,2840,2868">if</WORD>
<WORD coords="520,2877,588,2840,2868">(req</WORD>
<WORD coords="598,2877,762,2840,2868">.bRequest</WORD>
<WORD coords="778,2863,823,2852,2865">==</WORD>
<WORD coords="837,2877,1466,2840,2868">USB_StdDevReqCLEAR_FEATURE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2928,479,2886,2928">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2976,868,2939,2967">RemoteWakeupActive</WORD>
<WORD coords="881,2962,902,2951,2965">=</WORD>
<WORD coords="915,2970,944,2939,2969">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,3027,477,2986,3027">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="466,3068,528,3039,3067">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,3127,477,3086,3127">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0024.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0025.djvu" width="2481">
<PARAM name="PAGE" value="sources_0025.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2419,104,132">26</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="503,286,1263,249,277">UsbGetConfigurationDescriptor(&amp;u.confDes,</WORD>
<WORD coords="1283,284,1617,249,277">UsbDevConfValue);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="504,327,531,299,327">if</WORD>
<WORD coords="563,333,1015,299,327">(!(u.confDes.bmAttributes</WORD>
<WORD coords="1041,334,1283,299,330">&amp;(1&lt;&lt;5)))//</WORD>
<WORD coords="1300,328,1454,300,327">Remote—</WORD>
<WORD coords="1460,336,1586,299,327">Wakeup</WORD>
<WORD coords="1598,336,1724,305,327">support</WORD>
<WORD coords="1735,328,1781,304,327">set</WORD>
<WORD coords="1793,327,1821,300,327">in</WORD>
<WORD coords="1853,336,2074,298,329">configuration</WORD>
<WORD coords="2113,336,2311,299,327">descriptor?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="500,387,514,346,387">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="536,436,839,399,427">ReqDebugC’Error:</WORD>
<WORD coords="856,428,931,399,427">USB</WORD>
<WORD coords="951,436,1213,399,427">StdDcvRcqSET</WORD>
<WORD coords="1227,432,1418,399,427">FEATURE,</WORD>
<WORD coords="1432,427,1589,399,427">Remote—</WORD>
<WORD coords="1593,436,1725,399,427">Wakeup</WORD>
<WORD coords="1738,427,1790,404,427">not</WORD>
<WORD coords="1803,436,2019,399,427">supported!”);</WORD>
</LINE>
<LINE>
<WORD coords="536,485,1100,448,476">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="536,529,660,500,526">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="505,585,510,548,585">I</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,635,868,598,626">RemoteWakeupActive</WORD>
<WORD coords="881,621,902,610,623">=</WORD>
<WORD coords="920,626,930,598,628">1</WORD>
<WORD coords="938,631,944,607,631">;</WORD>
<WORD coords="956,627,986,598,627">//</WORD>
<WORD coords="1004,626,1074,598,626">here</WORD>
<WORD coords="1097,627,1140,608,627">we</WORD>
<WORD coords="1154,635,1224,598,626">only</WORD>
<WORD coords="1250,627,1296,603,626">set</WORD>
<WORD coords="1320,627,1338,608,627">a</WORD>
<WORD coords="1357,635,1424,598,631">flag</WORD>
<WORD coords="1526,635,1564,598,631">of</WORD>
<WORD coords="1568,627,1676,608,626">course</WORD>
<WORD coords="1702,626,1759,598,626">this</WORD>
<WORD coords="1793,626,1818,599,626">is</WORD>
<WORD coords="1845,627,1897,603,626">not</WORD>
<WORD coords="1918,635,2037,598,626">enough</WORD>
<WORD coords="2053,627,2082,603,626">to</WORD>
<WORD coords="2117,627,2278,599,626">reactivate</WORD>
<WORD coords="2314,627,2361,598,626">the</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="605,685,742,648,676">sleeping</WORD>
<WORD coords="768,676,823,648,676">bus</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,736,477,695,736">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,778,572,747,775">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,825,495,805,825">case</WORD>
<WORD coords="523,826,547,797,825">1:</WORD>
<WORD coords="577,826,607,797,826">//</WORD>
<WORD coords="640,834,784,797,826">interface</WORD>
<WORD coords="891,834,1016,797,825">nothing</WORD>
<WORD coords="1028,826,1057,802,825">to</WORD>
<WORD coords="1077,826,1126,797,826">do.</WORD>
<WORD coords="1152,826,1268,797,825">Should</WORD>
<WORD coords="1284,826,1326,807,826">we</WORD>
<WORD coords="1345,834,1464,802,825">request</WORD>
<WORD coords="1488,826,1506,807,826">a</WORD>
<WORD coords="1537,826,1607,797,825">stall</WORD>
<WORD coords="1638,826,1834,797,825">handshake?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,884,764,847,875">ReqDebugC’Error:</WORD>
<WORD coords="782,876,856,847,875">USB</WORD>
<WORD coords="875,884,1285,847,875">StdDevReqSET/CLEAR</WORD>
<WORD coords="1304,876,1482,847,875">FEATURE</WORD>
<WORD coords="1494,875,1566,847,875">with</WORD>
<WORD coords="1578,875,1710,847,875">receiver</WORD>
<WORD coords="1721,870,1765,859,871">==</WORD>
<WORD coords="1778,882,1977,847,875">interface!”);</WORD>
</LINE>
<LINE>
<WORD coords="461,934,1025,897,925">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,978,585,949,975">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1027,572,996,1024">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1075,495,1054,1074">case</WORD>
<WORD coords="519,1075,547,1046,1074">2:</WORD>
<WORD coords="577,1075,607,1046,1075">//</WORD>
<WORD coords="631,1083,775,1046,1074">endpoint</WORD>
</LINE>
<LINE>
<WORD coords="464,1124,568,1096,1124">Assert</WORD>
<WORD coords="576,1133,891,1096,1124">(MSB(req.wIndex)</WORD>
<WORD coords="905,1119,949,1108,1121">==</WORD>
<WORD coords="962,1131,1004,1096,1128">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="466,1174,493,1145,1174">if</WORD>
<WORD coords="520,1183,732,1146,1174">(req.wValue</WORD>
<WORD coords="749,1174,780,1146,1172">!=</WORD>
<WORD coords="799,1181,830,1146,1179">0)</WORD>
<WORD coords="857,1175,887,1146,1175">//</WORD>
<WORD coords="911,1175,1036,1147,1174">Feature</WORD>
<WORD coords="1068,1175,1199,1146,1174">selector</WORD>
<WORD coords="1228,1174,1265,1147,1172">!=</WORD>
<WORD coords="1283,1175,1488,1146,1174">ENDPOINT</WORD>
<WORD coords="1488,1175,1613,1146,1174">STALL</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1234,477,1193,1234">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1282,802,1245,1273">ReqDebugC’Error:</WORD>
<WORD coords="817,1282,1520,1245,1273">USB_StdDevReqSET/CLEAR_FEATURE</WORD>
<WORD coords="1532,1282,1635,1254,1273">wrong</WORD>
<WORD coords="1648,1273,1761,1245,1273">feature</WORD>
<WORD coords="1775,1273,1902,1245,1273">selector</WORD>
<WORD coords="1913,1273,1961,1245,1273">for</WORD>
<WORD coords="1972,1282,2171,1245,1273">endpoint!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,1332,1063,1295,1323">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1376,623,1347,1373">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1433,477,1392,1433">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="460,1473,479,1445,1473">b</WORD>
<WORD coords="498,1468,519,1457,1470">=</WORD>
<WORD coords="536,1482,824,1445,1473">LSB(req.wIndex)</WORD>
<WORD coords="838,1474,867,1445,1474">&amp;</WORD>
<WORD coords="884,1476,950,1445,1474">127;</WORD>
<WORD coords="969,1474,999,1445,1474">//</WORD>
<WORD coords="1023,1482,1168,1445,1473">endpoint</WORD>
<WORD coords="1191,1474,1316,1445,1473">address</WORD>
</LINE>
<LINE>
<WORD coords="467,1523,493,1495,1523">if</WORD>
<WORD coords="520,1529,554,1495,1523">(b</WORD>
<WORD coords="576,1525,626,1500,1522">&gt;=</WORD>
<WORD coords="639,1524,667,1495,1524">U</WORD>
<WORD coords="670,1532,1078,1494,1523">sbNumEndpointsAT90U</WORD>
<WORD coords="1081,1530,1141,1495,1523">SB)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1582,477,1541,1582">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1631,802,1594,1622">ReqDebugC’Error:</WORD>
<WORD coords="817,1631,1520,1594,1622">USB_StdDevReqSET/CLEAR_FEATURE</WORD>
<WORD coords="1532,1631,1675,1594,1622">endpoint</WORD>
<WORD coords="1687,1622,1760,1594,1622">does</WORD>
<WORD coords="1774,1622,1825,1599,1622">not</WORD>
<WORD coords="1837,1629,1969,1594,1622">exist!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,1681,1063,1643,1672">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1725,623,1696,1722">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1782,477,1741,1782">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,1821,493,1793,1821">if</WORD>
<WORD coords="523,1827,864,1793,1821">((UsbDevConfValue</WORD>
<WORD coords="877,1816,922,1805,1818">==</WORD>
<WORD coords="934,1830,1324,1793,1821">UsbUnconfiguredState)</WORD>
<WORD coords="1338,1821,1399,1793,1823">&amp;&amp;</WORD>
<WORD coords="1413,1827,1445,1793,1821">(b</WORD>
<WORD coords="1459,1823,1485,1799,1823">&gt;</WORD>
<WORD coords="1499,1828,1545,1793,1826">0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,1881,477,1840,1881">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,1930,802,1893,1921">ReqDebug(”Error:</WORD>
<WORD coords="817,1930,1368,1893,1921">USB_StdDevReqClearSetFeature</WORD>
<WORD coords="1381,1930,1477,1893,1921">forep</WORD>
<WORD coords="1492,1923,1517,1899,1923">&gt;</WORD>
<WORD coords="1532,1922,1551,1893,1922">0</WORD>
<WORD coords="1566,1921,1596,1893,1921">in</WORD>
<WORD coords="1622,1930,1838,1893,1921">unconfigured</WORD>
<WORD coords="1872,1922,1944,1898,1921">state</WORD>
<WORD coords="1962,1929,2023,1893,1920">!”);</WORD>
</LINE>
<LINE>
<WORD coords="498,1980,1063,1943,1971">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2024,623,1995,2021">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2081,477,2040,2081">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="465,2121,495,2092,2121">//</WORD>
<WORD coords="519,2121,662,2092,2120">Caution:</WORD>
<WORD coords="685,2121,765,2092,2120">what</WORD>
<WORD coords="785,2121,864,2092,2120">shall</WORD>
<WORD coords="891,2121,935,2102,2121">we</WORD>
<WORD coords="946,2121,986,2092,2120">do</WORD>
<WORD coords="1011,2129,1038,2092,2124">if</WORD>
<WORD coords="1062,2127,1096,2092,2120">(b</WORD>
<WORD coords="1118,2115,1166,2104,2117">==</WORD>
<WORD coords="1181,2125,1235,2092,2122">0)?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2179,906,2142,2170">UsbDevSelectEndpoint(b);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="467,2220,493,2192,2220">if</WORD>
<WORD coords="520,2223,530,2193,2220">(</WORD>
<WORD coords="536,2229,588,2201,2220">req</WORD>
<WORD coords="598,2220,602,2216,2220">.</WORD>
<WORD coords="609,2229,763,2192,2220">bRequest</WORD>
<WORD coords="778,2215,823,2204,2217">==</WORD>
<WORD coords="836,2221,913,2192,2220">USB</WORD>
<WORD coords="932,2229,1254,2192,2220">StdDcvRcqCLEAR</WORD>
<WORD coords="1275,2227,1466,2192,2220">FEATURE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2281,479,2239,2281">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2329,960,2292,2320">UsbDevClearStallRequest()</WORD>
<WORD coords="971,2325,977,2301,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="499,2378,934,2341,2369">UsbDevResetEndpoint(b);</WORD>
<WORD coords="951,2370,981,2341,2370">//</WORD>
<WORD coords="1003,2370,1114,2341,2369">should</WORD>
<WORD coords="1133,2370,1177,2351,2370">we</WORD>
<WORD coords="1190,2370,1229,2341,2370">do</WORD>
<WORD coords="1245,2369,1283,2351,2369">an</WORD>
<WORD coords="1304,2378,1448,2341,2369">endpoint</WORD>
<WORD coords="1478,2370,1555,2346,2369">reset</WORD>
<WORD coords="1567,2370,1582,2341,2370">?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="499,2428,1005,2391,2419">UsbDevResetDataToggleBit();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2479,477,2438,2479">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="466,2520,528,2491,2519">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2579,477,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2627,1063,2590,2618">UsbDevRequestStallHandshake();</WORD>
<WORD coords="1081,2619,1111,2590,2621">//</WORD>
<WORD coords="1130,2627,1185,2590,2621">for</WORD>
<WORD coords="1210,2627,1355,2590,2618">endpoint</WORD>
<WORD coords="1376,2618,1395,2590,2618">b</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="463,2678,477,2637,2678">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2727,906,2690,2718">UsbDevSelectEndpoint(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2771,572,2740,2768">break;</WORD>
</LINE>
<LINE>
<WORD coords="427,2818,549,2789,2818">default</WORD>
<WORD coords="561,2818,565,2799,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2877,764,2840,2868">ReqDebugC’Error:</WORD>
<WORD coords="780,2877,1387,2840,2868">USB_StdDevReqClearSetFeature!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2926,1025,2888,2917">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2970,585,2941,2967">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,3027,402,2986,3027">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,3074,801,3039,3067">UsbDevSendControlIn();</WORD>
<WORD coords="820,3068,849,3039,3068">//</WORD>
<WORD coords="872,3068,948,3039,3067">send</WORD>
<WORD coords="964,3067,1035,3040,3067">ZLP</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,3120,497,3089,3117">break;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0025.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0026.djvu" width="2481">
<PARAM name="PAGE" value="sources_0026.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,132,2418,104,132">21</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="349,278,421,257,277">case</WORD>
<WORD coords="443,286,1013,249,277">USB_StdDevReqSET_ADDRESS:</WORD>
<WORD coords="1025,278,1079,249,277">//2</WORD>
<WORD coords="1093,286,1193,255,277">stages</WORD>
<WORD coords="1207,284,1259,249,277">(no</WORD>
<WORD coords="1272,278,1373,249,277">data—</WORD>
<WORD coords="1377,286,1476,249,277">stage)</WORD>
</LINE>
<LINE>
<WORD coords="386,336,1199,299,327">ReqDebug(”USB_StdDevReqSET_ADDRESS”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,377,419,349,377">if</WORD>
<WORD coords="448,386,768,349,377">((LSB(req.wValue)</WORD>
<WORD coords="782,372,826,361,373">==</WORD>
<WORD coords="839,384,871,349,381">0)</WORD>
<WORD coords="892,377,953,349,378">&amp;&amp;</WORD>
<WORD coords="966,381,1289,349,377">(UsbDevConfValue</WORD>
<WORD coords="1306,377,1337,349,375">!=</WORD>
<WORD coords="1350,386,1753,348,377">UsbUnconfiguredState))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,437,402,396,437">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,485,727,448,476">ReqDebug(”Error:</WORD>
<WORD coords="742,485,1100,448,476">USB_StdDevReqSET</WORD>
<WORD coords="1104,477,1302,448,476">.ADDRESS</WORD>
<WORD coords="1317,476,1438,448,476">address</WORD>
<WORD coords="1451,477,1470,448,477">0</WORD>
<WORD coords="1482,476,1513,448,476">in</WORD>
<WORD coords="1525,485,1701,448,476">configured</WORD>
<WORD coords="1714,483,1843,448,476">state!”);</WORD>
</LINE>
<LINE>
<WORD coords="424,535,988,497,526">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,579,548,550,576">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,636,402,595,636">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,676,494,648,676">Assert</WORD>
<WORD coords="502,685,858,648,676">(req.bmRequestType</WORD>
<WORD coords="871,671,915,660,673">==</WORD>
<WORD coords="928,683,971,648,680">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,726,494,698,726">Assert</WORD>
<WORD coords="502,735,817,698,726">(MSB(req.wValue)</WORD>
<WORD coords="830,721,875,710,723">==</WORD>
<WORD coords="888,733,930,698,730">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,775,494,747,775">Assert</WORD>
<WORD coords="502,784,570,747,775">(req</WORD>
<WORD coords="579,775,583,771,775">.</WORD>
<WORD coords="592,775,713,747,775">wlndex</WORD>
<WORD coords="726,770,770,759,772">==</WORD>
<WORD coords="783,782,815,747,779">0)</WORD>
<WORD coords="822,781,828,756,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,825,494,797,825">Assert</WORD>
<WORD coords="502,834,570,797,825">(req</WORD>
<WORD coords="579,825,583,821,825">.</WORD>
<WORD coords="592,834,737,797,825">wLength</WORD>
<WORD coords="750,820,794,809,821">==</WORD>
<WORD coords="807,832,849,797,828">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,884,1038,847,875">UsbDevSetAddress(LSB(req.wValue));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,932,801,897,925">UsbDevSendControlInO;</WORD>
<WORD coords="820,926,849,897,926">//</WORD>
<WORD coords="872,926,947,897,925">send</WORD>
<WORD coords="964,925,1035,898,925">ZLP</WORD>
</LINE>
<LINE>
<WORD coords="387,984,932,947,975">UsbDevWaitTransmitterReadyO;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1031,808,996,1024">UsbDevEnableAddress();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1077,497,1046,1074">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1125,421,1104,1124">case</WORD>
<WORD coords="442,1133,1077,1096,1124">USB_StdDevReqSET_DESCRIPTOR:</WORD>
<WORD coords="1089,1125,1118,1096,1125">//</WORD>
<WORD coords="1125,1124,1143,1096,1124">3</WORD>
<WORD coords="1156,1133,1271,1102,1124">stage—</WORD>
<WORD coords="1277,1133,1406,1096,1125">transfer</WORD>
<WORD coords="1417,1125,1486,1096,1124">with</WORD>
<WORD coords="1499,1125,1551,1102,1124">out</WORD>
<WORD coords="1562,1125,1633,1096,1124">data</WORD>
</LINE>
<LINE>
<WORD coords="386,1183,690,1146,1174">ReqDebugf’Error:</WORD>
<WORD coords="705,1183,1063,1146,1174">USB.StdDevReqSET</WORD>
<WORD coords="1066,1175,1331,1146,1174">.DESCRIPTOR</WORD>
<WORD coords="1343,1183,1490,1146,1174">currently</WORD>
<WORD coords="1503,1174,1555,1151,1174">not</WORD>
<WORD coords="1567,1183,1784,1146,1174">supported!”);</WORD>
</LINE>
<LINE>
<WORD coords="386,1233,951,1196,1224">UsbDevRequestStallHandshake();</WORD>
<WORD coords="969,1225,999,1196,1225">//</WORD>
<WORD coords="1020,1233,1444,1196,1224">RequestStalIHandshake()</WORD>
<WORD coords="1473,1233,1575,1196,1225">before</WORD>
<WORD coords="1603,1233,2103,1196,1224">UsbDevAcknowledgeSETUP()</WORD>
</LINE>
<LINE>
<WORD coords="387,1274,518,1245,1273">UsbDev</WORD>
<WORD coords="521,1282,913,1245,1273">AcknowledgeSETUP();</WORD>
<WORD coords="924,1274,991,1245,1273">//to</WORD>
<WORD coords="1003,1274,1110,1255,1273">ensure</WORD>
<WORD coords="1125,1273,1188,1245,1273">that</WORD>
<WORD coords="1211,1273,1279,1245,1273">host</WORD>
<WORD coords="1309,1274,1368,1245,1273">will</WORD>
<WORD coords="1396,1274,1449,1250,1273">not</WORD>
<WORD coords="1470,1274,1546,1245,1273">send</WORD>
<WORD coords="1564,1274,1617,1251,1273">out</WORD>
<WORD coords="1638,1274,1727,1245,1273">data!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="390,1324,420,1295,1326">//</WORD>
<WORD coords="440,1332,499,1305,1323">you</WORD>
<WORD coords="517,1332,585,1305,1323">may</WORD>
<WORD coords="597,1332,769,1295,1323">implement</WORD>
<WORD coords="787,1323,844,1295,1323">this</WORD>
<WORD coords="878,1332,997,1300,1323">request</WORD>
<WORD coords="1029,1332,1057,1295,1327">if</WORD>
<WORD coords="1075,1332,1135,1305,1323">you</WORD>
<WORD coords="1152,1324,1228,1295,1323">have</WORD>
<WORD coords="1245,1332,1304,1305,1323">any</WORD>
<WORD coords="1323,1324,1390,1295,1323">idea</WORD>
<WORD coords="1410,1332,1466,1295,1326">for</WORD>
<WORD coords="1488,1324,1568,1295,1323">what</WORD>
<WORD coords="1580,1332,1639,1305,1323">you</WORD>
<WORD coords="1656,1324,1713,1305,1323">can</WORD>
<WORD coords="1732,1324,1784,1305,1323">use</WORD>
<WORD coords="1814,1323,1836,1296,1323">it</WORD>
</LINE>
<LINE>
<WORD coords="386,1376,497,1345,1373">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1424,421,1403,1423">case</WORD>
<WORD coords="444,1424,519,1395,1423">USB</WORD>
<WORD coords="539,1432,808,1395,1423">StdDevReqGET</WORD>
<WORD coords="824,1424,1168,1395,1423">CONFIGURATION:</WORD>
<WORD coords="1179,1424,1209,1395,1424">//</WORD>
<WORD coords="1216,1423,1234,1395,1423">3</WORD>
<WORD coords="1247,1432,1348,1400,1423">stages</WORD>
<WORD coords="1360,1424,1429,1395,1423">with</WORD>
<WORD coords="1444,1423,1458,1395,1423">1</WORD>
<WORD coords="1473,1432,1540,1395,1423">byte</WORD>
<WORD coords="1552,1424,1622,1396,1423">IN—</WORD>
<WORD coords="1627,1424,1698,1395,1423">data</WORD>
<WORD coords="1786,1423,1838,1400,1423">not</WORD>
<WORD coords="1850,1424,1946,1395,1423">tested</WORD>
<WORD coords="1954,1432,2004,1400,1424">yet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1482,1354,1445,1473">ReqDebug(”USB_StdDevReqGET_CONFIGURATION”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1523,494,1495,1523">Assert</WORD>
<WORD coords="502,1532,858,1495,1523">(req.bmRequestType</WORD>
<WORD coords="871,1518,915,1507,1519">==</WORD>
<WORD coords="932,1530,1012,1495,1525">128);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1572,494,1544,1572">Assert</WORD>
<WORD coords="502,1576,512,1544,1572">(</WORD>
<WORD coords="517,1581,570,1553,1572">req</WORD>
<WORD coords="579,1572,583,1568,1572">.</WORD>
<WORD coords="592,1572,620,1553,1572">w</WORD>
<WORD coords="623,1572,714,1544,1572">Value</WORD>
<WORD coords="726,1567,771,1556,1569">==</WORD>
<WORD coords="784,1579,815,1544,1576">0)</WORD>
<WORD coords="823,1578,829,1553,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1622,494,1594,1622">Assert</WORD>
<WORD coords="502,1628,512,1594,1622">(</WORD>
<WORD coords="517,1631,570,1603,1622">req</WORD>
<WORD coords="579,1622,583,1618,1622">.</WORD>
<WORD coords="592,1622,713,1594,1622">wlndex</WORD>
<WORD coords="726,1617,770,1606,1619">==</WORD>
<WORD coords="783,1629,815,1594,1626">0)</WORD>
<WORD coords="822,1628,828,1603,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1672,494,1644,1672">Assert</WORD>
<WORD coords="502,1681,583,1644,1672">(req.</WORD>
<WORD coords="592,1681,737,1644,1672">wLength</WORD>
<WORD coords="750,1667,794,1656,1668">==</WORD>
<WORD coords="812,1679,849,1644,1676">1);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1723,414,1694,1723">U</WORD>
<WORD coords="417,1722,519,1694,1722">sbDev</WORD>
<WORD coords="521,1731,662,1694,1722">WriteBy</WORD>
<WORD coords="664,1728,736,1694,1722">te(U</WORD>
<WORD coords="739,1729,1031,1694,1722">sbDevConfValue)</WORD>
<WORD coords="1036,1727,1042,1703,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1779,801,1744,1772">UsbDevSendControlInO;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1821,422,1793,1821">W</WORD>
<WORD coords="423,1821,439,1802,1821">a</WORD>
<WORD coords="442,1821,447,1793,1821">i</WORD>
<WORD coords="452,1821,462,1799,1821">t</WORD>
<WORD coords="464,1821,488,1793,1821">Z</WORD>
<WORD coords="491,1821,513,1793,1821">L</WORD>
<WORD coords="516,1821,535,1793,1821">P</WORD>
<WORD coords="539,1822,607,1793,1821">.Fro</WORD>
<WORD coords="612,1821,639,1802,1821">m</WORD>
<WORD coords="645,1821,668,1794,1821">H</WORD>
<WORD coords="672,1821,690,1802,1821">o</WORD>
<WORD coords="694,1821,706,1802,1821">s</WORD>
<WORD coords="709,1821,719,1799,1821">t</WORD>
<WORD coords="722,1828,745,1793,1826">()</WORD>
<WORD coords="750,1826,756,1802,0">;</WORD>
</LINE>
<LINE>
<WORD coords="386,1874,497,1843,1871">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1922,421,1901,1921">case</WORD>
<WORD coords="443,1930,1161,1893,1921">USB_StdDevReqSET_CONFIGURATION:</WORD>
<WORD coords="1173,1922,1202,1893,1921">//</WORD>
<WORD coords="1209,1921,1227,1893,1921">2</WORD>
<WORD coords="1240,1930,1341,1898,1921">stages</WORD>
<WORD coords="1354,1928,1406,1893,1921">(no</WORD>
<WORD coords="1419,1922,1522,1893,1921">data—</WORD>
<WORD coords="1525,1930,1623,1893,1921">stage)</WORD>
</LINE>
<LINE>
<WORD coords="386,1980,1347,1943,1971">ReqDebug(”USB_StdDevReqSET_CONFIGURATK)N”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2021,494,1993,2021">Assert</WORD>
<WORD coords="502,2030,858,1993,2021">(req.bmRequestType</WORD>
<WORD coords="871,2016,915,2005,2018">==</WORD>
<WORD coords="928,2028,971,1993,2025">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2071,494,2043,2071">Assert</WORD>
<WORD coords="502,2080,817,2043,2071">(MSB(req.wValue)</WORD>
<WORD coords="830,2066,875,2055,2068">==</WORD>
<WORD coords="888,2078,930,2043,2075">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2120,494,2092,2120">Assert</WORD>
<WORD coords="502,2123,512,2092,2120">(</WORD>
<WORD coords="517,2129,570,2101,2120">req</WORD>
<WORD coords="579,2120,583,2116,2120">.</WORD>
<WORD coords="592,2120,713,2092,2120">wlndex</WORD>
<WORD coords="726,2115,770,2104,2117">==</WORD>
<WORD coords="783,2127,815,2092,2124">0)</WORD>
<WORD coords="822,2126,828,2101,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2170,494,2142,2170">Assert</WORD>
<WORD coords="502,2173,512,2142,2170">(</WORD>
<WORD coords="517,2179,570,2151,2170">req</WORD>
<WORD coords="579,2170,583,2166,2170">.</WORD>
<WORD coords="592,2179,737,2142,2170">wLength</WORD>
<WORD coords="750,2165,794,2154,2166">==</WORD>
<WORD coords="807,2177,849,2142,2174">0);</WORD>
</LINE>
<LINE>
<WORD coords="392,2220,419,2192,2220">if</WORD>
<WORD coords="446,2229,1210,2192,2220">(UsbDevSetConfiguration(LSB(req.wValue)))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2280,402,2239,2280">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2329,869,2292,2320">UsbDevSelectEndpoint(O);</WORD>
<WORD coords="895,2321,924,2292,2321">//</WORD>
<WORD coords="950,2329,1390,2292,2321">UsbDevSetConfigurationf)</WORD>
<WORD coords="1414,2329,1481,2302,2320">may</WORD>
<WORD coords="1499,2321,1593,2292,2321">select</WORD>
<WORD coords="1622,2321,1709,2292,2320">other</WORD>
<WORD coords="1731,2329,1768,2302,2320">ep</WORD>
</LINE>
<LINE>
<WORD coords="425,2376,839,2341,2369">UsbDevSendControlInO;</WORD>
<WORD coords="857,2370,887,2341,2370">//</WORD>
<WORD coords="909,2370,986,2341,2369">send</WORD>
<WORD coords="1002,2369,1073,2342,2369">ZLP</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2429,402,2388,2429">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,2470,453,2441,2469">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2529,402,2488,2529">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2578,727,2541,2569">ReqDebugf’Error:</WORD>
<WORD coords="743,2578,1100,2541,2569">USB.StdDevReqSET</WORD>
<WORD coords="1104,2570,1451,2541,2569">.CONFIGURATION</WORD>
<WORD coords="1464,2578,1667,2541,2569">unsupported</WORD>
<WORD coords="1679,2578,1955,2540,2569">configuration!”);</WORD>
</LINE>
<LINE>
<WORD coords="425,2627,869,2590,2618">UsbDevSelectEndpoint(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,2677,988,2639,2668">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2728,402,2687,2728">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2771,497,2740,2768">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2819,421,2798,2818">case</WORD>
<WORD coords="442,2827,1054,2790,2818">USB.StdDevReqGETJNTERFACE:</WORD>
<WORD coords="1066,2819,1096,2790,2819">//</WORD>
<WORD coords="1103,2818,1121,2790,2818">3</WORD>
<WORD coords="1134,2827,1235,2795,2818">stages</WORD>
<WORD coords="1247,2819,1316,2790,2818">with</WORD>
<WORD coords="1330,2818,1345,2790,2818">1</WORD>
<WORD coords="1360,2827,1427,2790,2818">byte</WORD>
<WORD coords="1439,2819,1509,2791,2818">IN—</WORD>
<WORD coords="1513,2819,1585,2790,2818">data</WORD>
<WORD coords="1673,2819,1725,2795,2818">not</WORD>
<WORD coords="1737,2819,1833,2790,2818">tested</WORD>
<WORD coords="1841,2827,1891,2795,2818">yet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2877,1241,2840,2868">ReqDebug(”USB_StdDevReqGET_INTERFACE”);</WORD>
</LINE>
<LINE>
<WORD coords="392,2917,419,2889,2917">if</WORD>
<WORD coords="446,2922,770,2889,2917">(UsbDevConfValue</WORD>
<WORD coords="784,2912,828,2901,2914">==</WORD>
<WORD coords="843,2926,1230,2889,2917">UsbUnconfiguredState)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2977,402,2936,2977">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,3026,727,2989,3017">ReqDebugf’Error:</WORD>
<WORD coords="743,3026,1346,2989,3017">USB.StdDevReqGETJNTERFACE</WORD>
<WORD coords="1358,3017,1388,2989,3017">in</WORD>
<WORD coords="1400,3026,1618,2989,3017">unconfigured</WORD>
<WORD coords="1631,3024,1760,2989,3017">state!”);</WORD>
</LINE>
<LINE>
<WORD coords="425,3076,988,3039,3067">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,3120,548,3091,3117">return;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0026.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0027.djvu" width="2481">
<PARAM name="PAGE" value="sources_0027.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,132">28</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="388,287,402,246,287">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,327,494,299,327">Assert</WORD>
<WORD coords="502,336,858,299,327">(req.bmRequestType</WORD>
<WORD coords="871,322,915,311,323">==</WORD>
<WORD coords="932,334,1012,299,329">129);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,377,494,349,377">Assert</WORD>
<WORD coords="502,386,570,349,377">(req</WORD>
<WORD coords="579,377,583,373,377">.</WORD>
<WORD coords="592,377,620,358,377">w</WORD>
<WORD coords="623,377,714,349,377">Value</WORD>
<WORD coords="726,372,771,361,374">==</WORD>
<WORD coords="784,384,815,349,381">0)</WORD>
<WORD coords="823,383,829,358,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,427,494,399,427">Assert</WORD>
<WORD coords="502,436,817,399,427">(MSB(req.wIndex)</WORD>
<WORD coords="830,422,874,411,424">==</WORD>
<WORD coords="887,434,930,399,431">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,476,494,448,476">Assert</WORD>
<WORD coords="502,485,583,448,476">(req.</WORD>
<WORD coords="592,485,737,448,476">wLength</WORD>
<WORD coords="750,471,794,460,472">==</WORD>
<WORD coords="812,483,849,448,480">1);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,535,1071,498,526">UsbDevWriteByte(AltSettingOfInterface</WORD>
<WORD coords="1084,533,1108,498,532">[(</WORD>
<WORD coords="1124,527,1234,498,526">uint8_t</WORD>
<WORD coords="1248,533,1259,498,533">)</WORD>
<WORD coords="1283,535,1612,498,526">LSB(req.wIndex)]);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,583,801,548,576">UsbDevSendControlIn();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,626,535,598,626">WaitZLP</WORD>
<WORD coords="554,633,756,598,626">FromHostf);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,679,497,648,676">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,727,421,706,726">case</WORD>
<WORD coords="442,735,1048,698,726">USB_StdDevReqSET_INTERFACE:</WORD>
<WORD coords="1059,727,1089,698,726">//</WORD>
<WORD coords="1096,726,1114,698,726">2</WORD>
<WORD coords="1127,735,1228,704,726">stages</WORD>
<WORD coords="1241,733,1293,698,726">(no</WORD>
<WORD coords="1306,727,1408,698,726">data—</WORD>
<WORD coords="1411,735,1510,698,726">stage)</WORD>
</LINE>
<LINE>
<WORD coords="386,784,1234,747,775">ReqDebug(”USB_StdDevReqSET_INTERFACE”);</WORD>
</LINE>
<LINE>
<WORD coords="392,825,419,797,825">if</WORD>
<WORD coords="446,831,770,797,825">(UsbDevConfValue</WORD>
<WORD coords="784,820,828,809,822">==</WORD>
<WORD coords="843,834,1230,797,825">UsbUnconfiguredState)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,885,402,844,885">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,934,727,897,925">ReqDebugf’Error:</WORD>
<WORD coords="744,926,819,897,925">USB</WORD>
<WORD coords="839,934,1100,897,925">StdDcvReqSET</WORD>
<WORD coords="1118,926,1338,897,925">INTERFACE</WORD>
<WORD coords="1351,925,1381,897,925">in</WORD>
<WORD coords="1393,934,1610,897,925">unconfigured</WORD>
<WORD coords="1624,932,1753,897,925">state!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,984,988,946,975">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1027,548,998,1024">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1084,402,1043,1084">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1124,494,1096,1124">Assert</WORD>
<WORD coords="502,1133,858,1096,1124">(req.bmRequestType</WORD>
<WORD coords="871,1119,915,1108,1120">==</WORD>
<WORD coords="932,1131,971,1096,1128">1);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1174,494,1146,1174">Assert</WORD>
<WORD coords="502,1183,817,1146,1174">(MSB(req.wValue)</WORD>
<WORD coords="830,1169,875,1158,1171">==</WORD>
<WORD coords="888,1181,930,1146,1178">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1224,494,1196,1224">Assert</WORD>
<WORD coords="502,1233,817,1196,1224">(MSB(req.wIndex)</WORD>
<WORD coords="830,1219,874,1208,1221">==</WORD>
<WORD coords="887,1231,930,1196,1228">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,1273,494,1245,1273">Assert</WORD>
<WORD coords="502,1282,570,1245,1273">(req</WORD>
<WORD coords="579,1273,583,1269,1273">.</WORD>
<WORD coords="592,1282,737,1245,1273">wLength</WORD>
<WORD coords="750,1268,794,1257,1269">==</WORD>
<WORD coords="807,1280,849,1245,1276">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="392,1323,419,1295,1323">if</WORD>
<WORD coords="446,1328,1135,1295,1323">(UsbDevSetInterface(UsbDevConfValue,</WORD>
<WORD coords="1149,1332,1447,1295,1323">LSB(req.wIndex),</WORD>
<WORD coords="1460,1332,1777,1295,1323">LSB(req.wValue)))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1383,402,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1432,869,1395,1423">UsbDevSelectEndpoint(O);</WORD>
<WORD coords="895,1424,924,1395,1424">//</WORD>
<WORD coords="951,1432,1279,1395,1423">UsbDevSetlnterface</WORD>
<WORD coords="1289,1430,1312,1395,1428">()</WORD>
<WORD coords="1339,1432,1407,1405,1423">may</WORD>
<WORD coords="1425,1424,1519,1395,1424">select</WORD>
<WORD coords="1547,1424,1635,1395,1423">other</WORD>
<WORD coords="1656,1432,1693,1405,1423">ep</WORD>
</LINE>
<LINE>
<WORD coords="425,1480,839,1445,1473">UsbDevSendControlIn();</WORD>
<WORD coords="857,1474,887,1445,1474">//</WORD>
<WORD coords="909,1474,986,1445,1473">send</WORD>
<WORD coords="1002,1473,1073,1446,1473">ZLP</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1533,402,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="391,1573,453,1544,1572">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1632,402,1591,1632">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1681,869,1644,1672">UsbDevSelectEndpoint(O);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1731,727,1694,1722">ReqDebug(”Error:</WORD>
<WORD coords="742,1731,1100,1694,1722">USB.StdDevReqSET</WORD>
<WORD coords="1104,1723,1339,1694,1722">.INTERFACE</WORD>
<WORD coords="1352,1722,1398,1694,1722">alt.</WORD>
<WORD coords="1414,1731,1521,1694,1722">setting</WORD>
<WORD coords="1534,1722,1607,1694,1722">does</WORD>
<WORD coords="1621,1722,1672,1699,1722">not</WORD>
<WORD coords="1684,1729,1818,1694,1722">exist!”);</WORD>
</LINE>
<LINE>
<WORD coords="424,1781,988,1744,1772">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1831,402,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1874,497,1843,1871">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1922,421,1901,1921">case</WORD>
<WORD coords="443,1930,1034,1893,1921">USB_StdDevReqSYNCH_FRAME;</WORD>
<WORD coords="1046,1922,1075,1893,1921">//</WORD>
<WORD coords="1082,1921,1100,1893,1922">3</WORD>
<WORD coords="1113,1930,1214,1898,1921">stages</WORD>
<WORD coords="1227,1922,1296,1892,1922">with</WORD>
<WORD coords="1308,1921,1327,1893,1921">2</WORD>
<WORD coords="1340,1930,1406,1893,1921">byte</WORD>
<WORD coords="1418,1922,1489,1894,1921">IN—</WORD>
<WORD coords="1492,1922,1564,1893,1921">data</WORD>
<WORD coords="1652,1921,1705,1898,1921">not</WORD>
<WORD coords="1716,1930,1882,1893,1921">supported</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1980,672,1943,1971">ReqDcbugf’ljSB</WORD>
<WORD coords="692,1980,1018,1943,1971">StdDevRcqSYNCH</WORD>
<WORD coords="1036,1971,1178,1943,1971">FRAME</WORD>
<WORD coords="1190,1971,1242,1948,1971">not</WORD>
<WORD coords="1255,1980,1471,1943,1971">supported!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2030,951,1993,2021">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,2077,511,2045,2071">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,2121,421,2100,2120">case</WORD>
<WORD coords="442,2129,1084,2092,2120">USB_StdDevReqGET_DESCRIPTOR:</WORD>
<WORD coords="1096,2121,1125,2092,2120">//</WORD>
<WORD coords="1132,2120,1150,2092,2120">3</WORD>
<WORD coords="1163,2129,1264,2097,2120">stages</WORD>
<WORD coords="1278,2129,1407,2092,2121">transfer</WORD>
</LINE>
<LINE>
<WORD coords="386,2179,1270,2142,2170">ReqDebug(”USB_StdDevReqGET_DESCRIPTOR”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="389,2220,494,2192,2220">Assert</WORD>
<WORD coords="502,2229,858,2192,2220">(req.bmRequestType</WORD>
<WORD coords="871,2215,915,2204,2216">==</WORD>
<WORD coords="932,2227,1012,2192,2222">128);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,2280,402,2239,2280">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="433,2321,543,2292,2320">uint8_t</WORD>
<WORD coords="576,2329,734,2292,2320">requested</WORD>
<WORD coords="748,2323,753,2301,2323">;</WORD>
</LINE>
<LINE>
<WORD coords="433,2370,543,2341,2369">uint8_t</WORD>
<WORD coords="580,2369,695,2341,2369">written</WORD>
<WORD coords="722,2364,743,2353,2367">=</WORD>
<WORD coords="762,2372,791,2341,2371">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="430,2419,456,2391,2419">if</WORD>
<WORD coords="483,2428,659,2391,2419">(MSB(req.</WORD>
<WORD coords="663,2428,835,2391,2419">wLength))</WORD>
<WORD coords="848,2428,1005,2391,2419">requested</WORD>
<WORD coords="1021,2414,1042,2403,2416">=</WORD>
<WORD coords="1059,2422,1129,2391,2420">255;</WORD>
<WORD coords="1157,2420,1219,2391,2419">else</WORD>
<WORD coords="1250,2428,1406,2391,2419">requested</WORD>
<WORD coords="1432,2414,1453,2403,2416">=</WORD>
<WORD coords="1470,2428,1619,2391,2419">LSB(req.</WORD>
<WORD coords="1623,2428,1792,2391,2419">wLength);</WORD>
<WORD coords="1810,2420,1840,2391,2420">//</WORD>
<WORD coords="1862,2420,1906,2401,2420">we</WORD>
<WORD coords="1924,2420,1986,2391,2420">will</WORD>
<WORD coords="2012,2420,2104,2401,2419">never</WORD>
<WORD coords="2123,2420,2200,2391,2419">send</WORD>
<WORD coords="2217,2419,2298,2401,2419">more</WORD>
<WORD coords="2324,2419,2339,2389,2419">)</WORD>
</LINE>
<LINE>
<WORD coords="508,2469,577,2441,2469">than</WORD>
<WORD coords="599,2469,660,2441,2469">255</WORD>
<WORD coords="678,2477,761,2441,2469">bytes</WORD>
</LINE>
<LINE>
<WORD coords="424,2520,534,2491,2519">switch</WORD>
<WORD coords="558,2528,887,2491,2519">(MSB(req.wValue))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,2579,440,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2619,533,2598,2618">case</WORD>
<WORD coords="561,2619,585,2590,2618">1:</WORD>
<WORD coords="614,2619,644,2590,2619">//</WORD>
<WORD coords="665,2619,809,2591,2618">Device—</WORD>
<WORD coords="812,2627,993,2591,2618">Descriptor</WORD>
</LINE>
<LINE>
<WORD coords="501,2668,606,2640,2668">Assert</WORD>
<WORD coords="614,2671,624,2640,2668">(</WORD>
<WORD coords="630,2677,682,2649,2668">req</WORD>
<WORD coords="691,2668,695,2664,2668">.</WORD>
<WORD coords="704,2668,825,2640,2668">wlndex</WORD>
<WORD coords="838,2663,882,2652,2665">==</WORD>
<WORD coords="895,2675,927,2640,2672">0)</WORD>
<WORD coords="934,2673,940,2649,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="501,2718,606,2690,2718">Assert</WORD>
<WORD coords="614,2727,918,2690,2718">(LSB(req.wValue)</WORD>
<WORD coords="931,2713,975,2702,2715">==</WORD>
<WORD coords="988,2725,1034,2690,2722">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2777,1139,2740,2768">UsbGetDeviceDescriptor(&amp;u.devDes);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2819,526,2790,2819">U</WORD>
<WORD coords="529,2827,972,2790,2818">sbDumpDeviceDescriptor(</WORD>
<WORD coords="975,2818,1025,2790,2818">&amp;u</WORD>
<WORD coords="1030,2822,1172,2790,2818">.devDes)</WORD>
<WORD coords="1177,2824,1183,2799,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,2877,1111,2840,2868">UsbDevWriteDescriptorl&amp;u.devDes,</WORD>
<WORD coords="1125,2871,1281,2840,2868">&amp;written,</WORD>
<WORD coords="1306,2877,1462,2840,2868">requested</WORD>
<WORD coords="1472,2875,1483,2841,2874">)</WORD>
<WORD coords="1494,2874,1500,2849,0">;</WORD>
</LINE>
<LINE>
<WORD coords="498,2920,609,2889,2917">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,2968,533,2947,2967">case</WORD>
<WORD coords="557,2968,585,2939,2967">2:</WORD>
<WORD coords="614,2968,644,2939,2968">//</WORD>
<WORD coords="674,2976,900,2939,2968">Configuration</WORD>
<WORD coords="911,2958,937,2956,2967">—</WORD>
<WORD coords="940,2976,1121,2940,2967">Descriptor</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="504,3017,531,2989,3017">if</WORD>
<WORD coords="560,3022,582,2989,3018">(!</WORD>
<WORD coords="593,3026,1245,2989,3017">UsbSendDescriptors(LSB(req.wValue),</WORD>
<WORD coords="1265,3020,1425,2989,3017">&amp;written,</WORD>
<WORD coords="1454,3026,1651,2989,3017">requested))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="500,3077,514,3036,3077">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="536,3126,839,3089,3117">ReqDebug(”Error:</WORD>
<WORD coords="855,3126,1219,3089,3117">USB.StdDevReqGET</WORD>
<WORD coords="1223,3118,1496,3089,3117">.DESCRIPTOR:</WORD>
<WORD coords="1511,3117,1567,3098,3117">can</WORD>
<WORD coords="1579,3117,1630,3094,3117">not</WORD>
<WORD coords="1643,3117,1707,3094,3117">sent</WORD>
<WORD coords="1719,3126,1978,3089,3117">Configuration—</WORD>
<WORD coords="1982,3126,2211,3089,3117">Descriptor!”);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0027.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0028.djvu" width="2481">
<PARAM name="PAGE" value="sources_0028.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2419,104,132">29</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="537,286,1100,249,277">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="536,333,660,301,327">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="500,387,514,346,387">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,430,609,399,427">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,477,533,456,476">case</WORD>
<WORD coords="558,477,585,448,476">3:</WORD>
<WORD coords="614,477,644,448,477">//</WORD>
<WORD coords="672,485,770,448,476">String</WORD>
<WORD coords="780,485,990,449,476">—Descriptor</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="502,535,959,498,526">UsbGetStringDescriptor(u.</WORD>
<WORD coords="969,526,1071,499,526">strDes</WORD>
<WORD coords="1082,529,1088,522,529">,</WORD>
<WORD coords="1115,535,1428,498,526">LSB(req.wValue));</WORD>
<WORD coords="1455,527,1485,498,527">//</WORD>
<WORD coords="1509,527,1615,499,526">strDes</WORD>
<WORD coords="1644,526,1668,499,526">is</WORD>
<WORD coords="1694,526,1732,508,526">an</WORD>
<WORD coords="1750,535,1852,508,526">array,</WORD>
<WORD coords="1881,527,1915,508,527">so</WORD>
<WORD coords="1937,527,1976,508,526">no</WORD>
<WORD coords="1995,527,2021,498,527">&amp;</WORD>
<WORD coords="2038,527,2063,499,526">is</WORD>
<WORD coords="2088,535,2269,498,526">necessary!</WORD>
</LINE>
<LINE>
<WORD coords="498,585,1110,548,576">UsbDumpStringDescriptor(u.strDes)</WORD>
<WORD coords="1120,581,1126,557,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,635,945,598,626">UsbDevWriteDescriptor(u.</WORD>
<WORD coords="951,626,1053,599,626">strDes</WORD>
<WORD coords="1064,629,1070,622,629">,</WORD>
<WORD coords="1097,629,1257,598,626">&amp;written,</WORD>
<WORD coords="1286,635,1481,598,626">requested);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,679,609,648,676">break;</WORD>
</LINE>
<LINE>
<WORD coords="464,726,587,698,726">default</WORD>
<WORD coords="598,726,602,707,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,784,1349,747,775">ReqDebug(”USB_StdDevReqGET_DESCRIPTOR:</WORD>
<WORD coords="1365,776,1525,747,775">Unknown</WORD>
<WORD coords="1537,784,1662,747,775">type!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="498,831,623,799,825">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,885,440,844,885">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="429,925,456,896,925">if</WORD>
<WORD coords="481,932,1035,897,925">UsbDevHasReceivedOUT_Data()</WORD>
<WORD coords="1045,926,1075,897,928">//</WORD>
<WORD coords="1081,934,1135,902,926">got</WORD>
<WORD coords="1144,925,1216,898,927">ZLP</WORD>
<WORD coords="1220,934,1302,897,925">from</WORD>
<WORD coords="1314,926,1383,897,925">host</WORD>
<WORD coords="1470,926,1572,897,925">abort!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,985,440,944,985">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1031,1117,996,1024">UsbDevClearHasReceivedOUT_Data();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1083,1035,1046,1074">ReqDebug(”USB_StdDevReqGET</WORD>
<WORD coords="1039,1075,1312,1046,1074">.DESCRIPTOR:</WORD>
<WORD coords="1326,1074,1421,1046,1074">Abort</WORD>
<WORD coords="1434,1074,1513,1046,1074">from</WORD>
<WORD coords="1525,1081,1648,1046,1074">host!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1127,585,1098,1124">return;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,1184,440,1143,1184">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="430,1224,456,1196,1224">if</WORD>
<WORD coords="488,1230,658,1196,1224">(((written</WORD>
<WORD coords="686,1225,716,1196,1225">%</WORD>
<WORD coords="729,1228,1002,1196,1224">EPCLFIFO.Size)</WORD>
<WORD coords="1020,1224,1050,1196,1222">!=</WORD>
<WORD coords="1062,1231,1094,1196,1230">0)</WORD>
<WORD coords="1126,1234,1139,1193,1234">||</WORD>
<WORD coords="1174,1230,1312,1196,1224">(written</WORD>
<WORD coords="1342,1226,1367,1202,1226">&lt;</WORD>
<WORD coords="1382,1233,1576,1196,1224">requested))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,1274,489,1245,1274">U</WORD>
<WORD coords="492,1280,865,1245,1273">sbDevSendControlIn()</WORD>
<WORD coords="870,1278,876,1254,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1330,794,1295,1323">WaitZLP_FromHost();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,1383,402,1342,1383">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1426,497,1395,1423">break;</WORD>
</LINE>
<LINE>
<WORD coords="352,1474,475,1445,1473">default</WORD>
<WORD coords="485,1473,490,1454,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1532,746,1495,1523">ReqDebugf’Received</WORD>
<WORD coords="758,1532,961,1495,1523">unsupported</WORD>
<WORD coords="975,1532,1376,1495,1523">UsbStandardRequest!”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,1581,951,1544,1572">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1632,327,1591,1632">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1682,290,1641,1682">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1723,341,1694,1722">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1782,290,1741,1782">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1830,732,1793,1821">ReqDebug(”Unsupported</WORD>
<WORD coords="745,1821,945,1793,1821">nonstandard</WORD>
<WORD coords="959,1830,1128,1793,1821">request!”)</WORD>
<WORD coords="1139,1826,1145,1802,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1880,876,1842,1871">UsbDevRequestStallHandshake();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1931,290,1890,1931">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1981,253,1940,1981">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,2072,339,2043,2071">static</WORD>
<WORD coords="367,2071,439,2043,2071">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,2129,589,2092,2120">UsbSendDescriptors(</WORD>
<WORD coords="600,2121,711,2092,2120">uint8_t</WORD>
<WORD coords="744,2123,808,2092,2120">cdi,</WORD>
<WORD coords="844,2121,954,2092,2120">uint8_t</WORD>
<WORD coords="986,2119,1001,2101,2119">*</WORD>
<WORD coords="1010,2126,1144,2092,2120">written,</WORD>
<WORD coords="1180,2121,1290,2092,2120">uint8_t</WORD>
<WORD coords="1324,2129,1502,2092,2120">requested)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2181,254,2139,2181">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2221,374,2192,2220">union</WORD>
<WORD coords="390,2221,420,2192,2221">//</WORD>
<WORD coords="443,2221,486,2202,2221">we</WORD>
<WORD coords="499,2221,555,2202,2220">can</WORD>
<WORD coords="574,2221,626,2202,2220">use</WORD>
<WORD coords="651,2220,699,2192,2220">the</WORD>
<WORD coords="722,2220,805,2202,2220">same</WORD>
<WORD coords="816,2229,905,2193,2220">piece</WORD>
<WORD coords="930,2229,968,2192,2225">of</WORD>
<WORD coords="984,2222,1116,2202,2220">memory</WORD>
<WORD coords="1121,2229,1176,2192,2223">for</WORD>
<WORD coords="1194,2221,1276,2192,2220">these</WORD>
<WORD coords="1311,2229,1495,2192,2220">descriptors</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2280,290,2239,2280">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,2321,390,2292,2320">USB</WORD>
<WORD coords="396,2329,635,2292,2320">.Configuration</WORD>
<WORD coords="641,2329,814,2292,2320">Descriptor</WORD>
<WORD coords="834,2325,981,2292,2320">confDes;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2378,734,2341,2369">USBJnterfaceDescriptor</WORD>
<WORD coords="762,2375,883,2341,2369">intDes;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,2428,734,2391,2419">USB_EndpointDescriptor</WORD>
<WORD coords="745,2425,877,2391,2419">endDes;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2479,290,2438,2479">}</WORD>
<WORD coords="310,2475,343,2450,2470">u;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="278,2520,308,2491,2520">//</WORD>
<WORD coords="322,2520,433,2491,2520">uint8J</WORD>
<WORD coords="464,2524,529,2491,2519">cdi;</WORD>
<WORD coords="558,2520,588,2491,2521">//</WORD>
<WORD coords="620,2528,840,2491,2520">configuration</WORD>
<WORD coords="880,2528,1050,2491,2519">descriptor</WORD>
<WORD coords="1080,2520,1168,2491,2519">index</WORD>
</LINE>
<LINE>
<WORD coords="284,2570,394,2541,2569">uint8_t</WORD>
<WORD coords="430,2569,471,2541,2569">idi</WORD>
<WORD coords="485,2574,491,2550,2574">;</WORD>
<WORD coords="521,2570,551,2541,2570">//</WORD>
<WORD coords="584,2578,728,2541,2570">interface</WORD>
<WORD coords="768,2578,938,2541,2569">descriptor</WORD>
<WORD coords="968,2570,1056,2541,2569">index</WORD>
</LINE>
<LINE>
<WORD coords="284,2619,394,2590,2618">uint8_t</WORD>
<WORD coords="425,2623,472,2599,2618">as;</WORD>
<WORD coords="521,2619,551,2590,2619">//</WORD>
<WORD coords="582,2618,730,2590,2618">alternate</WORD>
<WORD coords="770,2627,879,2591,2618">setting</WORD>
<WORD coords="912,2627,949,2590,2622">of</WORD>
<WORD coords="976,2627,1121,2590,2619">interface</WORD>
</LINE>
<LINE>
<WORD coords="284,2669,394,2640,2668">uint8_t</WORD>
<WORD coords="426,2668,474,2640,2668">edi</WORD>
<WORD coords="486,2673,491,2649,2673">;</WORD>
<WORD coords="521,2669,551,2640,2669">//</WORD>
<WORD coords="575,2677,720,2640,2668">endpoint</WORD>
<WORD coords="749,2677,920,2640,2668">descriptor</WORD>
<WORD coords="950,2669,1037,2640,2668">index</WORD>
</LINE>
<LINE>
<WORD coords="280,2718,307,2690,2718">if</WORD>
<WORD coords="334,2724,344,2690,2719">(</WORD>
<WORD coords="354,2727,1113,2690,2718">UsbGetConfigurationDescriptor(&amp;u.confDes,</WORD>
<WORD coords="1136,2725,1222,2690,2718">cdi))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2778,290,2737,2778">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2827,1125,2790,2818">UsbDumpConfigurationDescriptor(&amp;u.confDes);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2877,939,2840,2868">UsbDevWriteDescriptor(&amp;u.confDes,</WORD>
<WORD coords="956,2868,1072,2840,2868">written</WORD>
<WORD coords="1083,2871,1088,2864,2871">,</WORD>
<WORD coords="1119,2877,1277,2840,2868">requested</WORD>
<WORD coords="1286,2873,1296,2841,2873">)</WORD>
<WORD coords="1307,2873,1313,2849,0">;</WORD>
</LINE>
<LINE>
<WORD coords="318,2917,359,2889,2917">idi</WORD>
<WORD coords="386,2920,455,2889,2916">=0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2967,354,2939,2967">do</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,3027,327,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="350,3068,383,3048,3068">as</WORD>
<WORD coords="405,3062,426,3051,3064">=</WORD>
<WORD coords="445,3070,473,3039,3068">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,3117,441,3089,3117">while</WORD>
<WORD coords="464,3123,474,3089,3123">(</WORD>
<WORD coords="489,3126,937,3089,3117">UsbGetlnterfaceDescriptor</WORD>
<WORD coords="948,3122,1144,3089,3117">(&amp;u.intDes,</WORD>
<WORD coords="1173,3123,1238,3089,3117">cdi,</WORD>
<WORD coords="1270,3123,1331,3089,3117">idi,</WORD>
<WORD coords="1359,3124,1427,3089,3118">as))</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0028.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0029.djvu" width="2481">
<PARAM name="PAGE" value="sources_0029.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1558,141,1733,106,132">requests.e</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="351,287,365,246,287">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="386,336,1090,299,327">UsbDumpInterfaceDescriptor(&amp;u.intDes);</WORD>
</LINE>
<LINE>
<WORD coords="387,386,984,349,377">UsbDevWriteDescriptor(&amp;u.intDes,</WORD>
<WORD coords="1009,383,1145,349,377">written,</WORD>
<WORD coords="1175,386,1369,349,377">requested);</WORD>
</LINE>
<LINE>
<WORD coords="388,428,439,398,427">for</WORD>
<WORD coords="464,430,530,399,427">(edi</WORD>
<WORD coords="554,422,575,411,424">=</WORD>
<WORD coords="598,433,623,399,431">1;</WORD>
<WORD coords="650,427,698,399,427">edi</WORD>
<WORD coords="725,429,751,405,429">&lt;</WORD>
<WORD coords="765,436,1264,399,427">UsbNumEndpointsAT90USB;</WORD>
<WORD coords="1278,431,1387,399,427">edi++)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,486,402,445,486">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="430,526,456,498,526">if</WORD>
<WORD coords="483,535,1161,498,526">(UsbGetEndpointDescriptor(&amp;u.endDes,</WORD>
<WORD coords="1176,532,1238,498,526">edi,</WORD>
<WORD coords="1270,526,1311,498,526">idi</WORD>
<WORD coords="1325,532,1331,522,532">,</WORD>
<WORD coords="1359,531,1406,507,526">as,</WORD>
<WORD coords="1435,533,1520,498,526">edi))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,586,440,545,586">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,635,1183,598,626">UsbDumpEndpointDescriptor(&amp;u.endDes);</WORD>
</LINE>
<LINE>
<WORD coords="461,685,1074,648,676">UsbDevWriteDescriptor(&amp;u.endDes,</WORD>
<WORD coords="1089,676,1205,648,676">written</WORD>
<WORD coords="1213,679,1219,672,679">,</WORD>
<WORD coords="1250,685,1407,648,676">requested</WORD>
<WORD coords="1416,683,1427,648,681">)</WORD>
<WORD coords="1438,681,1444,657,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="426,736,440,695,736">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,785,402,744,785">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="388,828,478,804,825">as++;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,885,365,844,885">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="355,925,396,897,925">idi</WORD>
<WORD coords="405,930,460,904,926">++;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,985,327,944,985">}</WORD>
<WORD coords="349,975,441,946,975">while</WORD>
<WORD coords="464,981,512,947,976">(as</WORD>
<WORD coords="538,982,623,947,979">&gt;0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1024,423,998,1024">return</WORD>
<WORD coords="447,1024,509,1001,1024">true</WORD>
<WORD coords="522,1030,528,1005,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1084,290,1043,1084">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1125,341,1096,1124">else</WORD>
<WORD coords="367,1125,479,1098,1124">return</WORD>
<WORD coords="506,1124,581,1096,1124">false</WORD>
<WORD coords="597,1130,603,1105,1130">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1184,253,1143,1184">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0029.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0030.djvu" width="2481">
<PARAM name="PAGE" value="sources_0030.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,139,426,104,132">(GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1481,141,1664,104,132">usbjspec.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2416,104,132">31</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,644,249,277">AT90USB/usb_spec.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,328,366,299,327">USB</WORD>
<WORD coords="385,328,621,299,327">datastructures</WORD>
<WORD coords="648,328,683,309,328">as</WORD>
<WORD coords="709,336,829,299,330">defined</WORD>
<WORD coords="853,335,891,299,328">by</WORD>
<WORD coords="910,335,1125,299,327">www.usb.org</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">27—</WORD>
<WORD coords="590,377,695,350,377">FEB—</WORD>
<WORD coords="698,377,782,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,477,655,448,476">_USB_SPEC_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,655,498,526">_USB_SPEC_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="408,578,603,548,576">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,676,363,647,676">#define</WORD>
<WORD coords="386,685,613,648,676">USB_Specl_l</WORD>
<WORD coords="685,677,808,648,676">0x0110</WORD>
</LINE>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="387,735,617,698,726">USB_Spec2_0</WORD>
<WORD coords="685,727,808,698,726">0x0200</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,363,796,825">#define</WORD>
<WORD coords="386,826,747,796,825">USB_ControlTransfer</WORD>
<WORD coords="834,826,853,797,826">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,363,846,875">#define</WORD>
<WORD coords="387,876,463,847,875">USB</WORD>
<WORD coords="469,875,823,847,875">JsochronousTransfer</WORD>
<WORD coords="838,875,849,847,875">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="388,926,463,897,925">USB</WORD>
<WORD coords="482,926,701,896,925">BulkTransfer</WORD>
<WORD coords="834,925,852,897,925">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="393,984,772,947,975">USBJnterruptTransfer</WORD>
<WORD coords="835,976,851,947,976">3</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1083,853,1046,1074">USB_DeviceDescriptorType</WORD>
</LINE>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1133,967,1096,1124">USB_ConfigurationDescriptorType</WORD>
</LINE>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="389,1175,463,1146,1174">USB</WORD>
<WORD coords="483,1183,758,1146,1174">StringDcscriptor</WORD>
<WORD coords="768,1183,838,1147,1174">Iype</WORD>
</LINE>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="389,1225,465,1196,1224">USB</WORD>
<WORD coords="471,1233,886,1196,1224">JnterfaceDescriptorType</WORD>
</LINE>
<LINE>
<WORD coords="236,1273,363,1244,1273">#define</WORD>
<WORD coords="387,1282,889,1245,1273">USB_EndpointDescriptorType</WORD>
</LINE>
<LINE>
<WORD coords="241,1324,269,1295,1324">//</WORD>
<WORD coords="292,1332,416,1295,1326">#define</WORD>
<WORD coords="447,1332,1055,1295,1323">USBJJeviceQualifierDescriptorType</WORD>
<WORD coords="1077,1323,1156,1295,1323">0x06</WORD>
<WORD coords="1175,1324,1204,1295,1324">//</WORD>
<WORD coords="1228,1332,1298,1295,1323">only</WORD>
<WORD coords="1321,1324,1395,1295,1323">used</WORD>
<WORD coords="1410,1332,1466,1295,1326">for</WORD>
<WORD coords="1489,1332,1560,1295,1323">high</WORD>
<WORD coords="1582,1332,1676,1295,1323">speed</WORD>
<WORD coords="1698,1324,1818,1295,1324">devices</WORD>
</LINE>
<LINE>
<WORD coords="241,1374,269,1345,1374">//</WORD>
<WORD coords="292,1373,314,1345,1374">#</WORD>
<WORD coords="319,1382,416,1345,1376">define</WORD>
<WORD coords="445,1382,1217,1345,1373">USBJDtherSpeedConfigurationDescriptorType</WORD>
<WORD coords="1229,1373,1310,1345,1373">0x07</WORD>
<WORD coords="1324,1374,1354,1345,1374">//</WORD>
<WORD coords="1378,1382,1448,1345,1373">only</WORD>
<WORD coords="1471,1374,1546,1345,1373">used</WORD>
<WORD coords="1560,1382,1615,1345,1376">for</WORD>
<WORD coords="1638,1381,1709,1345,1373">high</WORD>
<WORD coords="1731,1382,1826,1345,1373">speed</WORD>
<WORD coords="1848,1374,1967,1345,1374">devices</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="388,1474,463,1445,1473">USB</WORD>
<WORD coords="484,1482,887,1445,1473">DeviceDescriptorLength</WORD>
<WORD coords="1133,1474,1214,1445,1473">0x12</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1523,363,1494,1523">#define</WORD>
<WORD coords="388,1524,463,1495,1523">USB</WORD>
<WORD coords="469,1532,709,1495,1523">-Configuration</WORD>
<WORD coords="715,1532,1002,1495,1523">DescriptorUength</WORD>
<WORD coords="1133,1524,1214,1495,1523">0x09</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="390,1581,923,1544,1572">USBJnterfaceDescriptorLength</WORD>
<WORD coords="1133,1573,1214,1544,1572">0x09</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1622,363,1593,1622">#define</WORD>
<WORD coords="387,1631,925,1594,1622">USB_EndpointDescriptorLength</WORD>
<WORD coords="1133,1623,1214,1594,1622">0x07</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="387,1731,913,1694,1722">USBXanguageDescriptorlndex</WORD>
<WORD coords="1133,1723,1152,1694,1723">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1781,901,1744,1772">USB_ManufacturerStringIndex</WORD>
<WORD coords="1137,1772,1148,1744,1772">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1830,805,1793,1821">USB_ProductStringIndex</WORD>
<WORD coords="1133,1821,1151,1793,1821">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,908,1843,1871">USB.SerialNumberStringlndex</WORD>
<WORD coords="1134,1872,1150,1843,1872">3</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,1972,270,1943,1972">//</WORD>
<WORD coords="296,1972,367,1943,1971">USB</WORD>
<WORD coords="380,1972,449,1953,1971">uses</WORD>
<WORD coords="480,1972,553,1943,1971">little</WORD>
<WORD coords="592,1972,702,1943,1971">endian</WORD>
<WORD coords="716,1980,844,1943,1972">format,</WORD>
<WORD coords="872,1980,1016,1953,1971">avr—gcc</WORD>
<WORD coords="1028,1976,1088,1948,1972">too,</WORD>
<WORD coords="1115,1972,1149,1953,1972">so</WORD>
<WORD coords="1171,1971,1209,1953,1971">no</WORD>
<WORD coords="1230,1980,1329,1943,1971">byte—</WORD>
<WORD coords="1333,1980,1417,1953,1972">swap</WORD>
<WORD coords="1430,1971,1455,1944,1971">is</WORD>
<WORD coords="1471,1979,1633,1953,1971">necessary</WORD>
<WORD coords="1653,1980,1708,1943,1974">for</WORD>
<WORD coords="1732,1971,1771,1943,1971">16</WORD>
<WORD coords="1793,1971,1837,1943,1971">bit</WORD>
<WORD coords="1862,1972,1933,1943,1971">data</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2072,270,2043,2072">//</WORD>
<WORD coords="296,2072,397,2043,2071">USB—</WORD>
<WORD coords="400,2072,544,2044,2071">Device—</WORD>
<WORD coords="547,2080,684,2044,2071">Request,</WORD>
<WORD coords="699,2072,764,2044,2071">H.J.</WORD>
<WORD coords="780,2071,864,2043,2071">Kelm</WORD>
<WORD coords="879,2072,950,2043,2071">USB</WORD>
<WORD coords="963,2075,1020,2043,2072">2.0,</WORD>
<WORD coords="1035,2072,1149,2044,2071">section</WORD>
<WORD coords="1179,2075,1268,2043,2072">2.9.1,</WORD>
<WORD coords="1298,2080,1379,2053,2071">page</WORD>
<WORD coords="1397,2071,1457,2043,2071">107</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2128,369,2091,2120">typedef</WORD>
<WORD coords="390,2121,492,2094,2120">struct</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2180,253,2139,2180">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2221,394,2192,2220">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2229,812,2192,2220">bmRequestType;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2271,394,2242,2270">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2279,699,2242,2270">bRequest;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="282,2321,414,2292,2320">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2325,668,2292,2320">wValue;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,2370,414,2341,2369">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2375,667,2341,2369">wlndex;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,2420,414,2391,2419">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2428,691,2391,2419">wLength;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,2479,253,2438,2479">}</WORD>
<WORD coords="275,2478,628,2441,2469">USB_DeviceRequest;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2570,270,2541,2570">//</WORD>
<WORD coords="292,2570,435,2542,2569">Device—</WORD>
<WORD coords="439,2578,624,2542,2569">Descriptor,</WORD>
<WORD coords="647,2570,714,2542,2569">H.J.</WORD>
<WORD coords="741,2574,832,2541,2569">Kelm,</WORD>
<WORD coords="856,2570,927,2541,2569">USB</WORD>
<WORD coords="939,2574,997,2541,2571">2.0,</WORD>
<WORD coords="1028,2570,1142,2542,2569">section</WORD>
<WORD coords="1175,2570,1256,2541,2570">2.8.2</WORD>
<WORD coords="1286,2578,1379,2541,2569">(page</WORD>
<WORD coords="1396,2574,1448,2541,2571">98)</WORD>
<WORD coords="1470,2570,1532,2541,2569">and</WORD>
<WORD coords="1551,2570,1665,2542,2569">section</WORD>
<WORD coords="1701,2569,1782,2541,2570">9.4.7</WORD>
<WORD coords="1809,2578,1902,2541,2569">(page</WORD>
<WORD coords="1917,2574,1991,2541,2570">296)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2626,369,2589,2618">typedef</WORD>
<WORD coords="390,2619,492,2592,2618">struct</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2678,253,2637,2678">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2719,394,2690,2718">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2727,682,2690,2718">bLength;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2769,394,2740,2768">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2777,812,2740,2768">bDescriptorType</WORD>
<WORD coords="821,2771,827,2749,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="282,2819,414,2790,2818">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2821,684,2790,2818">bcdUSB;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2869,394,2840,2868">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2874,773,2840,2868">bDeviceClass;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2918,394,2889,2917">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2923,835,2889,2917">bDeviceSubClass;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,2968,394,2939,2967">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="539,2967,827,2939,2967">bDeviceProtocoll</WORD>
<WORD coords="840,2970,846,2948,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,3018,394,2989,3017">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,3020,842,2989,3017">bMaxPacketSizeO;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,3068,414,3039,3067">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,3073,698,3039,3067">idVendor;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,3118,414,3089,3117">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="539,3118,700,3089,3117">idProduct</WORD>
<WORD coords="709,3122,715,3098,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,1075,1211,1046,1074">0x01</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,1125,1214,1096,1124">0x02</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,1175,1213,1146,1174">0x03</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,1225,1215,1196,1224">0x04</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,1274,1213,1245,1273">0x05</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0030.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0031.djvu" width="2481">
<PARAM name="PAGE" value="sources_0031.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,141,1664,104,132">usbjspec.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2419,104,132">32</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,278,414,249,277">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,280,720,249,277">bcdDevice;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,328,394,299,327">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="539,327,775,299,327">iManufacturer</WORD>
<WORD coords="784,330,790,308,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,378,394,349,377">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="540,377,679,349,377">iProduct</WORD>
<WORD coords="691,382,697,358,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,428,394,399,427">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,430,791,399,427">iSerialNumber;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,477,394,448,476">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,485,894,448,476">bNumConfigurations;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,536,253,495,536">}</WORD>
<WORD coords="274,535,670,498,526">USB_DeviceDescriptor;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="300,635,564,598,627">Configuration—</WORD>
<WORD coords="567,635,754,599,626">Descriptor,</WORD>
<WORD coords="777,627,845,599,626">H.J.</WORD>
<WORD coords="871,631,963,597,626">Kelm,</WORD>
<WORD coords="987,627,1058,598,626">USB</WORD>
<WORD coords="1070,631,1128,598,628">2.0,</WORD>
<WORD coords="1159,627,1272,599,626">section</WORD>
<WORD coords="1306,627,1387,598,627">2.8.3</WORD>
<WORD coords="1417,635,1511,598,626">(page</WORD>
<WORD coords="1527,631,1599,598,628">100)</WORD>
<WORD coords="1619,627,1682,598,626">and</WORD>
<WORD coords="1700,627,1814,599,626">section</WORD>
<WORD coords="1850,626,1932,598,627">9.4.7</WORD>
<WORD coords="1959,635,2051,598,626">(page</WORD>
<WORD coords="2066,631,2141,598,627">297)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,684,369,647,676">typedef</WORD>
<WORD coords="390,677,492,650,676">struct</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,736,253,695,736">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,776,394,747,775">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,784,682,747,775">bLength;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,826,394,797,825">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,834,812,797,825">bDescriptorType</WORD>
<WORD coords="821,829,827,806,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,876,414,847,875">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,875,647,847,875">wTotal</WORD>
<WORD coords="650,884,775,847,875">Length;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,926,394,897,925">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,926,800,897,925">bNumlnterfaces</WORD>
<WORD coords="805,930,811,906,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,976,394,947,975">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="539,984,884,947,975">bConfigurationValue</WORD>
<WORD coords="896,981,902,956,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1025,394,996,1024">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="545,1033,786,996,1024">iConfiguration</WORD>
<WORD coords="803,1030,809,1005,1030">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1075,394,1046,1074">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="538,1074,590,1046,1074">bm</WORD>
<WORD coords="592,1074,754,1046,1074">Attributes</WORD>
<WORD coords="765,1080,771,1055,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1125,394,1096,1124">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,1127,725,1096,1124">MaxPower;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,1184,253,1143,1184">}</WORD>
<WORD coords="276,1183,790,1146,1174">USB_ConfigurationDescriptor;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="301,1282,449,1245,1274">Interface</WORD>
<WORD coords="464,1282,679,1246,1273">—Descriptor,</WORD>
<WORD coords="703,1274,770,1246,1273">H.J.</WORD>
<WORD coords="797,1278,888,1245,1273">Kelm,</WORD>
<WORD coords="912,1274,983,1245,1273">USB</WORD>
<WORD coords="996,1278,1053,1245,1275">2.0,</WORD>
<WORD coords="1084,1274,1198,1246,1273">section</WORD>
<WORD coords="1231,1274,1312,1245,1274">2.8.4</WORD>
<WORD coords="1342,1282,1435,1245,1273">(page</WORD>
<WORD coords="1452,1278,1524,1245,1275">101)</WORD>
<WORD coords="1544,1274,1607,1245,1273">and</WORD>
<WORD coords="1626,1274,1739,1246,1273">section</WORD>
<WORD coords="1776,1273,1857,1245,1274">9.4.7</WORD>
<WORD coords="1884,1282,1977,1245,1273">(page</WORD>
<WORD coords="1992,1278,2066,1245,1274">297)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1331,369,1294,1323">typedef</WORD>
<WORD coords="390,1324,492,1297,1323">struct</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1383,253,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,1424,394,1395,1423">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,1432,682,1395,1423">bLength;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1474,394,1445,1473">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,1482,812,1445,1473">bDescriptorType</WORD>
<WORD coords="821,1479,827,1454,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="283,1524,394,1495,1523">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,1526,849,1495,1523">blnterfaceNumber;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1573,394,1544,1572">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="547,1581,838,1544,1572">bAlternateSetting</WORD>
<WORD coords="859,1578,865,1553,1578">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1623,394,1594,1622">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,1631,816,1594,1622">bNumEndpoints;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1673,394,1644,1672">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="546,1673,802,1644,1672">blnterfaceClass</WORD>
<WORD coords="821,1678,827,1653,1678">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1723,394,1694,1722">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="542,1723,862,1694,1722">blnterfaceSubClass</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1773,394,1744,1772">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="548,1772,855,1744,1772">blnterfaceProtocol</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,1822,394,1793,1821">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="550,1821,706,1793,1821">ilnterface</WORD>
<WORD coords="728,1824,734,1802,1824">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,1881,253,1840,1881">}</WORD>
<WORD coords="281,1880,697,1843,1871">USBJnterfaceDescriptor</WORD>
<WORD coords="709,1876,715,1852,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1972,270,1943,1972">//</WORD>
<WORD coords="292,1980,473,1943,1971">Endpoint—</WORD>
<WORD coords="476,1980,662,1944,1971">Descriptor,</WORD>
<WORD coords="684,1972,752,1944,1971">H.J.</WORD>
<WORD coords="778,1976,870,1943,1971">Kelm,</WORD>
<WORD coords="894,1972,964,1943,1971">USB</WORD>
<WORD coords="976,1975,1034,1943,1972">2.0,</WORD>
<WORD coords="1065,1972,1179,1944,1971">section</WORD>
<WORD coords="1213,1972,1295,1943,1972">2.8.5</WORD>
<WORD coords="1324,1980,1416,1943,1971">(page</WORD>
<WORD coords="1433,1976,1505,1943,1973">102)</WORD>
<WORD coords="1526,1972,1588,1943,1971">and</WORD>
<WORD coords="1607,1972,1721,1944,1971">section</WORD>
<WORD coords="1757,1971,1838,1943,1972">9.4.7</WORD>
<WORD coords="1865,1980,1958,1943,1971">(page</WORD>
<WORD coords="1973,1976,2047,1943,1972">298)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2029,369,1993,2021">typedef</WORD>
<WORD coords="390,2022,492,1995,2021">struct</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2081,253,2040,2081">{</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2121,394,2092,2120">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2129,682,2092,2120">bLength;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2171,394,2142,2170">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2179,812,2142,2170">bDescriptorType</WORD>
<WORD coords="821,2174,827,2151,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2221,394,2192,2220">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="535,2229,853,2192,2220">bEndpointAddress;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2271,394,2242,2270">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="538,2270,590,2242,2270">bm</WORD>
<WORD coords="592,2270,754,2242,2270">Attributes</WORD>
<WORD coords="765,2276,771,2251,0">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="282,2321,414,2292,2320">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="536,2326,831,2292,2320">wMaxPacketSize;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="284,2370,394,2341,2369">uint8_t</WORD>
</LINE>
</PARAGRAPH>
</REGION>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="544,2369,692,2341,2369">blnterval</WORD>
<WORD coords="709,2372,715,2350,2372">;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,2429,253,2388,2429">}</WORD>
<WORD coords="275,2428,705,2391,2419">USB_EndpointDescriptor;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="235,2520,268,2491,2519">/*</WORD>
<WORD coords="294,2520,347,2497,2519">not</WORD>
<WORD coords="368,2520,444,2491,2519">used</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="243,2578,368,2541,2571">typedef</WORD>
<WORD coords="386,2569,461,2541,2569">char</WORD>
<WORD coords="483,2578,1431,2541,2569">USBStringDescriptor[USB-MaxStringDescriptorLength</WORD>
<WORD coords="1433,2575,1459,2541,2574">];</WORD>
</LINE>
<LINE>
<WORD coords="239,2619,310,2590,2618">void</WORD>
<WORD coords="332,2619,568,2591,2618">InitDeviceDes</WORD>
<WORD coords="576,2625,587,2591,2619">(</WORD>
<WORD coords="595,2619,665,2590,2618">USB</WORD>
<WORD coords="670,2627,977,2591,2618">_DeviceDescriptor</WORD>
<WORD coords="990,2624,1054,2590,2619">*d);</WORD>
</LINE>
<LINE>
<WORD coords="238,2669,310,2640,2668">void</WORD>
<WORD coords="339,2677,692,2640,2669">InitConfigurationDes</WORD>
<WORD coords="707,2677,1226,2640,2669">(USB_ConfigurationDescriptor</WORD>
<WORD coords="1247,2674,1314,2640,2669">*c);</WORD>
</LINE>
<LINE>
<WORD coords="239,2719,310,2690,2718">void</WORD>
<WORD coords="343,2727,1073,2690,2718">InitInterfaceDes(USBJnterfaceDescriptor</WORD>
<WORD coords="1098,2726,1164,2690,2719">*i);</WORD>
</LINE>
<LINE>
<WORD coords="239,2769,310,2740,2768">void</WORD>
<WORD coords="332,2777,605,2739,2768">InitEndpointDes</WORD>
<WORD coords="614,2775,625,2740,2769">(</WORD>
<WORD coords="632,2769,703,2740,2768">USB</WORD>
<WORD coords="707,2777,1052,2740,2768">JEndpointDescriptor</WORD>
<WORD coords="1064,2773,1128,2740,2769">*e);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2819,275,2790,2818">*/</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,349,2888,2917">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0031.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0032.djvu" width="2481">
<PARAM name="PAGE" value="sources_0032.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1481,133,1541,104,133">usb</WORD>
<WORD coords="1556,141,1662,112,132">spec.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2418,104,133">33</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,643,249,277">AT90USB/usb_spec.c</WORD>
</LINE>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="315,330,527,299,327">Initialization</WORD>
<WORD coords="575,336,613,299,332">of</WORD>
<WORD coords="632,328,703,299,327">USB</WORD>
<WORD coords="721,328,957,299,327">datastructures</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="516,377,586,349,377">27—</WORD>
<WORD coords="590,377,695,350,377">FEB—</WORD>
<WORD coords="698,377,782,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,384,447,476">#include</WORD>
<WORD coords="405,485,628,448,476">”usb_spec.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="405,535,610,498,526">”usb_api.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="296,627,367,598,626">USB</WORD>
<WORD coords="380,627,449,608,626">uses</WORD>
<WORD coords="480,627,553,598,626">little</WORD>
<WORD coords="592,627,702,598,626">endian</WORD>
<WORD coords="716,635,844,598,627">format,</WORD>
<WORD coords="872,635,1016,608,626">avr—gcc</WORD>
<WORD coords="1028,631,1088,603,627">too,</WORD>
<WORD coords="1115,627,1150,608,627">so</WORD>
<WORD coords="1171,627,1209,608,626">no</WORD>
<WORD coords="1230,635,1329,598,626">byte—</WORD>
<WORD coords="1333,635,1417,608,626">swap</WORD>
<WORD coords="1430,627,1455,599,626">is</WORD>
<WORD coords="1472,635,1634,608,626">necessary</WORD>
<WORD coords="1653,635,1708,598,629">for</WORD>
<WORD coords="1732,626,1771,598,626">16</WORD>
<WORD coords="1793,626,1837,598,626">bit</WORD>
<WORD coords="1862,627,1933,598,626">data</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="235,727,268,698,726">/*</WORD>
<WORD coords="298,727,343,703,727">set</WORD>
<WORD coords="376,735,526,698,727">defaults,</WORD>
<WORD coords="554,727,599,708,726">we</WORD>
<WORD coords="610,727,701,698,726">don’t</WORD>
<WORD coords="732,735,825,698,726">really</WORD>
<WORD coords="853,727,932,698,726">need</WORD>
<WORD coords="955,727,1012,698,726">this</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,826,310,797,825">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,876,474,848,875">InitDeviceDes</WORD>
<WORD coords="483,882,494,847,882">(</WORD>
<WORD coords="501,876,572,847,875">USB</WORD>
<WORD coords="590,884,884,848,875">DeviceDescriptor</WORD>
<WORD coords="896,876,936,846,876">*d</WORD>
<WORD coords="938,880,947,853,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,935,253,894,935">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,983,492,947,975">d—&gt;bLength</WORD>
<WORD coords="509,970,529,959,973">=</WORD>
<WORD coords="547,976,618,947,975">USB</WORD>
<WORD coords="622,984,1055,947,975">JOeviceDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,1033,635,996,1024">d—&gt;bDescriptorType</WORD>
<WORD coords="651,1019,672,1008,1022">=</WORD>
<WORD coords="689,1033,1160,996,1024">USBJDeviceDescriptorType;</WORD>
</LINE>
<LINE>
<WORD coords="274,1076,493,1046,1074">d—&gt;bcdUSB</WORD>
<WORD coords="509,1069,529,1058,1072">=</WORD>
<WORD coords="547,1083,780,1046,1074">USBSpeclJ;</WORD>
</LINE>
<LINE>
<WORD coords="274,1126,585,1096,1124">d—&gt;bDeviceClass</WORD>
<WORD coords="600,1119,620,1108,1121">=</WORD>
<WORD coords="637,1129,667,1096,1126">0;</WORD>
</LINE>
<LINE>
<WORD coords="274,1176,647,1146,1174">d—&gt;bDeviceSubClass</WORD>
<WORD coords="663,1169,683,1158,1171">=</WORD>
<WORD coords="699,1179,729,1146,1176">0;</WORD>
</LINE>
<LINE>
<WORD coords="274,1226,648,1196,1224">d—&gt;bDeviceProtocoll</WORD>
<WORD coords="663,1219,683,1208,1221">=</WORD>
<WORD coords="699,1229,729,1196,1226">0;</WORD>
</LINE>
<LINE>
<WORD coords="274,1276,649,1245,1273">d—&gt;bMaxPacketSizeO</WORD>
<WORD coords="663,1268,683,1257,1271">=</WORD>
<WORD coords="699,1273,769,1245,1273">EPO</WORD>
<WORD coords="772,1274,878,1245,1273">_FIFO</WORD>
<WORD coords="882,1278,971,1245,1274">Size;</WORD>
</LINE>
<LINE>
<WORD coords="274,1325,509,1295,1323">d—&gt;idVendor</WORD>
<WORD coords="523,1318,544,1307,1321">=</WORD>
<WORD coords="556,1331,685,1295,1323">MyUSB</WORD>
<WORD coords="689,1328,873,1295,1323">_VendorID;</WORD>
</LINE>
<LINE>
<WORD coords="274,1375,522,1345,1373">d—&gt;idProduct</WORD>
<WORD coords="537,1368,557,1357,1371">=</WORD>
<WORD coords="571,1381,699,1345,1373">MyUSB</WORD>
<WORD coords="703,1378,902,1345,1373">_ProductID;</WORD>
</LINE>
<LINE>
<WORD coords="274,1425,531,1395,1423">d—&gt;bcdDevice</WORD>
<WORD coords="547,1418,567,1407,1420">=</WORD>
<WORD coords="583,1431,634,1396,1423">My</WORD>
<WORD coords="639,1424,709,1395,1423">USB</WORD>
<WORD coords="728,1423,773,1396,1423">De</WORD>
<WORD coords="777,1424,864,1396,1423">viceB</WORD>
<WORD coords="869,1424,922,1395,1423">CD</WORD>
<WORD coords="926,1426,934,1405,0">;</WORD>
</LINE>
<LINE>
<WORD coords="274,1482,600,1445,1473">d—&gt;iManufacturer</WORD>
<WORD coords="613,1468,634,1457,1471">=</WORD>
<WORD coords="652,1474,722,1445,1473">USB</WORD>
<WORD coords="727,1482,1172,1445,1473">JdanufacturerStringlndex;</WORD>
</LINE>
<LINE>
<WORD coords="274,1525,502,1495,1523">d—&gt;iProduct</WORD>
<WORD coords="516,1518,536,1507,1521">=</WORD>
<WORD coords="555,1524,625,1495,1523">USB</WORD>
<WORD coords="630,1524,806,1495,1523">-/‘roductSt</WORD>
<WORD coords="808,1531,874,1496,1523">ring</WORD>
<WORD coords="877,1528,977,1495,1523">Index;</WORD>
</LINE>
<LINE>
<WORD coords="274,1574,604,1544,1572">d—&gt;iSeriaINumber</WORD>
<WORD coords="617,1567,637,1556,1570">=</WORD>
<WORD coords="656,1581,1179,1544,1572">USBSerialNumberStringlndex;</WORD>
</LINE>
<LINE>
<WORD coords="274,1630,705,1594,1623">d—&gt;bNumConfiqurations</WORD>
<WORD coords="720,1617,741,1606,1619">=</WORD>
<WORD coords="757,1627,787,1594,1624">1;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1682,253,1641,1682">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1773,310,1744,1772">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="245,1830,599,1793,1822">InitConfigurationDes</WORD>
<WORD coords="614,1830,1133,1793,1822">(USB_ConfigurationDescriptor</WORD>
<WORD coords="1154,1826,1204,1793,1822">*c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1881,253,1840,1881">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1930,490,1893,1921">c—&gt;bLength</WORD>
<WORD coords="507,1916,527,1905,1919">=</WORD>
<WORD coords="545,1922,616,1893,1921">USB</WORD>
<WORD coords="620,1930,762,1893,1924">_Configu</WORD>
<WORD coords="766,1922,862,1894,1921">ration</WORD>
<WORD coords="867,1930,1171,1893,1921">Descri/)torLength;</WORD>
</LINE>
<LINE>
<WORD coords="274,1980,633,1943,1971">c—&gt;bDescriptorType</WORD>
<WORD coords="649,1966,670,1955,1970">=</WORD>
<WORD coords="687,1980,1275,1943,1971">USBJSonfigurationDescriptorType;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2030,582,1992,2021">c—&gt;wTotalLength</WORD>
<WORD coords="597,2016,619,2005,2018">=</WORD>
<WORD coords="633,2026,665,1993,2023">0;</WORD>
<WORD coords="675,2022,706,1993,2022">//</WORD>
<WORD coords="731,2022,788,1993,2021">this</WORD>
<WORD coords="816,2022,878,1993,2021">and</WORD>
<WORD coords="894,2021,941,1993,2021">the</WORD>
<WORD coords="964,2030,1126,1993,2022">following</WORD>
<WORD coords="1157,2030,1250,1993,2022">fields</WORD>
<WORD coords="1283,2021,1361,1999,2021">must</WORD>
<WORD coords="1376,2021,1413,1993,2021">be</WORD>
<WORD coords="1440,2030,1530,1993,2024">filled</WORD>
<WORD coords="1565,2022,1633,1993,2021">with</WORD>
<WORD coords="1663,2022,1780,1998,2021">correct</WORD>
<WORD coords="1810,2022,1932,1993,2021">values!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2080,620,2043,2071">c—&gt;bNumInterfaces</WORD>
<WORD coords="636,2066,656,2055,2068">=</WORD>
<WORD coords="672,2076,702,2043,2073">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2129,700,2092,2121">c—&gt;bConfigurationValue</WORD>
<WORD coords="716,2115,737,2104,2117">=</WORD>
<WORD coords="751,2125,782,2092,2122">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2179,597,2142,2171">c—&gt;iConfiguration</WORD>
<WORD coords="615,2165,636,2154,2167">=</WORD>
<WORD coords="650,2175,681,2142,2172">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2222,569,2192,2220">c—&gt;bmAttributes</WORD>
<WORD coords="584,2215,605,2204,2217">=</WORD>
<WORD coords="620,2225,650,2192,2222">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2272,536,2243,2270">c—&gt;MaxPower</WORD>
<WORD coords="550,2265,570,2254,2267">=</WORD>
<WORD coords="585,2275,616,2242,2272">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2330,253,2289,2330">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2420,310,2391,2419">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="249,2478,520,2441,2469">InitlnterfaceDes</WORD>
<WORD coords="539,2478,979,2441,2469">(USBJnterfaceDescriptor</WORD>
<WORD coords="1005,2474,1053,2441,2470">*i)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2529,253,2488,2529">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,2578,491,2540,2569">i—&gt;bLength</WORD>
<WORD coords="507,2564,527,2553,2567">=</WORD>
<WORD coords="545,2578,1088,2541,2569">USBJnterfaceDescriptorLength;</WORD>
</LINE>
<LINE>
<WORD coords="279,2618,288,2591,2618">i</WORD>
<WORD coords="295,2608,321,2607,2614">—</WORD>
<WORD coords="328,2627,633,2590,2618">&gt;bDescriptorType</WORD>
<WORD coords="649,2613,670,2602,2616">=</WORD>
<WORD coords="687,2619,758,2590,2618">USB</WORD>
<WORD coords="762,2627,1193,2590,2618">JnterfaceDescriptorType;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,2677,662,2640,2668">i-&gt;bInterfaceNumber</WORD>
<WORD coords="675,2663,696,2652,2665">=</WORD>
<WORD coords="710,2673,782,2640,2669">0;//</WORD>
<WORD coords="805,2668,862,2640,2668">this</WORD>
<WORD coords="891,2669,953,2640,2668">and</WORD>
<WORD coords="968,2668,1016,2640,2668">the</WORD>
<WORD coords="1039,2677,1200,2640,2669">following</WORD>
<WORD coords="1232,2676,1324,2640,2670">fields</WORD>
<WORD coords="1358,2668,1435,2645,2668">must</WORD>
<WORD coords="1451,2669,1488,2640,2668">be</WORD>
<WORD coords="1514,2677,1605,2640,2671">filled</WORD>
<WORD coords="1639,2669,1708,2640,2668">with</WORD>
<WORD coords="1737,2669,1855,2645,2668">correct</WORD>
<WORD coords="1885,2669,2007,2640,2668">values!</WORD>
</LINE>
<LINE>
<WORD coords="279,2718,288,2691,2718">i</WORD>
<WORD coords="295,2709,321,2706,2714">—</WORD>
<WORD coords="328,2727,646,2690,2718">&gt;bAlternateSetting</WORD>
<WORD coords="669,2713,689,2702,2715">=</WORD>
<WORD coords="707,2723,736,2690,2720">0;</WORD>
</LINE>
<LINE>
<WORD coords="279,2769,288,2741,2769">i</WORD>
<WORD coords="295,2759,321,2757,2764">—</WORD>
<WORD coords="328,2777,623,2739,2768">&gt;bNumEndpoints</WORD>
<WORD coords="638,2763,658,2752,2765">=</WORD>
<WORD coords="675,2773,704,2740,2770">0;</WORD>
</LINE>
<LINE>
<WORD coords="279,2818,288,2791,2818">i</WORD>
<WORD coords="295,2808,321,2807,2814">—</WORD>
<WORD coords="328,2827,618,2790,2818">&gt;bInterfaceClass</WORD>
<WORD coords="634,2813,654,2802,2815">=</WORD>
<WORD coords="670,2823,700,2790,2820">0;</WORD>
</LINE>
<LINE>
<WORD coords="279,2868,288,2841,2868">i</WORD>
<WORD coords="295,2859,321,2856,2864">—</WORD>
<WORD coords="328,2877,680,2840,2868">&gt;bInterfaceSubClass</WORD>
<WORD coords="696,2863,716,2852,2865">=</WORD>
<WORD coords="732,2873,762,2840,2870">0;</WORD>
</LINE>
<LINE>
<WORD coords="279,2917,288,2890,2917">i</WORD>
<WORD coords="295,2907,320,2906,2913">—</WORD>
<WORD coords="328,2926,670,2889,2917">&gt;bInterfaceProtocol</WORD>
<WORD coords="688,2912,709,2901,2914">=</WORD>
<WORD coords="724,2922,755,2889,2919">0;</WORD>
</LINE>
<LINE>
<WORD coords="279,2967,288,2940,2967">i</WORD>
<WORD coords="295,2957,320,2956,2963">—</WORD>
<WORD coords="328,2976,516,2939,2968">&gt;ilnterface</WORD>
<WORD coords="539,2962,559,2951,2964">=</WORD>
<WORD coords="576,2972,606,2939,2969">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,3027,253,2986,3027">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="238,3118,310,3089,3117">void</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0032.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0033.djvu" width="2481">
<PARAM name="PAGE" value="sources_0033.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,141,1662,104,132">usbjspec.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="239,286,512,249,277">InitEndpointDes</WORD>
<WORD coords="520,284,531,249,284">(</WORD>
<WORD coords="539,278,609,249,277">USB</WORD>
<WORD coords="614,286,959,249,277">_EndpointDescriptor</WORD>
<WORD coords="971,283,1019,249,278">*e)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,337,253,296,337">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,386,490,349,377">e—&gt;bLength</WORD>
<WORD coords="507,372,527,361,375">=</WORD>
<WORD coords="545,378,616,349,377">USB</WORD>
<WORD coords="634,386,785,349,377">Endpoint</WORD>
<WORD coords="786,386,965,350,377">Descriptor</WORD>
<WORD coords="966,385,1091,349,377">Length;</WORD>
</LINE>
<LINE>
<WORD coords="274,436,633,399,427">e—&gt;bDescriptorType</WORD>
<WORD coords="649,422,670,411,425">=</WORD>
<WORD coords="687,428,758,399,427">USB</WORD>
<WORD coords="776,436,927,399,427">Endpoint</WORD>
<WORD coords="929,436,1195,400,427">DescriptorType;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,485,660,448,476">e-&gt;bEndpointAddress</WORD>
<WORD coords="675,471,697,460,473">=</WORD>
<WORD coords="711,481,783,448,477">0;//</WORD>
<WORD coords="805,476,862,448,476">this</WORD>
<WORD coords="891,477,953,448,476">and</WORD>
<WORD coords="968,476,1016,448,476">the</WORD>
<WORD coords="1039,485,1201,448,477">following</WORD>
<WORD coords="1232,484,1324,448,477">fields</WORD>
<WORD coords="1358,476,1435,453,476">must</WORD>
<WORD coords="1451,476,1488,448,476">be</WORD>
<WORD coords="1514,485,1605,448,479">filled</WORD>
<WORD coords="1639,477,1708,448,476">with</WORD>
<WORD coords="1737,477,1855,453,476">correct</WORD>
<WORD coords="1885,477,1987,448,476">values</WORD>
</LINE>
<LINE>
<WORD coords="274,528,569,498,526">e—&gt;bmAttributes</WORD>
<WORD coords="584,521,605,510,523">=</WORD>
<WORD coords="620,531,650,498,528">0;</WORD>
</LINE>
<LINE>
<WORD coords="274,579,632,548,576">e—&gt;wMaxPacketSize</WORD>
<WORD coords="647,571,668,560,573">=</WORD>
<WORD coords="683,581,714,548,578">0;</WORD>
</LINE>
<LINE>
<WORD coords="274,628,508,598,626">e—&gt;blnter\’al</WORD>
<WORD coords="523,621,544,610,623">=</WORD>
<WORD coords="558,631,589,598,628">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,686,253,645,686">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0033.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0034.djvu" width="2481">
<PARAM name="PAGE" value="sources_0034.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2418,104,133">35</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,625,249,277">AT90USB/usb_drv.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="291,328,416,300,327">Macros</WORD>
<WORD coords="422,336,478,299,330">for</WORD>
<WORD coords="500,328,606,309,327">access</WORD>
<WORD coords="633,328,661,304,327">to</WORD>
<WORD coords="688,328,759,299,327">USB</WORD>
<WORD coords="780,336,918,300,327">registers</WORD>
<WORD coords="949,336,987,299,332">of</WORD>
<WORD coords="1000,328,1113,299,327">Atmels</WORD>
<WORD coords="1130,328,1295,299,327">AT90USB</WORD>
<WORD coords="1308,328,1581,299,327">microcontrollers</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="296,377,364,349,377">This</WORD>
<WORD coords="391,386,446,349,381">file</WORD>
<WORD coords="484,378,622,350,377">contains</WORD>
<WORD coords="649,378,706,349,377">low</WORD>
<WORD coords="731,378,806,349,378">level</WORD>
<WORD coords="847,386,972,350,377">register</WORD>
<WORD coords="1014,386,1090,349,380">stuff</WORD>
<WORD coords="1115,378,1150,359,378">as</WORD>
<WORD coords="1174,378,1336,349,377">described</WORD>
<WORD coords="1361,378,1391,350,378">in</WORD>
</LINE>
<LINE>
<WORD coords="241,428,269,399,428">//</WORD>
<WORD coords="290,427,404,399,427">Atmels</WORD>
<WORD coords="421,428,586,399,427">AT90USB</WORD>
<WORD coords="598,428,757,399,427">datasheet</WORD>
<WORD coords="770,428,1013,399,427">7593D—AVR—</WORD>
<WORD coords="1017,428,1110,399,427">07/06</WORD>
</LINE>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="293,477,322,448,477">S.</WORD>
<WORD coords="351,477,494,448,476">Salewski</WORD>
<WORD coords="517,476,586,448,476">21—</WORD>
<WORD coords="590,476,704,448,476">MAR—</WORD>
<WORD coords="708,476,792,448,476">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,576,366,547,576">#ifndef</WORD>
<WORD coords="388,577,640,548,576">_USB_DRV_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="402,627,478,598,626">USB</WORD>
<WORD coords="499,626,578,599,626">DRV</WORD>
<WORD coords="599,626,622,599,626">H</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="408,728,603,698,726">&lt;avr/io.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="408,777,603,747,775">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,384,796,825">#include</WORD>
<WORD coords="408,827,622,797,825">&lt;stdbool.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,384,846,875">#include</WORD>
<WORD coords="405,857,421,847,866">”</WORD>
<WORD coords="430,875,545,847,875">defines</WORD>
<WORD coords="560,875,564,871,875">.</WORD>
<WORD coords="573,875,610,847,875">h”</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="387,984,874,947,975">UsbNumEndpointsAT90USB</WORD>
<WORD coords="888,975,905,948,975">7</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1083,723,1046,1074">UsbEP_TypeControl</WORD>
<WORD coords="834,1075,853,1046,1075">0</WORD>
</LINE>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1133,647,1096,1124">UsbEP.Typelso</WORD>
<WORD coords="838,1124,849,1096,1124">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="386,1175,500,1146,1174">UsbEP</WORD>
<WORD coords="516,1183,678,1146,1174">TypeBulk</WORD>
<WORD coords="834,1174,852,1146,1174">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="387,1225,499,1196,1224">UsbEP</WORD>
<WORD coords="503,1233,742,1196,1224">_TypeInterrupt</WORD>
<WORD coords="835,1225,851,1196,1225">3</WORD>
</LINE>
<LINE>
<WORD coords="236,1273,363,1244,1273">#define</WORD>
<WORD coords="387,1274,499,1245,1273">UsbEP</WORD>
<WORD coords="503,1274,632,1245,1273">_DirOut</WORD>
<WORD coords="834,1274,853,1245,1274">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="387,1324,499,1295,1323">UsbEP</WORD>
<WORD coords="503,1324,696,1295,1323">_DirControl</WORD>
<WORD coords="834,1324,853,1295,1324">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,363,1344,1373">#define</WORD>
<WORD coords="387,1374,499,1345,1373">UsbEP</WORD>
<WORD coords="503,1374,605,1345,1373">_DirIn</WORD>
<WORD coords="838,1373,849,1345,1373">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="387,1482,762,1445,1473">UsbUnconfiguredState</WORD>
<WORD coords="834,1474,853,1445,1474">0</WORD>
</LINE>
<LINE>
<WORD coords="236,1523,363,1494,1523">#define</WORD>
<WORD coords="389,1532,830,1495,1523">UsblnterfaceUnconfigured</WORD>
<WORD coords="853,1524,940,1495,1523">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1573,739,1544,1572">UsbNoInterfaceClass</WORD>
<WORD coords="834,1573,921,1544,1572">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1622,363,1593,1622">#define</WORD>
<WORD coords="387,1623,802,1594,1622">UsbNoInterfaceSubClass</WORD>
<WORD coords="834,1623,921,1594,1622">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1672,363,1643,1672">#define</WORD>
<WORD coords="392,1673,808,1644,1672">UsbNoInterfaceProtokoll</WORD>
<WORD coords="834,1673,921,1644,1672">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="386,1723,708,1694,1722">UsbNoDeviceClass</WORD>
<WORD coords="834,1723,921,1694,1722">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1773,773,1744,1772">UsbNoDeviceSubClass</WORD>
<WORD coords="834,1773,921,1744,1772">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1822,772,1793,1821">UsbNoDeviceProtokoll</WORD>
<WORD coords="834,1822,921,1793,1821">OxFF</WORD>
</LINE>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,796,1843,1871">UsbNoDescriptionString</WORD>
<WORD coords="834,1872,853,1843,1872">0</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,1972,347,1945,1971">extern</WORD>
<WORD coords="378,1972,460,1943,1971">uintS</WORD>
<WORD coords="477,1971,487,1949,1971">t</WORD>
<WORD coords="517,1976,818,1943,1971">UsbAllocatedEPs;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2022,347,1995,2021">extern</WORD>
<WORD coords="378,2022,504,1993,2021">volatile</WORD>
<WORD coords="546,2022,628,1993,2021">uintS</WORD>
<WORD coords="645,2021,655,1998,2021">t</WORD>
<WORD coords="689,2030,1015,1993,2021">UsbStartupFinished</WORD>
<WORD coords="1027,2026,1033,2002,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2121,310,2092,2120">void</WORD>
<WORD coords="330,2125,791,2092,2120">UsbDevFaunchDevice(bool</WORD>
<WORD coords="804,2129,982,2092,2120">lowspeed);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2170,308,2142,2170">bool</WORD>
<WORD coords="330,2179,747,2142,2170">UsbDevEP_Setup(uint8_t</WORD>
<WORD coords="760,2173,841,2151,2170">num,</WORD>
<WORD coords="863,2171,973,2142,2170">uint8_t</WORD>
<WORD coords="1004,2179,1088,2147,2170">type,</WORD>
<WORD coords="1123,2171,1254,2142,2170">uintl6_t</WORD>
<WORD coords="1289,2173,1369,2142,2170">size,</WORD>
<WORD coords="1404,2171,1515,2142,2170">uint8_t</WORD>
<WORD coords="1543,2173,1651,2142,2170">banks,</WORD>
<WORD coords="1684,2171,1795,2142,2170">uint8_t</WORD>
<WORD coords="1829,2175,1911,2142,2170">dir);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2221,310,2192,2220">void</WORD>
<WORD coords="341,2221,598,2192,2220">UsblnitialReset</WORD>
<WORD coords="614,2226,734,2191,2220">(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2271,310,2242,2270">void</WORD>
<WORD coords="330,2276,662,2241,2270">UsbStartPFF(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2321,310,2292,2320">void</WORD>
<WORD coords="330,2326,841,2292,2320">UsbDevStartDeviceEPO(void);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2420,270,2391,2420">//</WORD>
<WORD coords="290,2419,315,2391,2419">A</WORD>
<WORD coords="323,2428,385,2391,2422">few</WORD>
<WORD coords="405,2420,523,2401,2419">macros</WORD>
<WORD coords="532,2428,588,2391,2422">for</WORD>
<WORD coords="616,2419,660,2391,2419">bit</WORD>
<WORD coords="689,2428,821,2391,2421">fiddling</WORD>
</LINE>
<LINE>
<WORD coords="236,2469,363,2440,2469">#define</WORD>
<WORD coords="391,2475,584,2441,2469">SetBit(adr,</WORD>
<WORD coords="615,2476,680,2441,2469">bit)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2519,363,2490,2519">#define</WORD>
<WORD coords="391,2525,621,2491,2519">ClearBit(adr,</WORD>
<WORD coords="653,2526,717,2491,2519">bit)</WORD>
</LINE>
<LINE>
<WORD coords="236,2569,363,2540,2569">#define</WORD>
<WORD coords="394,2570,526,2541,2569">BitlsSet</WORD>
<WORD coords="539,2575,621,2541,2569">(adr,</WORD>
<WORD coords="653,2576,717,2541,2569">bit)</WORD>
</LINE>
<LINE>
<WORD coords="236,2618,363,2589,2618">#define</WORD>
<WORD coords="394,2619,564,2590,2618">BitlsClear</WORD>
<WORD coords="576,2621,586,2591,2618">(</WORD>
<WORD coords="594,2618,645,2590,2618">adr</WORD>
<WORD coords="653,2624,659,2614,2624">,</WORD>
<WORD coords="690,2619,733,2590,2618">bit</WORD>
<WORD coords="744,2625,755,2590,0">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1137,2472,1206,2441,2469">(adr</WORD>
<WORD coords="1232,2479,1260,2438,2472">|=</WORD>
<WORD coords="1302,2476,1469,2441,2469">(l«bit))</WORD>
</LINE>
<LINE>
<WORD coords="1137,2522,1206,2491,2519">(adr</WORD>
<WORD coords="1228,2526,1474,2491,2519">&amp;=~(l&lt;&lt;bit))</WORD>
</LINE>
<LINE>
<WORD coords="1137,2572,1206,2541,2569">(adr</WORD>
<WORD coords="1228,2576,1437,2541,2569">&amp;(l&lt;&lt;bit))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1142,2625,1180,2590,2619">(!(</WORD>
<WORD coords="1191,2619,1243,2590,2618">adr</WORD>
<WORD coords="1265,2625,1488,2590,2618">&amp;(l«bit)))</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2719,270,2690,2719">//</WORD>
<WORD coords="290,2718,316,2690,2718">A</WORD>
<WORD coords="323,2727,385,2690,2721">few</WORD>
<WORD coords="407,2727,513,2690,2718">simple</WORD>
<WORD coords="536,2719,654,2700,2718">macros</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2768,363,2739,2768">#define</WORD>
<WORD coords="387,2777,887,2740,2768">UsbDevWaitStartupFinished()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="386,2827,1047,2790,2818">UsbOutEndpointAdress(endpointlndex)</WORD>
</LINE>
<LINE>
<WORD coords="236,2868,363,2839,2868">#define</WORD>
<WORD coords="387,2877,1019,2840,2868">UsblnEndpointAdress(endpointlndex)</WORD>
</LINE>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="387,2926,979,2889,2917">UsbConfigurationValue(conflndex)</WORD>
</LINE>
<LINE>
<WORD coords="324,2976,540,2939,2968">unconfigured</WORD>
<WORD coords="566,2974,577,2939,2967">(</WORD>
<WORD coords="582,2968,749,2939,2967">addressed</WORD>
<WORD coords="754,2972,763,2939,2972">)</WORD>
<WORD coords="794,2968,870,2944,2967">state</WORD>
</LINE>
<LINE>
<WORD coords="241,3018,269,2989,3017">//</WORD>
<WORD coords="273,3017,295,2989,3018">#</WORD>
<WORD coords="300,3026,397,2989,3020">define</WORD>
<WORD coords="427,3024,757,2989,3017">UsbMaxPower2mA(</WORD>
<WORD coords="759,3017,811,2989,3017">mA</WORD>
<WORD coords="816,3022,825,2989,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3067,363,3038,3067">#define</WORD>
<WORD coords="387,3068,874,3039,3067">UsbConfDesAttrBusPowered</WORD>
</LINE>
<LINE>
<WORD coords="329,3117,492,3089,3117">Attributes</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,2769,1225,2740,2768">while</WORD>
<WORD coords="1251,2774,1273,2740,2770">(!</WORD>
<WORD coords="1286,2777,1632,2740,2768">UsbStartupFinished)</WORD>
<WORD coords="1643,2774,1649,2749,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1137,2823,1147,2790,2818">(</WORD>
<WORD coords="1154,2827,1391,2790,2818">endpointlndex</WORD>
<WORD coords="1415,2819,1444,2790,2819">&amp;</WORD>
<WORD coords="1460,2825,1509,2790,2820">15)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1137,2873,1147,2840,2868">(</WORD>
<WORD coords="1154,2877,1391,2840,2868">endpointlndex</WORD>
<WORD coords="1415,2868,1444,2840,2868">&amp;</WORD>
<WORD coords="1460,2875,1509,2840,2872">15)</WORD>
<WORD coords="1533,2878,1535,2837,2878">|</WORD>
<WORD coords="1564,2875,1694,2840,2870">(1&lt;&lt;7)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1137,2923,1318,2889,2917">(conflndex</WORD>
<WORD coords="1339,2917,1360,2896,2917">+</WORD>
<WORD coords="1382,2924,1409,2889,2921">1)</WORD>
<WORD coords="1735,2918,1765,2889,2918">//</WORD>
<WORD coords="1790,2922,1841,2889,2919">+1,</WORD>
<WORD coords="1862,2918,1993,2889,2917">because</WORD>
<WORD coords="2011,2917,2031,2889,2917">0</WORD>
<WORD coords="2059,2918,2206,2889,2917">indicates</WORD>
<WORD coords="2248,2917,2263,2887,2917">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1137,3024,1251,2989,3017">(mA/2)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1134,3074,1264,3039,3070">(1&lt;&lt;7)</WORD>
<WORD coords="1735,3068,1765,3039,3068">//</WORD>
<WORD coords="1788,3068,1840,3048,3068">use</WORD>
<WORD coords="1869,3077,1871,3036,3077">|</WORD>
<WORD coords="1903,3068,1932,3044,3067">to</WORD>
<WORD coords="1955,3068,2093,3039,3067">combine</WORD>
<WORD coords="2111,3068,2192,3039,3067">these</WORD>
<WORD coords="2217,3067,2235,3039,3067">3</WORD>
<WORD coords="2267,3067,2282,3037,3067">2</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0034.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0035.djvu" width="2481">
<PARAM name="PAGE" value="sources_0035.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1540,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2419,104,133">36</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,277,363,248,277">#define</WORD>
<WORD coords="387,278,876,249,277">UsbConfDesAttrSelfPowered</WORD>
<WORD coords="1134,284,1264,249,280">(1&lt;&lt;7)</WORD>
<WORD coords="1281,287,1283,246,287">|</WORD>
<WORD coords="1302,284,1432,249,280">(1&lt;&lt;6)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,327,363,298,327">#define</WORD>
<WORD coords="387,336,928,299,327">UsbConfDesAttrRemoteWakeup</WORD>
<WORD coords="1134,334,1264,299,330">(1&lt;&lt;7)</WORD>
<WORD coords="1281,337,1283,283,337">j</WORD>
<WORD coords="1302,334,1432,299,330">(1&lt;&lt;5)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="297,428,415,399,427">Section</WORD>
<WORD coords="442,428,505,399,427">and</WORD>
<WORD coords="514,436,594,409,427">page</WORD>
<WORD coords="620,436,786,399,428">references</WORD>
<WORD coords="824,436,902,399,429">refer</WORD>
<WORD coords="931,428,960,405,427">to</WORD>
<WORD coords="991,428,1106,399,427">release</WORD>
<WORD coords="1135,428,1377,399,427">7593D—AVR—</WORD>
<WORD coords="1383,428,1475,399,427">07/06</WORD>
<WORD coords="1488,436,1525,399,431">of</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="290,476,404,448,476">Atmels</WORD>
<WORD coords="423,476,551,448,476">Manual</WORD>
<WORD coords="556,485,611,448,479">for</WORD>
<WORD coords="626,477,791,448,476">AT90USB</WORD>
<WORD coords="804,477,923,448,476">devices</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,577,270,548,577">//</WORD>
<WORD coords="296,577,366,548,576">USB</WORD>
<WORD coords="378,584,503,548,576">general</WORD>
<WORD coords="531,585,694,549,576">registers,</WORD>
<WORD coords="729,577,843,549,576">section</WORD>
<WORD coords="878,576,999,548,576">21.12.1</WORD>
</LINE>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="296,627,474,598,626">UHWCON</WORD>
<WORD coords="483,634,495,598,627">(</WORD>
<WORD coords="500,627,528,599,626">U</WORD>
<WORD coords="526,627,821,598,627">sbHardWareCON</WORD>
<WORD coords="813,634,979,598,627">figuration</WORD>
<WORD coords="985,631,994,598,0">)</WORD>
</LINE>
<LINE>
<WORD coords="236,676,363,647,676">#define</WORD>
<WORD coords="387,683,744,648,676">UsbSetDeviceMode()</WORD>
</LINE>
<LINE>
<WORD coords="320,735,473,698,726">manually</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,363,746,775">#define</WORD>
<WORD coords="387,782,706,747,775">UsbSetHostMode()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,363,796,825">#define</WORD>
<WORD coords="387,832,933,797,825">UsbEnableUID_ModeSelection()</WORD>
</LINE>
<LINE>
<WORD coords="317,884,370,848,875">pin</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="388,926,651,897,925">UsbDisableUID</WORD>
<WORD coords="667,933,945,897,925">ModeSelection()</WORD>
</LINE>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,983,938,946,975">UsbEnableUVCON_PinControl()</WORD>
</LINE>
<LINE>
<WORD coords="321,1033,421,996,1027">figure</WORD>
<WORD coords="451,1024,545,996,1021">21—7</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="386,1081,949,1046,1074">UsbDisableUVCONJPinControK)</WORD>
</LINE>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1133,834,1096,1124">UsbEnablePadsRegulator()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="387,1183,848,1146,1174">UsbDisablePadsRegulator()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="296,1274,456,1245,1273">USBCON</WORD>
<WORD coords="465,1280,553,1245,1273">(USB</WORD>
<WORD coords="567,1282,824,1244,1275">CONfiguration)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="388,1330,771,1295,1323">UsbEnableController()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,363,1344,1373">#define</WORD>
<WORD coords="391,1374,754,1345,1373">UsbDisableController</WORD>
<WORD coords="766,1380,789,1345,1378">()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="391,1424,791,1395,1423">UsblsControllerEnabled</WORD>
<WORD coords="803,1430,827,1395,1429">()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="387,1482,772,1445,1473">UsbSetHostModeRegO</WORD>
</LINE>
<LINE>
<WORD coords="334,1532,472,1496,1523">registers</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1581,811,1544,1572">UsbSetDeviceModeRegO</WORD>
</LINE>
<LINE>
<WORD coords="236,1622,363,1593,1622">#define</WORD>
<WORD coords="387,1629,688,1594,1622">UsbFreezeClock()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1672,363,1643,1672">#define</WORD>
<WORD coords="387,1679,692,1644,1672">UsbEnableClock()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="386,1729,738,1694,1722">UsblsClockFreezedQ</WORD>
</LINE>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1779,753,1744,1772">UsbEnableOTG_Pad()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1828,765,1793,1821">UsbDisableOTG_Pad()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="393,1872,846,1843,1871">UsbEnableID_TransitionInt</WORD>
<WORD coords="859,1878,883,1843,1877">()</WORD>
</LINE>
<LINE>
<WORD coords="323,1930,500,1894,1921">generation</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1971,363,1942,1971">#define</WORD>
<WORD coords="398,1972,499,1943,1971">UsbDi</WORD>
<WORD coords="505,1972,586,1943,1971">sable</WORD>
<WORD coords="592,1971,630,1944,1971">ID</WORD>
<WORD coords="648,1971,813,1943,1971">Transition</WORD>
<WORD coords="820,1971,826,1944,1971">I</WORD>
<WORD coords="833,1971,860,1949,1971">lit</WORD>
<WORD coords="878,1978,902,1943,1977">()</WORD>
</LINE>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="387,2022,566,1993,2021">UsbEnable</WORD>
<WORD coords="569,2021,622,1993,2021">VB</WORD>
<WORD coords="627,2022,675,1993,2022">US</WORD>
<WORD coords="681,2028,934,1993,2021">_TransitionInt()</WORD>
</LINE>
<LINE>
<WORD coords="331,2080,477,2044,2071">interrupt</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2120,363,2091,2120">#define</WORD>
<WORD coords="387,2127,945,2092,2120">UsbDisableVBUS_TransitionInt()</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1004,581,1009,572,583">,</WORD>
<WORD coords="1037,585,1117,558,576">page</WORD>
<WORD coords="1133,576,1193,548,576">263</WORD>
<WORD coords="1211,585,1248,548,580">of</WORD>
<WORD coords="1269,577,1427,548,576">datasheet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,677,1240,648,676">SetBit</WORD>
<WORD coords="1249,682,1458,648,676">(UHWCON,</WORD>
<WORD coords="1472,683,1623,648,676">UIMOD)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,776,1278,746,775">ClearBit</WORD>
<WORD coords="1286,781,1495,747,775">(UHWCON,</WORD>
<WORD coords="1509,779,1661,747,775">UIMOD)</WORD>
</LINE>
<LINE>
<WORD coords="1138,826,1240,797,825">SetBit</WORD>
<WORD coords="1249,831,1458,797,825">(UHWCON,</WORD>
<WORD coords="1473,832,1582,797,825">UIDE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,926,1277,897,925">ClearBit</WORD>
<WORD coords="1286,929,1495,897,925">(UHWCON,</WORD>
<WORD coords="1509,932,1619,897,925">UIDE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,976,1240,947,975">SetBit</WORD>
<WORD coords="1249,981,1458,947,975">(UHWCON,</WORD>
<WORD coords="1473,982,1656,947,975">UVCONE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,1075,1277,1046,1074">ClearBit</WORD>
<WORD coords="1286,1079,1495,1046,1074">(UHWCON,</WORD>
<WORD coords="1509,1081,1668,1046,1074">UVCON)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1125,1240,1096,1124">SetBit</WORD>
<WORD coords="1249,1130,1458,1096,1124">(UHWCON,</WORD>
<WORD coords="1473,1131,1651,1096,1124">UVREGE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1175,1277,1146,1174">ClearBit</WORD>
<WORD coords="1286,1178,1495,1146,1174">(UHWCON,</WORD>
<WORD coords="1509,1181,1688,1146,1174">UVREGE)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1138,1324,1240,1295,1323">SetBit</WORD>
<WORD coords="1249,1329,1439,1295,1323">(USBCON,</WORD>
<WORD coords="1453,1330,1570,1295,1323">USBE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1374,1277,1345,1373">ClearBit</WORD>
<WORD coords="1286,1378,1477,1345,1373">(USBCON,</WORD>
<WORD coords="1491,1380,1608,1345,1373">USBE)</WORD>
</LINE>
<LINE>
<WORD coords="1141,1424,1273,1395,1423">BitlsSet</WORD>
<WORD coords="1286,1429,1477,1395,1423">(USBCON,</WORD>
<WORD coords="1491,1430,1608,1395,1423">USBE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1474,1240,1445,1473">SetBit</WORD>
<WORD coords="1249,1479,1439,1445,1473">(USBCON,</WORD>
<WORD coords="1453,1477,1573,1445,1473">HOST)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,1573,1277,1544,1572">ClearBit</WORD>
<WORD coords="1286,1578,1477,1544,1572">(USBCON,</WORD>
<WORD coords="1491,1579,1610,1544,1572">HOST)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1623,1240,1594,1622">SetBit</WORD>
<WORD coords="1249,1628,1439,1594,1622">(USBCON,</WORD>
<WORD coords="1453,1629,1623,1594,1622">FRZCLK)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1673,1277,1644,1672">ClearBit</WORD>
<WORD coords="1286,1678,1477,1644,1672">(USBCON,</WORD>
<WORD coords="1491,1679,1661,1644,1672">FRZCLK)</WORD>
</LINE>
<LINE>
<WORD coords="1141,1723,1273,1694,1722">BitlsSet</WORD>
<WORD coords="1286,1728,1477,1694,1722">(USBCON,</WORD>
<WORD coords="1491,1729,1661,1694,1722">FRZCLK)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1773,1240,1744,1772">SetBit</WORD>
<WORD coords="1249,1778,1439,1744,1772">(USBCON,</WORD>
<WORD coords="1453,1777,1652,1744,1772">OTGPADE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1822,1277,1793,1821">ClearBit</WORD>
<WORD coords="1286,1827,1477,1793,1821">(USBCON,</WORD>
<WORD coords="1491,1828,1690,1793,1821">OTGPADE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1872,1240,1843,1871">SetBit</WORD>
<WORD coords="1249,1877,1439,1843,1871">(USBCON,</WORD>
<WORD coords="1453,1878,1559,1843,1871">IDTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,1972,1277,1943,1971">ClearBit</WORD>
<WORD coords="1286,1977,1477,1943,1971">(USBCON,</WORD>
<WORD coords="1491,1978,1596,1943,1971">IDTE)</WORD>
</LINE>
<LINE>
<WORD coords="1138,2022,1240,1993,2021">SetBit</WORD>
<WORD coords="1249,2027,1439,1993,2021">(USBCON,</WORD>
<WORD coords="1454,2028,1625,1993,2021">VBUSTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,2121,1277,2092,2120">ClearBit</WORD>
<WORD coords="1286,2126,1477,2092,2120">(USBCON,</WORD>
<WORD coords="1491,2127,1663,2092,2120">VBUSTE)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2221,270,2192,2221">//</WORD>
<WORD coords="296,2221,433,2192,2220">USBSTA</WORD>
<WORD coords="447,2227,657,2192,2220">(USBSTAtus,</WORD>
<WORD coords="674,2221,747,2192,2220">read</WORD>
<WORD coords="758,2229,840,2192,2220">only)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2270,363,2241,2270">#define</WORD>
<WORD coords="386,2279,773,2242,2270">UsbIsFullSpeedMode()</WORD>
<WORD coords="1141,2271,1273,2242,2270">BitlsSet</WORD>
<WORD coords="1286,2276,1464,2242,2270">(USBSTA,</WORD>
<WORD coords="1479,2277,1615,2242,2270">SPEED)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="326,2321,350,2293,2321">is</WORD>
<WORD coords="379,2321,408,2293,2321">in</WORD>
<WORD coords="434,2329,591,2292,2321">fullspeed</WORD>
<WORD coords="619,2325,714,2292,2320">mode,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2369,363,2340,2369">#define</WORD>
<WORD coords="387,2378,781,2341,2369">UsbIsLowSpeedMode()</WORD>
<WORD coords="1141,2370,1311,2341,2369">BitlsClear</WORD>
<WORD coords="1324,2375,1501,2341,2369">(USBSTA,</WORD>
<WORD coords="1516,2373,1653,2341,2369">SPEED)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="327,2420,554,2391,2419">indeterminate</WORD>
<WORD coords="585,2419,612,2392,2419">in</WORD>
<WORD coords="641,2420,744,2391,2419">device</WORD>
<WORD coords="768,2420,856,2391,2419">mode</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2469,363,2440,2469">#define</WORD>
<WORD coords="387,2478,735,2441,2469">UsbIsUID_PinHigh()</WORD>
<WORD coords="1141,2470,1273,2441,2469">BitlsSet</WORD>
<WORD coords="1286,2475,1464,2441,2469">(USBSTA,</WORD>
<WORD coords="1478,2473,1532,2442,2469">ID)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2519,363,2490,2519">#define</WORD>
<WORD coords="386,2520,590,2491,2519">UsblsVBUS</WORD>
<WORD coords="609,2528,771,2491,2519">PinHight)</WORD>
<WORD coords="1141,2520,1273,2491,2519">BitlsSet</WORD>
<WORD coords="1286,2525,1464,2491,2519">(USBSTA,</WORD>
<WORD coords="1479,2523,1599,2491,2519">VBUS)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,270,2590,2619">//</WORD>
<WORD coords="296,2619,435,2590,2618">USBINT</WORD>
<WORD coords="445,2627,709,2590,2618">(USBINTerrupt)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2668,363,2639,2668">#define</WORD>
<WORD coords="387,2677,735,2640,2668">UsbIsIDTI_FlagSet()</WORD>
<WORD coords="1141,2669,1273,2640,2668">BitlsSet</WORD>
<WORD coords="1286,2674,1458,2640,2668">(USBINT,</WORD>
<WORD coords="1472,2675,1566,2640,2668">IDTI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="334,2719,490,2691,2718">transition</WORD>
<WORD coords="531,2719,669,2690,2718">detected</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2768,363,2739,2768">#define</WORD>
<WORD coords="386,2769,624,2740,2768">UsbClearlDTI</WORD>
<WORD coords="641,2777,739,2740,2768">Flag()</WORD>
<WORD coords="1138,2769,1277,2740,2768">ClearBit</WORD>
<WORD coords="1286,2774,1458,2740,2768">(USBINT,</WORD>
<WORD coords="1472,2775,1566,2740,2768">IDTI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="386,2827,799,2790,2818">UsbIsVBUSTIJFlagSet()</WORD>
<WORD coords="1141,2819,1273,2790,2818">BitlsSet</WORD>
<WORD coords="1286,2824,1458,2790,2818">(USBINT,</WORD>
<WORD coords="1472,2825,1633,2790,2818">VBUSTI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="320,2868,357,2850,2868">on</WORD>
<WORD coords="378,2869,476,2840,2868">VBUS</WORD>
<WORD coords="483,2877,550,2840,2868">pad</WORD>
<WORD coords="561,2868,585,2841,2868">is</WORD>
<WORD coords="606,2869,744,2840,2868">detected</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="387,2926,806,2889,2917">UsbClearVBUSTI_Flag()</WORD>
<WORD coords="1138,2918,1277,2889,2917">ClearBit</WORD>
<WORD coords="1286,2923,1458,2889,2917">(USBINT,</WORD>
<WORD coords="1472,2924,1633,2889,2917">VBUSTI)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,3018,270,2989,3018">//</WORD>
<WORD coords="295,3018,461,2989,3017">OTGCON</WORD>
<WORD coords="471,3024,482,2990,3018">(</WORD>
<WORD coords="486,3025,892,2989,3018">OnTheGoCONfiguration</WORD>
<WORD coords="898,3022,907,2989,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,3068,270,3039,3068">//</WORD>
<WORD coords="296,3068,325,3044,3067">to</WORD>
<WORD coords="349,3068,388,3039,3068">do</WORD>
<WORD coords="401,3068,426,3063,3068">...</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1735,677,1765,648,677">//</WORD>
<WORD coords="1796,677,1890,648,677">select</WORD>
<WORD coords="1921,676,1989,648,676">host</WORD>
<WORD coords="2012,676,2048,658,676">or</WORD>
<WORD coords="2071,677,2174,648,677">device</WORD>
<WORD coords="2198,677,2286,648,676">mode</WORD>
<WORD coords="2311,676,2326,646,676">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,826,1765,797,826">//</WORD>
<WORD coords="1788,825,1896,797,825">enable</WORD>
<WORD coords="1918,826,2005,797,825">mode</WORD>
<WORD coords="2025,826,2169,797,825">selection</WORD>
<WORD coords="2198,833,2236,797,825">by</WORD>
<WORD coords="2257,826,2326,798,825">UID</WORD>
<WORD coords="2351,825,2366,795,825">)</WORD>
</LINE>
<LINE>
<WORD coords="1735,976,1765,947,976">//</WORD>
<WORD coords="1788,975,1896,947,975">enable</WORD>
<WORD coords="1921,976,2060,947,976">UVCON</WORD>
<WORD coords="2065,984,2118,948,975">pin</WORD>
<WORD coords="2132,980,2255,947,975">control,</WORD>
<WORD coords="2286,975,2301,945,975">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1125,1765,1096,1125">//</WORD>
<WORD coords="1790,1125,1861,1096,1124">USB</WORD>
<WORD coords="1871,1133,1950,1096,1124">pads</WORD>
<WORD coords="1963,1131,2039,1097,1124">(D+,</WORD>
<WORD coords="2054,1132,2128,1096,1124">D-)</WORD>
<WORD coords="2141,1133,2248,1096,1124">supply</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1324,1765,1295,1324">//</WORD>
<WORD coords="1790,1324,1861,1295,1323">USB</WORD>
<WORD coords="1879,1324,2043,1295,1323">controller</WORD>
<WORD coords="2068,1324,2176,1295,1323">enable</WORD>
</LINE>
<LINE>
<WORD coords="1735,1374,1765,1345,1374">//</WORD>
<WORD coords="1795,1374,1873,1350,1373">reset</WORD>
<WORD coords="1899,1374,1962,1345,1373">and</WORD>
<WORD coords="1979,1374,2097,1345,1373">disable</WORD>
<WORD coords="2135,1374,2299,1345,1373">controller</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1474,1765,1445,1474">//</WORD>
<WORD coords="1796,1474,1890,1445,1474">select</WORD>
<WORD coords="1924,1482,2117,1445,1473">multiplexed</WORD>
<WORD coords="2153,1474,2317,1445,1473">controller</WORD>
<WORD coords="2361,1473,2376,1443,1473">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1573,1765,1544,1573">//</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1623,1765,1594,1623">//</WORD>
<WORD coords="1788,1623,1896,1594,1622">reduce</WORD>
<WORD coords="1915,1631,2022,1604,1622">power</WORD>
<WORD coords="2032,1631,2240,1595,1622">consumption</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1773,1765,1744,1773">//</WORD>
<WORD coords="1791,1773,1848,1744,1773">???</WORD>
<WORD coords="1868,1773,1892,1745,1772">is</WORD>
<WORD coords="1925,1773,1983,1743,1773">this</WORD>
<WORD coords="2015,1772,2062,1744,1772">the</WORD>
<WORD coords="2089,1773,2158,1745,1772">UID</WORD>
<WORD coords="2167,1780,2251,1744,1772">pad?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1872,1765,1843,1872">//</WORD>
<WORD coords="1788,1871,1896,1843,1871">enable</WORD>
<WORD coords="1917,1871,1960,1844,1871">ID</WORD>
<WORD coords="1988,1872,2144,1844,1871">transition</WORD>
<WORD coords="2191,1880,2337,1844,1871">interrupt</WORD>
<WORD coords="2379,1871,2394,1841,1871">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2022,1765,1993,2022">//</WORD>
<WORD coords="1788,2021,1896,1993,2021">enable</WORD>
<WORD coords="1921,2022,2018,1993,2021">VBUS</WORD>
<WORD coords="2034,2021,2190,1994,2021">transition</WORD>
<WORD coords="2230,2021,2245,1991,2021">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2271,1765,2242,2271">//</WORD>
<WORD coords="1792,2271,1838,2247,2270">set</WORD>
<WORD coords="1862,2279,1900,2242,2271">by</WORD>
<WORD coords="1918,2271,2074,2242,2270">hardware</WORD>
<WORD coords="2094,2279,2122,2242,2274">if</WORD>
<WORD coords="2153,2271,2317,2242,2270">controller</WORD>
<WORD coords="2361,2270,2376,2240,2270">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2370,1765,2341,2370">//</WORD>
<WORD coords="1788,2370,1840,2351,2369">use</WORD>
<WORD coords="1865,2370,1895,2342,2370">in</WORD>
<WORD coords="1921,2369,1989,2341,2369">host</WORD>
<WORD coords="2011,2370,2099,2341,2369">mode</WORD>
<WORD coords="2112,2378,2190,2341,2369">only,</WORD>
<WORD coords="2230,2369,2245,2339,2369">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2470,1765,2441,2472">//</WORD>
<WORD coords="1787,2478,1880,2451,2469">query</WORD>
<WORD coords="1902,2470,1971,2442,2469">UID</WORD>
<WORD coords="1980,2478,2106,2441,2469">pad/pin</WORD>
</LINE>
<LINE>
<WORD coords="1735,2520,1765,2491,2522">//</WORD>
<WORD coords="1787,2528,1880,2501,2519">query</WORD>
<WORD coords="1901,2520,2000,2491,2519">VBUS</WORD>
<WORD coords="2008,2528,2134,2491,2519">pad/pin</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2669,1765,2640,2669">//</WORD>
<WORD coords="1792,2669,1838,2645,2668">set</WORD>
<WORD coords="1862,2677,1900,2640,2669">by</WORD>
<WORD coords="1918,2669,2074,2640,2668">hardware</WORD>
<WORD coords="2094,2677,2122,2640,2672">if</WORD>
<WORD coords="2141,2668,2184,2641,2668">ID</WORD>
<WORD coords="2197,2676,2249,2641,2668">pin</WORD>
<WORD coords="2286,2668,2301,2638,2668">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2769,1765,2740,2769">//</WORD>
<WORD coords="1793,2769,1873,2740,2768">shall</WORD>
<WORD coords="1899,2769,1936,2740,2768">be</WORD>
<WORD coords="1959,2769,2082,2740,2768">cleared</WORD>
<WORD coords="2105,2777,2142,2740,2769">by</WORD>
<WORD coords="2165,2777,2304,2740,2769">software</WORD>
</LINE>
<LINE>
<WORD coords="1735,2819,1765,2790,2819">//</WORD>
<WORD coords="1792,2819,1838,2796,2818">set</WORD>
<WORD coords="1862,2827,1900,2790,2819">by</WORD>
<WORD coords="1918,2819,2074,2790,2818">hardware</WORD>
<WORD coords="2094,2827,2122,2790,2822">if</WORD>
<WORD coords="2156,2819,2312,2791,2818">transition</WORD>
<WORD coords="2361,2818,2376,2788,2818">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,2918,1765,2889,2918">//</WORD>
<WORD coords="1793,2918,1873,2889,2917">shall</WORD>
<WORD coords="1899,2918,1936,2889,2918">be</WORD>
<WORD coords="1959,2918,2082,2889,2917">cleared</WORD>
<WORD coords="2105,2925,2142,2889,2918">by</WORD>
<WORD coords="2165,2926,2304,2889,2918">software</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0035.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0036.djvu" width="2481">
<PARAM name="PAGE" value="sources_0036.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2419,104,132">37</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="295,278,484,249,277">OTGTCON</WORD>
<WORD coords="494,284,505,249,278">(</WORD>
<WORD coords="509,286,1012,249,277">OnTheGoTimerCONfiguration</WORD>
<WORD coords="1018,282,1027,249,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,328,325,304,327">to</WORD>
<WORD coords="349,328,388,299,328">do</WORD>
<WORD coords="401,327,426,323,327">...</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="295,428,442,399,427">OTGIEN</WORD>
<WORD coords="452,434,463,400,428">(</WORD>
<WORD coords="467,428,512,399,427">On</WORD>
<WORD coords="517,436,895,398,427">TheGoInterruptEnable</WORD>
<WORD coords="898,432,907,399,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="296,477,325,453,476">to</WORD>
<WORD coords="349,477,388,448,477">do</WORD>
<WORD coords="401,477,426,472,476">...</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,577,270,548,577">//</WORD>
<WORD coords="294,577,441,548,576">OTGINT</WORD>
<WORD coords="449,585,802,547,576">(OnTheGoINTerrupt)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,627,270,598,627">//</WORD>
<WORD coords="296,627,325,604,626">to</WORD>
<WORD coords="349,627,388,598,627">do</WORD>
<WORD coords="401,627,426,622,627">...</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,727,270,698,727">//</WORD>
<WORD coords="296,727,366,698,726">USB</WORD>
<WORD coords="379,727,483,698,726">device</WORD>
<WORD coords="500,735,625,698,726">general</WORD>
<WORD coords="662,735,825,699,726">registers,</WORD>
<WORD coords="860,727,974,699,726">section</WORD>
<WORD coords="1009,731,1139,698,727">22.19.1,</WORD>
<WORD coords="1167,735,1248,708,726">page</WORD>
<WORD coords="1283,726,1340,698,726">281</WORD>
</LINE>
<LINE>
<WORD coords="241,776,270,747,776">//</WORD>
<WORD coords="296,776,438,747,775">UDCON</WORD>
<WORD coords="449,782,527,747,775">(Usb</WORD>
<WORD coords="539,776,652,748,775">Device</WORD>
<WORD coords="666,784,909,747,776">CONfiguration</WORD>
<WORD coords="915,780,924,747,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,363,796,825">#define</WORD>
<WORD coords="387,834,824,797,825">UsbDevSelectLowSpeed()</WORD>
<WORD coords="1138,826,1240,797,825">SetBit</WORD>
<WORD coords="1249,829,1419,797,825">(UDCON,</WORD>
<WORD coords="1431,832,1529,797,825">LSM)</WORD>
<WORD coords="1735,826,1765,797,826">//</WORD>
<WORD coords="1787,834,1866,798,825">Page</WORD>
<WORD coords="1882,830,1949,797,827">258,</WORD>
<WORD coords="1975,834,2075,797,828">figure</WORD>
<WORD coords="2105,825,2218,797,823">21-14</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,363,846,875">#define</WORD>
<WORD coords="386,884,816,847,875">UsbDevSelectFullSpeed()</WORD>
<WORD coords="1138,876,1277,847,875">ClearBit</WORD>
<WORD coords="1286,880,1456,847,875">(UDCON,</WORD>
<WORD coords="1469,882,1566,847,875">LSM)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="387,934,893,897,925">UsbDevIsLowSpeedSelected()</WORD>
<WORD coords="1141,926,1273,897,925">BitlsSet</WORD>
<WORD coords="1286,930,1456,897,925">(UDCON,</WORD>
<WORD coords="1469,932,1566,897,925">LSM)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,984,927,946,975">UsbDevInitiateRemoteWakeupO</WORD>
<WORD coords="1138,976,1240,947,975">SetBit</WORD>
<WORD coords="1249,979,1419,947,975">(UDCON,</WORD>
<WORD coords="1432,982,1630,947,975">RMWKUP)</WORD>
<WORD coords="1735,976,1765,947,976">//</WORD>
<WORD coords="1791,976,1914,947,975">cleared</WORD>
<WORD coords="1937,983,1973,947,976">by</WORD>
<WORD coords="1993,980,2156,947,975">hardware,</WORD>
<WORD coords="2181,976,2231,957,976">see</WORD>
<WORD coords="2267,975,2282,945,975">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="326,1025,440,997,1024">section</WORD>
<WORD coords="472,1029,572,996,1026">22.11,</WORD>
<WORD coords="596,1033,677,1006,1024">page</WORD>
<WORD coords="693,1024,753,996,1024">273</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1083,976,1046,1074">UsbDevIsRemoteWakeupPendingO</WORD>
<WORD coords="1141,1075,1273,1046,1074">BitlsSet</WORD>
<WORD coords="1286,1078,1456,1046,1074">(UDCON,</WORD>
<WORD coords="1470,1081,1668,1046,1074">RMWKUP)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1131,664,1096,1124">UsbDevDetach()</WORD>
<WORD coords="1138,1125,1240,1096,1124">SetBit</WORD>
<WORD coords="1249,1129,1419,1096,1124">(UDCON,</WORD>
<WORD coords="1432,1128,1606,1096,1124">DETACH)</WORD>
<WORD coords="1735,1125,1765,1096,1125">//</WORD>
<WORD coords="1792,1125,1969,1096,1124">disconnect</WORD>
<WORD coords="2003,1125,2132,1096,1124">internal</WORD>
<WORD coords="2162,1133,2263,1096,1124">pull—</WORD>
<WORD coords="2268,1133,2307,1106,1133">up</WORD>
<WORD coords="2320,1124,2357,1106,1124">on</WORD>
<WORD coords="2384,1124,2399,1094,1124">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="319,1174,374,1147,1174">D+</WORD>
<WORD coords="388,1174,425,1156,1174">or</WORD>
<WORD coords="435,1174,493,1147,1174">D—</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="387,1225,518,1196,1224">UsbDev</WORD>
<WORD coords="521,1231,657,1196,1224">Attach!)</WORD>
<WORD coords="1138,1225,1277,1196,1224">ClearBit</WORD>
<WORD coords="1286,1229,1456,1196,1224">(UDCON,</WORD>
<WORD coords="1470,1228,1644,1196,1224">DETACH)</WORD>
<WORD coords="1735,1225,1765,1196,1225">//</WORD>
<WORD coords="1788,1225,1917,1201,1224">connect</WORD>
<WORD coords="1947,1225,2075,1196,1224">internal</WORD>
<WORD coords="2107,1233,2251,1196,1225">pull-up</WORD>
<WORD coords="2264,1225,2302,1206,1225">on</WORD>
<WORD coords="2316,1224,2369,1197,1224">D+</WORD>
<WORD coords="2386,1224,2402,1194,1224">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="330,1274,367,1255,1273">or</WORD>
<WORD coords="376,1273,435,1246,1273">D—</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="387,1330,733,1295,1323">UsbDevIsDetached()</WORD>
<WORD coords="1141,1324,1273,1295,1323">BitlsSet</WORD>
<WORD coords="1286,1326,1456,1295,1323">(UDCON,</WORD>
<WORD coords="1470,1327,1644,1295,1323">DETACH)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,363,1344,1373">#define</WORD>
<WORD coords="387,1380,726,1345,1373">UsbDevIsAttached()</WORD>
<WORD coords="1141,1374,1311,1345,1373">BitlsClear</WORD>
<WORD coords="1324,1376,1493,1345,1373">(UDCON,</WORD>
<WORD coords="1507,1377,1681,1345,1373">DETACH)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1474,270,1445,1474">//</WORD>
<WORD coords="296,1474,419,1446,1473">UDINT</WORD>
<WORD coords="429,1480,506,1445,1473">(Usb</WORD>
<WORD coords="518,1474,631,1446,1473">Device</WORD>
<WORD coords="643,1482,819,1445,1473">INTerrupt)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1523,363,1494,1523">#define</WORD>
<WORD coords="387,1532,998,1495,1523">UsbDevIsUpstreamResumeFlagSet()</WORD>
<WORD coords="1011,1527,1295,1495,1523">BitIsSet(UDINT,</WORD>
<WORD coords="1309,1530,1474,1495,1523">UPRSMI)</WORD>
<WORD coords="1586,1524,1615,1495,1524">//</WORD>
<WORD coords="1643,1524,1688,1500,1524">set</WORD>
<WORD coords="1712,1532,1750,1495,1524">by</WORD>
<WORD coords="1768,1524,1924,1495,1523">hardware</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1581,1005,1544,1572">UsbDevClearUpstreamResumeFlagO</WORD>
<WORD coords="1018,1578,1309,1544,1572">ClearBit(UDINT,</WORD>
<WORD coords="1322,1579,1488,1544,1572">UPRSMI)</WORD>
<WORD coords="1586,1573,1615,1544,1573">//</WORD>
<WORD coords="1644,1572,1723,1544,1572">shall</WORD>
<WORD coords="1750,1572,1787,1544,1572">be</WORD>
<WORD coords="1810,1573,1933,1544,1572">cleared</WORD>
<WORD coords="1955,1581,1993,1544,1573">by</WORD>
<WORD coords="2015,1581,2154,1544,1573">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1622,363,1593,1622">#define</WORD>
<WORD coords="387,1631,947,1594,1622">UsbDevIsEndOfResumeFlagSet()</WORD>
<WORD coords="1141,1623,1273,1594,1622">BitlsSet</WORD>
<WORD coords="1286,1628,1438,1594,1622">(UDINT,</WORD>
<WORD coords="1451,1629,1619,1594,1622">EORSMI)</WORD>
<WORD coords="1735,1623,1765,1594,1623">//</WORD>
<WORD coords="1792,1623,1838,1600,1623">set</WORD>
<WORD coords="1862,1631,1900,1594,1623">by</WORD>
<WORD coords="1918,1623,2074,1594,1622">hardware</WORD>
<WORD coords="2094,1631,2122,1594,1626">if</WORD>
<WORD coords="2145,1622,2213,1594,1622">host</WORD>
<WORD coords="2236,1623,2326,1594,1622">sends</WORD>
<WORD coords="2353,1604,2369,1592,1613">”</WORD>
<WORD coords="2384,1622,2399,1592,1622">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="320,1673,380,1644,1672">end</WORD>
<WORD coords="393,1681,430,1644,1677">of</WORD>
<WORD coords="447,1673,584,1644,1672">resume”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="386,1731,954,1694,1722">UsbDevClearEndOfResumeFlagO</WORD>
<WORD coords="1138,1723,1277,1694,1722">ClearBit</WORD>
<WORD coords="1286,1728,1438,1694,1722">(UDINT,</WORD>
<WORD coords="1451,1729,1619,1694,1722">EORSMI)</WORD>
<WORD coords="1735,1723,1765,1694,1723">//</WORD>
<WORD coords="1793,1723,1873,1694,1722">shall</WORD>
<WORD coords="1899,1723,1936,1694,1722">be</WORD>
<WORD coords="1959,1723,2082,1694,1722">cleared</WORD>
<WORD coords="2105,1731,2142,1694,1722">by</WORD>
<WORD coords="2165,1731,2304,1694,1723">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1781,933,1744,1772">UsbDevIsWakeupCPU_FlagSet()</WORD>
<WORD coords="1141,1773,1273,1744,1772">BitlsSet</WORD>
<WORD coords="1286,1777,1438,1744,1772">(UDINT,</WORD>
<WORD coords="1451,1779,1649,1744,1772">WAKEUPI)</WORD>
<WORD coords="1735,1773,1765,1744,1773">//</WORD>
<WORD coords="1792,1773,1838,1750,1772">set</WORD>
<WORD coords="1862,1781,1900,1744,1773">by</WORD>
<WORD coords="1918,1773,2074,1744,1772">hardware</WORD>
<WORD coords="2087,1773,2171,1744,1772">when</WORD>
<WORD coords="2188,1773,2258,1744,1772">USB</WORD>
<WORD coords="2284,1772,2299,1742,1772">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,1822,487,1793,1821">controller</WORD>
<WORD coords="514,1822,539,1794,1821">is</WORD>
<WORD coords="575,1822,760,1793,1821">reactivated</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,940,1843,1871">UsbDevClearWakeupCPU_Flag()</WORD>
<WORD coords="1138,1872,1277,1843,1871">ClearBit</WORD>
<WORD coords="1286,1874,1438,1843,1871">(UDINT,</WORD>
<WORD coords="1451,1878,1649,1843,1871">WAKEUPI)</WORD>
<WORD coords="1735,1872,1765,1843,1872">//</WORD>
<WORD coords="1793,1872,1873,1843,1871">shall</WORD>
<WORD coords="1899,1872,1936,1843,1872">be</WORD>
<WORD coords="1959,1872,2082,1843,1871">cleared</WORD>
<WORD coords="2105,1879,2142,1843,1872">by</WORD>
<WORD coords="2165,1880,2304,1843,1872">software</WORD>
<WORD coords="2342,1871,2357,1841,1871">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="327,1930,406,1893,1923">after</WORD>
<WORD coords="434,1930,577,1893,1921">enabling</WORD>
<WORD coords="603,1922,674,1893,1921">USB</WORD>
<WORD coords="686,1922,773,1893,1921">clock</WORD>
<WORD coords="793,1930,891,1894,1921">inputs</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1971,363,1942,1971">#define</WORD>
<WORD coords="387,1980,906,1943,1971">UsbDevIsEndOfResetFlagSet()</WORD>
<WORD coords="1141,1972,1273,1943,1971">BitlsSet</WORD>
<WORD coords="1286,1974,1438,1943,1971">(UDINT,</WORD>
<WORD coords="1451,1978,1608,1943,1971">EORSTI)</WORD>
<WORD coords="1735,1972,1765,1943,1972">//</WORD>
<WORD coords="1792,1972,1838,1949,1972">set</WORD>
<WORD coords="1862,1980,1900,1943,1971">by</WORD>
<WORD coords="1918,1972,2074,1943,1971">hardware</WORD>
<WORD coords="2088,1972,2171,1943,1971">when</WORD>
<WORD coords="2188,1972,2258,1943,1971">USB</WORD>
<WORD coords="2284,1971,2299,1941,1971">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,2022,487,1993,2021">controller</WORD>
<WORD coords="508,2021,564,1993,2021">has</WORD>
<WORD coords="589,2022,727,1993,2021">detected</WORD>
<WORD coords="757,2022,841,1993,2021">’’End</WORD>
<WORD coords="853,2029,898,1993,2025">Of</WORD>
<WORD coords="903,2022,1014,1993,2021">Reset&quot;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2071,363,2042,2071">#define</WORD>
<WORD coords="387,2080,913,2043,2071">UsbDevClearEndOfResetFlagO</WORD>
<WORD coords="1138,2071,1277,2043,2071">ClearBit</WORD>
<WORD coords="1286,2074,1438,2043,2071">(UDINT,</WORD>
<WORD coords="1451,2078,1608,2043,2071">EORSTI)</WORD>
<WORD coords="1735,2072,1765,2043,2072">//</WORD>
<WORD coords="1793,2072,1873,2043,2071">shall</WORD>
<WORD coords="1899,2072,1936,2043,2071">be</WORD>
<WORD coords="1959,2072,2082,2043,2071">cleared</WORD>
<WORD coords="2105,2079,2142,2043,2072">by</WORD>
<WORD coords="2165,2080,2304,2043,2072">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2120,363,2091,2120">#define</WORD>
<WORD coords="387,2129,931,2092,2120">UsbDevIsStartOfFrameFlagSet()</WORD>
<WORD coords="1141,2121,1273,2092,2120">BitlsSet</WORD>
<WORD coords="1286,2126,1438,2092,2120">(UDINT,</WORD>
<WORD coords="1452,2127,1552,2092,2120">SOFI)</WORD>
<WORD coords="1735,2121,1765,2092,2121">//</WORD>
<WORD coords="1792,2121,1838,2098,2121">set</WORD>
<WORD coords="1862,2129,1900,2092,2121">by</WORD>
<WORD coords="1918,2121,2074,2092,2120">hardware</WORD>
<WORD coords="2088,2121,2171,2092,2120">when</WORD>
<WORD coords="2185,2120,2222,2102,2120">an</WORD>
<WORD coords="2240,2121,2310,2092,2120">USB</WORD>
<WORD coords="2329,2101,2343,2092,2110">”</WORD>
<WORD coords="2358,2120,2374,2090,2120">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="320,2171,400,2142,2170">Start</WORD>
<WORD coords="417,2179,462,2142,2175">Of</WORD>
<WORD coords="471,2170,576,2143,2170">Frame</WORD>
<WORD coords="584,2151,598,2142,2160">”</WORD>
<WORD coords="612,2170,667,2142,2170">has</WORD>
<WORD coords="680,2171,755,2142,2170">been</WORD>
<WORD coords="775,2171,914,2142,2170">detected</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2220,363,2191,2220">#define</WORD>
<WORD coords="387,2229,938,2192,2220">UsbDevClearStartOfFrameFlagO</WORD>
<WORD coords="1138,2221,1277,2192,2220">ClearBit</WORD>
<WORD coords="1286,2225,1438,2192,2220">(UDINT,</WORD>
<WORD coords="1452,2227,1552,2192,2220">SOFI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2270,363,2241,2270">#define</WORD>
<WORD coords="387,2279,843,2242,2270">UsbDevIsSuspendFlagSet()</WORD>
<WORD coords="1141,2271,1273,2242,2270">BitlsSet</WORD>
<WORD coords="1286,2276,1438,2242,2270">(UDINT,</WORD>
<WORD coords="1452,2277,1575,2242,2270">SUSPI)</WORD>
<WORD coords="1735,2271,1765,2242,2271">//</WORD>
<WORD coords="1792,2271,1838,2248,2271">set</WORD>
<WORD coords="1862,2279,1900,2242,2271">by</WORD>
<WORD coords="1918,2271,2074,2242,2270">hardware</WORD>
<WORD coords="2088,2271,2171,2242,2270">when</WORD>
<WORD coords="2188,2271,2258,2242,2270">USB</WORD>
<WORD coords="2271,2270,2326,2242,2270">bus</WORD>
<WORD coords="2339,2270,2364,2243,2270">is</WORD>
<WORD coords="2379,2270,2394,2240,2270">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="346,2321,405,2292,2320">idle</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2369,363,2340,2369">#define</WORD>
<WORD coords="387,2378,850,2341,2369">UsbDevClearSuspendFlagO</WORD>
<WORD coords="1138,2370,1277,2341,2369">ClearBit</WORD>
<WORD coords="1286,2372,1438,2341,2369">(UDINT,</WORD>
<WORD coords="1452,2376,1575,2341,2369">SUSPI)</WORD>
<WORD coords="1735,2370,1765,2341,2370">//</WORD>
<WORD coords="1793,2370,1873,2341,2369">shall</WORD>
<WORD coords="1899,2370,1936,2341,2370">be</WORD>
<WORD coords="1959,2370,2082,2341,2369">cleared</WORD>
<WORD coords="2105,2377,2142,2341,2370">by</WORD>
<WORD coords="2165,2378,2304,2341,2370">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="296,2470,421,2442,2469">UDIEN</WORD>
<WORD coords="431,2476,509,2441,2469">(Usb</WORD>
<WORD coords="520,2470,633,2442,2469">Device</WORD>
<WORD coords="646,2478,796,2442,2469">Interrupt</WORD>
<WORD coords="815,2475,951,2441,2469">ENable)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2519,363,2490,2519">#define</WORD>
<WORD coords="387,2528,1003,2491,2519">UsbDevEnableUpstreamResumeInt()</WORD>
<WORD coords="1017,2524,1269,2491,2519">SetBit(UDIEN,</WORD>
<WORD coords="1283,2526,1460,2491,2519">UPRSME)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2569,363,2540,2569">#define</WORD>
<WORD coords="387,2578,1014,2541,2569">UsbDevDisableUpstreamResumeInt()</WORD>
<WORD coords="1138,2570,1277,2541,2569">ClearBit</WORD>
<WORD coords="1286,2574,1438,2541,2569">(UDIEN,</WORD>
<WORD coords="1451,2576,1628,2541,2569">UPRSME)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2618,363,2589,2618">#define</WORD>
<WORD coords="386,2625,952,2590,2618">UsbDevEnableEndOfResumeInt()</WORD>
<WORD coords="1138,2619,1240,2590,2618">SetBit</WORD>
<WORD coords="1249,2623,1400,2590,2618">(UDIEN,</WORD>
<WORD coords="1414,2625,1593,2590,2618">EORSME)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2668,363,2639,2668">#define</WORD>
<WORD coords="387,2675,963,2640,2668">UsbDevDisableEndOfResumeInt()</WORD>
<WORD coords="1135,2674,1382,2640,2668">Clear(UDIEN,</WORD>
<WORD coords="1395,2675,1575,2640,2668">EORSME)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2718,363,2689,2718">#define</WORD>
<WORD coords="387,2727,938,2690,2718">UsbDevEnableWakeupCPU_Int()</WORD>
<WORD coords="1138,2719,1240,2690,2718">SetBit</WORD>
<WORD coords="1249,2723,1400,2690,2718">(UDIEN,</WORD>
<WORD coords="1414,2725,1623,2690,2718">WAKEUPE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2768,363,2739,2768">#define</WORD>
<WORD coords="387,2777,860,2740,2768">UsbDevDisableWakeupCPU</WORD>
<WORD coords="865,2775,949,2740,2768">Jnt()</WORD>
<WORD coords="1138,2769,1277,2740,2768">ClearBit</WORD>
<WORD coords="1286,2774,1438,2740,2768">(UDIEN,</WORD>
<WORD coords="1451,2775,1660,2740,2768">WAKEUPE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="387,2825,910,2790,2818">UsbDevEnableEndOfResetInt()</WORD>
<WORD coords="1138,2819,1240,2790,2818">SetBit</WORD>
<WORD coords="1249,2823,1400,2790,2818">(UDIEN,</WORD>
<WORD coords="1414,2825,1582,2790,2818">EORSTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2868,363,2839,2868">#define</WORD>
<WORD coords="387,2875,922,2840,2868">UsbDevDisableEndOfResetInt()</WORD>
<WORD coords="1138,2869,1277,2840,2868">ClearBit</WORD>
<WORD coords="1286,2873,1438,2840,2868">(UDIEN,</WORD>
<WORD coords="1451,2875,1619,2840,2868">EORSTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="387,2924,936,2889,2917">UsbDevEnableStartOfFrameInt()</WORD>
<WORD coords="1138,2918,1240,2889,2917">SetBit</WORD>
<WORD coords="1249,2922,1400,2889,2917">(UDIEN,</WORD>
<WORD coords="1415,2924,1526,2889,2917">SOFE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2967,363,2938,2967">#define</WORD>
<WORD coords="387,2974,947,2939,2967">UsbDevDisableStartOfFrameInt()</WORD>
<WORD coords="1138,2968,1277,2939,2967">ClearBit</WORD>
<WORD coords="1286,2972,1438,2939,2967">(UDIEN,</WORD>
<WORD coords="1452,2974,1564,2939,2967">SOFE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3017,363,2988,3017">#define</WORD>
<WORD coords="387,3026,848,2989,3017">UsbDevEnableSuspendInt()</WORD>
<WORD coords="1138,3018,1240,2989,3017">SetBit</WORD>
<WORD coords="1249,3022,1400,2989,3017">(UDIEN,</WORD>
<WORD coords="1415,3024,1550,2989,3017">SUSPE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3067,363,3038,3067">#define</WORD>
<WORD coords="387,3076,860,3039,3067">UsbDevDisableSuspendInt()</WORD>
<WORD coords="1138,3068,1277,3039,3067">ClearBit</WORD>
<WORD coords="1286,3072,1438,3039,3067">(UDIEN,</WORD>
<WORD coords="1452,3074,1587,3039,3067">SUSPE)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0036.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0037.djvu" width="2481">
<PARAM name="PAGE" value="sources_0037.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2418,104,133">38</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="296,278,460,249,277">UDADDR</WORD>
<WORD coords="473,284,550,249,277">(Usb</WORD>
<WORD coords="562,278,676,250,277">Device</WORD>
<WORD coords="685,283,861,249,277">ADDRess)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,327,363,298,327">#define</WORD>
<WORD coords="387,334,797,299,327">UsbDevEnableAddress()</WORD>
<WORD coords="1138,328,1240,299,327">SetBit</WORD>
<WORD coords="1249,330,1447,299,327">(UDADDR,</WORD>
<WORD coords="1461,334,1617,299,327">ADDEN)</WORD>
<WORD coords="1735,328,1765,299,328">//</WORD>
<WORD coords="1791,328,1914,299,327">cleared</WORD>
<WORD coords="1937,335,1974,299,328">by</WORD>
<WORD coords="1993,328,2149,299,327">hardware</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,377,363,348,377">#define</WORD>
<WORD coords="387,384,788,349,377">UsbDevSetAddress(adr)</WORD>
<WORD coords="1134,378,1308,349,377">UDADDR</WORD>
<WORD coords="1320,372,1341,361,377">=</WORD>
<WORD coords="1354,383,1419,349,377">(adr</WORD>
<WORD coords="1432,378,1461,349,378">&amp;</WORD>
<WORD coords="1477,384,1547,349,379">127)</WORD>
<WORD coords="1735,378,1765,349,378">//</WORD>
<WORD coords="1792,378,1838,355,378">set</WORD>
<WORD coords="1862,385,1900,349,377">by</WORD>
<WORD coords="1922,386,2061,349,378">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="296,477,501,449,476">UDFNUMH</WORD>
<WORD coords="512,483,523,448,477">(</WORD>
<WORD coords="527,477,590,448,476">Usb</WORD>
<WORD coords="601,477,714,449,476">Device</WORD>
<WORD coords="726,476,832,449,476">Frame</WORD>
<WORD coords="843,477,992,448,476">NUMber</WORD>
<WORD coords="1002,485,1083,448,476">High</WORD>
<WORD coords="1088,481,1097,448,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="387,535,1005,498,526">UsbDevGetFrameNumberHigh(num)</WORD>
<WORD coords="1133,526,1206,507,526">num</WORD>
<WORD coords="1218,521,1239,510,524">=</WORD>
<WORD coords="1252,527,1459,498,526">UDFNUMH</WORD>
<WORD coords="1735,527,1765,498,527">//</WORD>
<WORD coords="1787,526,1805,498,526">3</WORD>
<WORD coords="1824,527,1904,498,526">MSB</WORD>
<WORD coords="1916,535,1953,498,530">of</WORD>
<WORD coords="1960,526,1973,498,526">1</WORD>
<WORD coords="1981,526,2028,498,527">1—</WORD>
<WORD coords="2032,527,2090,498,526">bits</WORD>
<WORD coords="2098,535,2198,498,527">frame</WORD>
<WORD coords="2217,531,2354,498,526">number;</WORD>
<WORD coords="2381,526,2396,496,526">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="324,577,369,553,576">set</WORD>
<WORD coords="393,585,431,548,577">by</WORD>
<WORD coords="449,577,605,548,576">hardware</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,677,270,648,677">//</WORD>
<WORD coords="296,677,492,649,676">UDFNUML</WORD>
<WORD coords="505,683,516,649,677">(</WORD>
<WORD coords="521,677,582,648,676">Usb</WORD>
<WORD coords="594,677,707,649,676">Device</WORD>
<WORD coords="720,676,825,649,676">Frame</WORD>
<WORD coords="836,677,985,648,676">NUMber</WORD>
<WORD coords="995,681,1078,648,676">Low)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="387,733,997,698,726">UsbDevGetFrameNumberLow(num)</WORD>
<WORD coords="1133,726,1206,707,726">num</WORD>
<WORD coords="1218,721,1239,710,724">=</WORD>
<WORD coords="1252,727,1455,698,726">UDFNUML</WORD>
<WORD coords="1735,727,1765,698,727">//</WORD>
<WORD coords="1787,726,1806,698,726">8</WORD>
<WORD coords="1824,727,1891,698,726">LSB</WORD>
<WORD coords="1904,735,1942,698,730">of</WORD>
<WORD coords="1957,726,1971,698,726">1</WORD>
<WORD coords="1978,726,2025,698,722">1—</WORD>
<WORD coords="2029,727,2087,698,726">bits</WORD>
<WORD coords="2098,735,2198,698,727">frame</WORD>
<WORD coords="2217,731,2354,698,726">number;</WORD>
<WORD coords="2381,726,2396,698,726">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="324,776,369,753,775">set</WORD>
<WORD coords="393,784,431,747,776">by</WORD>
<WORD coords="449,776,605,747,775">hardware</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,876,270,847,876">//</WORD>
<WORD coords="296,876,442,848,875">UDMFN</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="388,926,874,897,925">UsbDcvTsFrameNumberCRC</WORD>
<WORD coords="891,932,1004,897,925">ErrorQ</WORD>
<WORD coords="1141,926,1273,897,925">BitlsSet</WORD>
<WORD coords="1286,930,1458,897,925">(UDMFN,</WORD>
<WORD coords="1471,932,1645,897,925">FNCERR)</WORD>
<WORD coords="1735,926,1765,897,926">//</WORD>
<WORD coords="1792,926,1838,902,926">set</WORD>
<WORD coords="1862,933,1900,897,925">by</WORD>
<WORD coords="1918,926,2074,897,925">hardware</WORD>
<WORD coords="2094,934,2122,897,929">if</WORD>
<WORD coords="2143,926,2223,897,925">CRC</WORD>
<WORD coords="2233,926,2319,907,925">error</WORD>
<WORD coords="2332,933,2369,897,929">of</WORD>
<WORD coords="2379,925,2394,895,925">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="331,984,561,946,976">framenumber</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1075,270,1046,1075">//</WORD>
<WORD coords="296,1075,366,1046,1074">USB</WORD>
<WORD coords="379,1075,483,1046,1074">device</WORD>
<WORD coords="500,1083,645,1046,1074">endpoint</WORD>
<WORD coords="681,1083,819,1047,1074">registers</WORD>
<WORD coords="837,1079,844,1070,1079">,</WORD>
<WORD coords="878,1075,992,1047,1074">section</WORD>
<WORD coords="1023,1074,1146,1046,1075">22.19.2</WORD>
<WORD coords="1168,1083,1248,1056,1074">page</WORD>
<WORD coords="1264,1074,1324,1046,1074">284</WORD>
</LINE>
<LINE>
<WORD coords="241,1125,270,1096,1125">//</WORD>
<WORD coords="296,1125,441,1097,1124">UENUM</WORD>
<WORD coords="452,1131,530,1096,1124">(Usb</WORD>
<WORD coords="541,1133,693,1096,1124">Endpoint</WORD>
<WORD coords="702,1129,863,1096,1124">NUMber)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="387,1183,873,1146,1174">UsbDevSelectEndpoint(num)</WORD>
<WORD coords="1133,1175,1284,1146,1174">UENUM</WORD>
<WORD coords="1296,1169,1317,1158,1173">=</WORD>
<WORD coords="1331,1177,1416,1147,1174">(num</WORD>
<WORD coords="1429,1175,1458,1146,1175">&amp;</WORD>
<WORD coords="1470,1181,1502,1146,1178">7)</WORD>
<WORD coords="1735,1175,1765,1146,1175">//</WORD>
<WORD coords="1787,1174,1857,1156,1174">num</WORD>
<WORD coords="1871,1179,2003,1146,1174">==0,1,</WORD>
<WORD coords="2047,1179,2083,1170,1176">...,</WORD>
<WORD coords="2123,1174,2142,1146,1174">6</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="296,1274,419,1245,1273">UERST</WORD>
<WORD coords="429,1280,507,1245,1273">(Usb</WORD>
<WORD coords="518,1282,670,1245,1273">Endpoint</WORD>
<WORD coords="680,1278,798,1245,1273">ReSeT)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="387,1332,894,1295,1323">UsbDevResetEndpoints(mask)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,1374,446,1345,1373">UERST</WORD>
<WORD coords="458,1368,478,1357,1370">=</WORD>
<WORD coords="493,1373,513,1345,1373">0</WORD>
<WORD coords="524,1381,707,1345,1373">necessary?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="387,1424,414,1395,1423">U</WORD>
<WORD coords="417,1432,864,1395,1423">sbDevResetEndpoint(num)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1524,270,1495,1524">//</WORD>
<WORD coords="296,1524,459,1495,1523">UECONX</WORD>
<WORD coords="470,1530,548,1495,1523">(Usb</WORD>
<WORD coords="559,1532,712,1495,1523">Endpoint</WORD>
<WORD coords="725,1531,968,1495,1524">CONfiguration</WORD>
<WORD coords="980,1528,1018,1495,1523">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1581,940,1544,1572">UsbDevRequestStallHandshake()</WORD>
</LINE>
<LINE>
<WORD coords="323,1622,391,1594,1622">host</WORD>
<WORD coords="410,1631,465,1594,1625">for</WORD>
<WORD coords="491,1623,559,1599,1622">next</WORD>
<WORD coords="581,1623,756,1594,1622">handshake</WORD>
</LINE>
<LINE>
<WORD coords="236,1672,363,1643,1672">#define</WORD>
<WORD coords="387,1681,848,1644,1672">UsbDevClearStallRequest()</WORD>
</LINE>
<LINE>
<WORD coords="320,1722,504,1694,1722">mechanism</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1781,847,1744,1772">UsbDevIsEndpointStalled()</WORD>
</LINE>
<LINE>
<WORD coords="323,1822,437,1794,1821">write—</WORD>
<WORD coords="442,1830,512,1793,1821">only</WORD>
<WORD coords="526,1821,554,1794,1821">in</WORD>
<WORD coords="582,1822,741,1793,1821">datasheet</WORD>
</LINE>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,882,1843,1871">UsbDevResetDataToggleBit()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1921,363,1892,1921">#define</WORD>
<WORD coords="387,1930,813,1893,1921">UsbDevEnableEndpoint()</WORD>
</LINE>
<LINE>
<WORD coords="323,1972,426,1943,1971">device</WORD>
<WORD coords="460,1980,680,1943,1972">configuration</WORD>
</LINE>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="387,2030,825,1993,2021">UsbDevDisableEndpoint()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2071,363,2042,2071">#define</WORD>
<WORD coords="387,2080,864,2043,2071">UsbDevIsEndpointEnabled()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2171,270,2142,2171">//</WORD>
<WORD coords="296,2171,478,2142,2170">UECFGOX</WORD>
<WORD coords="489,2177,567,2142,2170">(Usb</WORD>
<WORD coords="578,2179,730,2142,2170">Endpoint</WORD>
<WORD coords="743,2171,993,2142,2170">ConFiGuration</WORD>
<WORD coords="1007,2175,1065,2142,2170">OX)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2220,363,2191,2220">#define</WORD>
<WORD coords="386,2229,960,2191,2220">UsbDevSetEndpointTypeControl()</WORD>
<WORD coords="1133,2221,1318,2192,2220">UECFGOX</WORD>
<WORD coords="1332,2221,1384,2192,2217">&amp;=</WORD>
<WORD coords="1397,2230,2019,2189,2220">&apos;((1«EPTYPE1)|(1«EPTYPE0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2270,363,2241,2270">#define</WORD>
<WORD coords="386,2279,884,2241,2270">UsbDevSetEndpointTypeIso()</WORD>
<WORD coords="1133,2271,1318,2242,2270">UECFGOX</WORD>
<WORD coords="1331,2265,1352,2254,2270">=</WORD>
<WORD coords="1365,2275,1563,2242,2270">(UECFGOX</WORD>
<WORD coords="1576,2271,1605,2242,2271">&amp;</WORD>
<WORD coords="1617,2277,1929,2242,2270">~(1«EPTYPE1))</WORD>
<WORD coords="1946,2280,1948,2239,2280">|</WORD>
<WORD coords="1965,2277,2247,2242,2270">(1«EPTYPE0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2320,363,2291,2320">#define</WORD>
<WORD coords="386,2329,914,2291,2320">UsbDevSetEndpointTypeBulk()</WORD>
<WORD coords="1133,2321,1318,2292,2320">UECFGOX</WORD>
<WORD coords="1331,2315,1352,2304,2320">=</WORD>
<WORD coords="1365,2325,1563,2292,2320">(UECFGOX</WORD>
<WORD coords="1576,2320,1605,2292,2320">&amp;</WORD>
<WORD coords="1617,2327,1929,2292,2320">~(1«EPTYPE0))</WORD>
<WORD coords="1946,2330,1948,2270,2330">j</WORD>
<WORD coords="1965,2327,2247,2292,2320">(1«EPTYPE1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2369,363,2340,2369">#define</WORD>
<WORD coords="386,2378,879,2340,2369">UsbDevSetEndpointTypeInt()</WORD>
<WORD coords="1133,2370,1318,2341,2369">UECFGOX</WORD>
<WORD coords="1335,2379,1363,2338,2372">|=</WORD>
<WORD coords="1377,2379,1984,2338,2369">((1«EPTYPE1)|(1«EPTYPE0))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2419,363,2390,2419">#define</WORD>
<WORD coords="387,2428,923,2391,2419">UsbDevSetEnpointDirectionIn()</WORD>
<WORD coords="1138,2420,1240,2391,2419">SetBit</WORD>
<WORD coords="1249,2424,1458,2391,2419">(UECFGOX,</WORD>
<WORD coords="1472,2426,1603,2391,2419">EPDIR)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2469,363,2440,2469">#define</WORD>
<WORD coords="387,2478,950,2441,2469">UsbDevSetEnpointDirectionOut()</WORD>
<WORD coords="1138,2470,1277,2441,2469">ClearBit</WORD>
<WORD coords="1286,2475,1495,2441,2469">(UECFGOX,</WORD>
<WORD coords="1509,2476,1640,2441,2469">EPDIR)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2519,363,2490,2519">#define</WORD>
<WORD coords="387,2528,1016,2491,2519">UsbDevSetEnpointDirectionControl()</WORD>
<WORD coords="1138,2520,1277,2491,2519">ClearBit</WORD>
<WORD coords="1286,2525,1495,2491,2519">(UECFGOX,</WORD>
<WORD coords="1508,2526,1640,2491,2519">EPDIR)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1138,1573,1240,1544,1572">SetBit</WORD>
<WORD coords="1249,1578,1444,1544,1572">(UECONX,</WORD>
<WORD coords="1459,1579,1652,1544,1572">STALLRQ)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,1673,1240,1644,1672">SetBit</WORD>
<WORD coords="1249,1679,1669,1644,1672">(UECONX,STALLRQC)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1141,1773,1273,1744,1772">BitlsSet</WORD>
<WORD coords="1286,1778,1481,1744,1772">(UECONX,</WORD>
<WORD coords="1496,1779,1689,1744,1772">STALLRQ)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,1872,1240,1843,1871">SetBit</WORD>
<WORD coords="1249,1877,1444,1843,1871">(UECONX,</WORD>
<WORD coords="1458,1878,1600,1843,1871">RSTDT)</WORD>
</LINE>
<LINE>
<WORD coords="1138,1922,1240,1893,1921">SetBit</WORD>
<WORD coords="1249,1927,1444,1893,1921">(UECONX,</WORD>
<WORD coords="1458,1928,1573,1893,1921">EPEN)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,2022,1277,1993,2021">ClearBit</WORD>
<WORD coords="1286,2027,1481,1993,2021">(UECONX,</WORD>
<WORD coords="1495,2028,1610,1993,2021">EPEN)</WORD>
</LINE>
<LINE>
<WORD coords="1141,2072,1273,2043,2071">BitlsSet</WORD>
<WORD coords="1286,2077,1481,2043,2071">(UECONX,</WORD>
<WORD coords="1494,2078,1610,2043,2071">EPEN)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1735,1573,1765,1544,1573">//</WORD>
<WORD coords="1793,1581,1912,1549,1572">request</WORD>
<WORD coords="1937,1573,1955,1554,1573">a</WORD>
<WORD coords="1974,1573,2086,1544,1572">STALL</WORD>
<WORD coords="2098,1573,2217,1554,1572">answer</WORD>
<WORD coords="2229,1573,2257,1550,1572">to</WORD>
<WORD coords="2276,1572,2324,1544,1572">the</WORD>
<WORD coords="2361,1572,2377,1542,1572">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1673,1765,1644,1673">//</WORD>
<WORD coords="1793,1673,1910,1644,1672">disable</WORD>
<WORD coords="1937,1673,2049,1644,1672">STALL</WORD>
<WORD coords="2060,1673,2235,1644,1672">handshake</WORD>
<WORD coords="2261,1672,2277,1642,1672">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1773,1765,1744,1773">//</WORD>
<WORD coords="1789,1773,1932,1744,1772">Caution:</WORD>
<WORD coords="1959,1772,2026,1744,1772">This</WORD>
<WORD coords="2055,1772,2098,1744,1772">bit</WORD>
<WORD coords="2129,1773,2154,1745,1772">is</WORD>
<WORD coords="2179,1773,2304,1744,1772">marked</WORD>
<WORD coords="2327,1772,2342,1742,1772">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1735,1872,1765,1843,1872">//</WORD>
<WORD coords="1790,1872,1858,1848,1871">next</WORD>
<WORD coords="1879,1880,1990,1843,1871">packet</WORD>
<WORD coords="2017,1871,2042,1844,1871">is</WORD>
<WORD coords="2067,1872,2161,1843,1871">dataO</WORD>
</LINE>
<LINE>
<WORD coords="1735,1922,1765,1893,1922">//</WORD>
<WORD coords="1788,1921,1896,1893,1921">enable</WORD>
<WORD coords="1920,1930,2065,1893,1921">endpoint</WORD>
<WORD coords="2087,1930,2252,1893,1921">according</WORD>
<WORD coords="2276,1922,2305,1898,1921">to</WORD>
<WORD coords="2342,1921,2357,1891,1921">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,1324,1262,1295,1323">UERST</WORD>
<WORD coords="1275,1318,1296,1307,1320">=</WORD>
<WORD coords="1309,1323,1396,1295,1323">mask</WORD>
<WORD coords="1408,1323,1437,1295,1323">&amp;</WORD>
<WORD coords="1454,1326,1520,1295,1324">127;</WORD>
<WORD coords="1535,1324,1664,1295,1323">UERST</WORD>
<WORD coords="1676,1318,1697,1307,1321">=</WORD>
<WORD coords="1709,1324,1728,1295,1324">0</WORD>
<WORD coords="1740,1324,1770,1295,1324">//</WORD>
<WORD coords="1795,1324,1873,1301,1323">reset</WORD>
<WORD coords="1907,1324,2041,1295,1323">selected</WORD>
<WORD coords="2071,1332,2248,1295,1323">endpoints;</WORD>
<WORD coords="2279,1323,2303,1296,1323">is</WORD>
<WORD coords="2342,1323,2357,1295,1323">)</WORD>
</LINE>
<LINE>
<WORD coords="1133,1424,1262,1395,1423">UERST</WORD>
<WORD coords="1279,1423,1308,1392,1423">1=</WORD>
<WORD coords="1322,1430,1515,1395,1423">(l&lt;&lt;num);</WORD>
<WORD coords="1529,1424,1658,1395,1423">UERST</WORD>
<WORD coords="1671,1418,1692,1407,1421">=</WORD>
<WORD coords="1705,1424,1724,1395,1424">0</WORD>
<WORD coords="1738,1424,1767,1395,1424">//</WORD>
<WORD coords="1795,1424,1873,1401,1423">reset</WORD>
<WORD coords="1908,1423,1964,1395,1423">this</WORD>
<WORD coords="1995,1432,2139,1395,1423">endpoint</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2619,270,2590,2619">//</WORD>
<WORD coords="296,2619,478,2590,2618">UECFG1X</WORD>
<WORD coords="489,2625,567,2590,2618">(Usb</WORD>
<WORD coords="578,2627,730,2590,2618">Endpoint</WORD>
<WORD coords="743,2619,993,2590,2618">ConFiGuration</WORD>
<WORD coords="1008,2623,1065,2590,2618">IX)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2669,270,2640,2669">//</WORD>
<WORD coords="294,2669,364,2640,2668">here</WORD>
<WORD coords="387,2669,430,2650,2669">we</WORD>
<WORD coords="444,2669,550,2650,2669">access</WORD>
<WORD coords="580,2668,638,2640,2668">bits</WORD>
<WORD coords="675,2669,770,2640,2668">direct</WORD>
<WORD coords="782,2673,788,2664,2673">,</WORD>
<WORD coords="820,2669,943,2640,2668">without</WORD>
<WORD coords="968,2677,1055,2641,2668">using</WORD>
<WORD coords="1077,2668,1225,2640,2668">bitnames</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2718,363,2689,2718">#define</WORD>
<WORD coords="386,2727,843,2689,2718">UsbDevSetEndpointSize8()</WORD>
<WORD coords="1133,2719,1318,2690,2718">UECFG1X</WORD>
<WORD coords="1331,2713,1352,2702,2718">=</WORD>
<WORD coords="1365,2723,1563,2690,2718">(UECFG1X</WORD>
<WORD coords="1576,2719,1605,2690,2720">&amp;</WORD>
<WORD coords="1619,2725,1722,2690,2721">(4+8))</WORD>
<WORD coords="1737,2719,1767,2690,2721">//</WORD>
<WORD coords="1787,2727,1930,2700,2718">preserve</WORD>
<WORD coords="1955,2723,2042,2690,2718">bank,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="336,2771,396,2741,2769">size</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="387,2819,414,2790,2818">U</WORD>
<WORD coords="417,2827,745,2790,2818">sbDevSetEndpointS</WORD>
<WORD coords="750,2818,795,2790,2818">ize</WORD>
<WORD coords="802,2818,813,2790,2818">1</WORD>
<WORD coords="819,2825,864,2790,2824">6()</WORD>
</LINE>
<LINE>
<WORD coords="236,2868,363,2839,2868">#define</WORD>
<WORD coords="387,2877,864,2840,2868">UsbDevSetEndpointSize32()</WORD>
</LINE>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="387,2918,414,2889,2917">U</WORD>
<WORD coords="417,2926,745,2889,2917">sbDevSetEndpointS</WORD>
<WORD coords="750,2924,864,2889,2917">ize64()</WORD>
</LINE>
<LINE>
<WORD coords="236,2967,363,2938,2967">#define</WORD>
<WORD coords="387,2968,414,2939,2967">U</WORD>
<WORD coords="417,2976,745,2939,2967">sbDevSetEndpointS</WORD>
<WORD coords="750,2967,795,2939,2967">ize</WORD>
<WORD coords="802,2967,813,2939,2967">1</WORD>
<WORD coords="819,2968,856,2939,2970">28</WORD>
<WORD coords="861,2974,885,2939,2973">()</WORD>
</LINE>
<LINE>
<WORD coords="236,3017,363,2988,3017">#define</WORD>
<WORD coords="387,3026,885,2989,3017">UsbDevSetEndpointSize256()</WORD>
</LINE>
<LINE>
<WORD coords="236,3067,363,3038,3067">#define</WORD>
<WORD coords="387,3076,815,3039,3067">UsbDevSetEndpointSize5</WORD>
<WORD coords="823,3074,885,3039,3071">12()</WORD>
</LINE>
<LINE>
<WORD coords="236,3117,363,3088,3117">#define</WORD>
<WORD coords="387,3126,908,3089,3117">UsbDevSetEndpointOneBank()</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,2819,1318,2790,2818">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,2869,1318,2840,2868">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,2918,1318,2889,2917">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,2968,1318,2939,2967">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,3018,1318,2989,3017">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,3068,1318,3039,3067">UECFG1X</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1365,2824,1563,2790,2818">(UECFG1X</WORD>
<WORD coords="1576,2818,1605,2790,2818">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1365,2874,1563,2840,2868">(UECFG1X</WORD>
<WORD coords="1576,2868,1605,2840,0">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1365,2923,1563,2889,2917">(UECFG1X</WORD>
<WORD coords="1576,2917,1605,2889,0">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1365,2973,1563,2939,2967">(UECFG1X</WORD>
<WORD coords="1576,2967,1605,2939,0">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1365,3023,1563,2989,3017">(UECFG1X</WORD>
<WORD coords="1576,3017,1605,2989,0">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1365,3073,1563,3039,3067">(UECFG1X</WORD>
<WORD coords="1576,3067,1605,3039,0">&amp;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1619,2825,1722,2790,2821">(4+8))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1619,2875,1722,2840,2871">(4+8))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1619,2924,1722,2889,2920">(4+8))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1619,2974,1722,2939,2970">(4+8))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1619,3024,1722,2989,3020">(4+8))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1619,3074,1722,3039,3070">(4+8))</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1758,2825,1888,2790,2821">(1«4)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1758,2875,1888,2840,2871">(2«4)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1758,2924,1888,2889,2920">(3«4)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1758,2974,1888,2939,2970">(4«4)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1758,3024,1888,2989,3019">(5«4)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1758,3074,1888,3039,3070">(6«4)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1134,3118,1318,3089,3117">UECFG1X</WORD>
<WORD coords="1331,3112,1352,3101,3117">=</WORD>
<WORD coords="1365,3122,1563,3089,3117">(UECFG1X</WORD>
<WORD coords="1576,3117,1605,3089,3120">&amp;</WORD>
<WORD coords="1619,3124,1763,3089,3121">(7«4))</WORD>
<WORD coords="1772,3126,1948,3089,3117">//preserve</WORD>
<WORD coords="1964,3122,2039,3090,3118">size,</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2071,2719,2157,2690,2718">clear</WORD>
<WORD coords="2176,2723,2314,2690,2718">ALLOC,</WORD>
<WORD coords="2329,2719,2375,2695,2719">set</WORD>
<WORD coords="2388,2718,2403,2688,0">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2071,3118,2157,3089,3117">clear</WORD>
<WORD coords="2176,3122,2314,3089,3117">ALLOC,</WORD>
<WORD coords="2329,3118,2375,3094,3117">set</WORD>
<WORD coords="2388,3117,2403,3087,0">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0037.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0038.djvu" width="2481">
<PARAM name="PAGE" value="sources_0038.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2419,104,133">39</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="330,277,410,249,277">bank</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,327,363,298,327">#define</WORD>
<WORD coords="387,336,961,299,327">UsbDevSetEndpointDoubleBankO</WORD>
<WORD coords="1133,328,1318,299,327">UECFG1X</WORD>
<WORD coords="1331,322,1352,311,327">=</WORD>
<WORD coords="1365,332,1563,299,327">(UECFG1X</WORD>
<WORD coords="1576,327,1605,299,330">&amp;</WORD>
<WORD coords="1619,334,1763,299,331">(7«4))</WORD>
<WORD coords="1780,337,1782,296,337">|</WORD>
<WORD coords="1799,334,2035,299,327">(1«EPBK0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,377,363,348,377">#define</WORD>
<WORD coords="387,386,894,349,377">UsbDevSetEndpointAllocBit()</WORD>
<WORD coords="1138,382,1398,349,377">SetBit(UECFG</WORD>
<WORD coords="1404,380,1458,349,377">IX,</WORD>
<WORD coords="1472,384,1621,349,377">ALLOC)</WORD>
<WORD coords="1735,378,1765,349,378">//</WORD>
<WORD coords="1795,378,1926,349,377">allocate</WORD>
<WORD coords="1957,386,2102,349,377">endpoint</WORD>
<WORD coords="2123,385,2256,359,377">memory</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,427,363,398,427">#define</WORD>
<WORD coords="387,436,931,399,427">UsbDevClearEndpointAllocBit()</WORD>
<WORD coords="1138,433,1495,399,427">ClearBit(UECFGlX,</WORD>
<WORD coords="1509,434,1658,399,427">ALLOC)</WORD>
<WORD coords="1735,428,1765,399,430">//</WORD>
<WORD coords="1786,436,1854,399,429">free</WORD>
<WORD coords="1883,436,2027,399,427">endpoint</WORD>
<WORD coords="2049,435,2181,409,427">memory</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,527,270,498,527">//</WORD>
<WORD coords="296,527,462,498,526">UESTAOX</WORD>
<WORD coords="473,533,551,498,526">(Usb</WORD>
<WORD coords="563,535,714,498,526">Endpoint</WORD>
<WORD coords="725,527,839,498,526">STAtus</WORD>
<WORD coords="851,531,908,498,526">OX)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,576,363,547,576">#define</WORD>
<WORD coords="387,585,857,548,576">UsbDevIsConfigurationOk()</WORD>
<WORD coords="1141,577,1273,548,576">BitlsSet</WORD>
<WORD coords="1286,582,1489,548,576">(UESTAOX,</WORD>
<WORD coords="1503,583,1655,548,576">CFGOK)</WORD>
<WORD coords="1735,577,1765,548,577">//</WORD>
<WORD coords="1788,585,1921,548,576">updated</WORD>
<WORD coords="1938,577,2020,548,576">when</WORD>
<WORD coords="2033,577,2163,548,576">ALLOC</WORD>
<WORD coords="2174,576,2217,548,576">bit</WORD>
<WORD coords="2229,576,2254,549,576">is</WORD>
<WORD coords="2278,577,2323,553,576">set</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="387,635,946,598,626">UsbDevIsOverflowErrorFlagSet()</WORD>
<WORD coords="1141,627,1273,598,626">BitlsSet</WORD>
<WORD coords="1286,632,1489,598,626">(UESTAOX,</WORD>
<WORD coords="1503,633,1673,598,626">OVERFL)</WORD>
<WORD coords="1735,627,1765,598,627">//</WORD>
<WORD coords="1797,627,1944,598,626">indicates</WORD>
<WORD coords="1977,634,2118,598,628">overflow</WORD>
<WORD coords="2146,626,2173,599,626">in</WORD>
<WORD coords="2211,626,2226,596,626">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,677,521,648,676">isochronous</WORD>
<WORD coords="546,685,691,648,676">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="387,735,952,698,726">UsbDevClearOverflowErrorFlagO</WORD>
<WORD coords="1138,727,1277,698,726">ClearBit</WORD>
<WORD coords="1286,732,1489,698,726">(UESTAOX,</WORD>
<WORD coords="1503,733,1673,698,726">OVERFL)</WORD>
<WORD coords="1735,727,1765,698,727">//</WORD>
<WORD coords="1793,727,1873,698,726">shall</WORD>
<WORD coords="1899,727,1936,698,726">be</WORD>
<WORD coords="1959,727,2082,698,726">cleared</WORD>
<WORD coords="2105,735,2142,698,727">by</WORD>
<WORD coords="2165,735,2304,698,727">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,363,746,775">#define</WORD>
<WORD coords="387,784,967,747,775">UsbDevIsUnderflowErrorFlagSet()</WORD>
<WORD coords="1141,776,1273,747,775">BitlsSet</WORD>
<WORD coords="1286,781,1489,747,775">(UESTAOX,</WORD>
<WORD coords="1503,782,1705,747,775">UNDERFL)</WORD>
<WORD coords="1735,776,1765,747,776">//</WORD>
<WORD coords="1797,776,1944,747,775">indicates</WORD>
<WORD coords="1976,783,2139,747,777">underflow</WORD>
<WORD coords="2164,775,2192,748,775">in</WORD>
<WORD coords="2230,775,2245,745,775">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,826,521,797,825">isochronous</WORD>
<WORD coords="546,834,691,797,825">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,363,846,875">#define</WORD>
<WORD coords="387,884,974,847,875">UsbDevClearUnderflowErrorFlagO</WORD>
<WORD coords="1138,876,1277,847,875">ClearBit</WORD>
<WORD coords="1286,881,1489,847,875">(UESTAOX,</WORD>
<WORD coords="1503,882,1705,847,875">UNDERFL)</WORD>
<WORD coords="1735,876,1765,847,876">//</WORD>
<WORD coords="1793,876,1873,847,875">shall</WORD>
<WORD coords="1899,876,1936,847,876">be</WORD>
<WORD coords="1959,876,2082,847,875">cleared</WORD>
<WORD coords="2105,884,2142,847,876">by</WORD>
<WORD coords="2165,884,2304,847,876">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="387,934,941,897,925">UsbDevZeroLengthPackedSeen()</WORD>
<WORD coords="1141,926,1273,897,925">BitlsSet</WORD>
<WORD coords="1286,931,1489,897,925">(UESTAOX,</WORD>
<WORD coords="1502,932,1691,897,925">ZLPSEEN)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="387,984,1025,947,975">UsbDevClearZeroLengthPackedFlagO</WORD>
<WORD coords="1138,976,1277,947,975">ClearBit</WORD>
<WORD coords="1286,981,1489,947,975">(UESTAOX,</WORD>
<WORD coords="1502,982,1691,947,975">ZLPSEEN)</WORD>
<WORD coords="1735,976,1765,947,976">//</WORD>
<WORD coords="1793,976,1873,947,975">shall</WORD>
<WORD coords="1899,976,1936,947,975">be</WORD>
<WORD coords="1959,976,2082,947,975">cleared</WORD>
<WORD coords="2105,983,2142,947,976">by</WORD>
<WORD coords="2165,984,2304,947,976">software</WORD>
</LINE>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="387,1031,675,996,1024">UsbDevIsDataOO</WORD>
<WORD coords="1133,1025,1312,996,1024">UESTAOX</WORD>
<WORD coords="1325,1024,1354,996,1027">&amp;</WORD>
<WORD coords="1368,1031,1645,996,1024">((1«DTSEQ0)</WORD>
<WORD coords="1663,1034,1665,993,1034">|</WORD>
<WORD coords="1682,1031,1959,996,1024">(1«DTSEQ1))</WORD>
<WORD coords="1972,1019,2017,1008,1021">==</WORD>
<WORD coords="2029,1025,2048,996,1025">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1081,675,1046,1074">UsbDevIsDatal()</WORD>
<WORD coords="1133,1075,1312,1046,1074">UESTAOX</WORD>
<WORD coords="1325,1074,1354,1046,1077">&amp;</WORD>
<WORD coords="1368,1081,1645,1046,1074">((1«DTSEQ0)</WORD>
<WORD coords="1663,1084,1665,1024,1084">j</WORD>
<WORD coords="1682,1081,1959,1046,1074">(1«DTSEQ1))</WORD>
<WORD coords="1972,1069,2017,1058,1072">==</WORD>
<WORD coords="2030,1081,2294,1046,1074">(1«DTSEQ0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1133,975,1096,1124">UsbDevGetNumberOfBusyBanks()</WORD>
<WORD coords="1137,1130,1331,1096,1124">(UESTAOX</WORD>
<WORD coords="1344,1124,1373,1096,1124">&amp;</WORD>
<WORD coords="1387,1131,1417,1096,1129">3)</WORD>
<WORD coords="1735,1125,1765,1096,1125">//</WORD>
<WORD coords="1795,1133,1823,1096,1128">if</WORD>
<WORD coords="1843,1124,1863,1096,1124">0</WORD>
<WORD coords="1883,1124,1950,1096,1124">then</WORD>
<WORD coords="1980,1125,2022,1096,1124">all</WORD>
<WORD coords="2049,1124,2143,1096,1124">banks</WORD>
<WORD coords="2162,1125,2213,1106,1124">are</WORD>
<WORD coords="2234,1133,2302,1096,1126">free</WORD>
<WORD coords="2313,1129,2319,1120,1129">,</WORD>
<WORD coords="2361,1124,2376,1094,1124">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="328,1183,355,1146,1178">if</WORD>
<WORD coords="377,1174,392,1146,1174">1</WORD>
<WORD coords="416,1174,482,1146,1174">then</WORD>
<WORD coords="508,1174,523,1146,1174">1</WORD>
<WORD coords="544,1174,624,1146,1174">bank</WORD>
<WORD coords="643,1174,668,1147,1174">is</WORD>
<WORD coords="693,1183,767,1146,1174">busy</WORD>
<WORD coords="781,1175,807,1170,1175">...</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="296,1274,462,1245,1273">UESTA1X</WORD>
<WORD coords="473,1280,551,1245,1273">(Usb</WORD>
<WORD coords="562,1282,714,1245,1273">Endpoint</WORD>
<WORD coords="725,1274,839,1245,1273">STAtus</WORD>
<WORD coords="852,1278,908,1245,1273">IX)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="388,1330,902,1295,1323">UsbDevIsControlDirectionIn()</WORD>
<WORD coords="1141,1324,1273,1295,1323">BitlsSet</WORD>
<WORD coords="1286,1329,1489,1295,1323">(UESTA1X,</WORD>
<WORD coords="1503,1327,1691,1295,1323">CTRLDIR)</WORD>
<WORD coords="1735,1324,1765,1295,1324">//</WORD>
<WORD coords="1797,1324,1942,1295,1323">direction</WORD>
<WORD coords="1976,1332,2014,1295,1328">of</WORD>
<WORD coords="2032,1324,2101,1300,1323">next</WORD>
<WORD coords="2120,1332,2240,1295,1323">packed</WORD>
<WORD coords="2262,1332,2340,1295,1324">after</WORD>
<WORD coords="2379,1323,2394,1293,1323">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="320,1374,443,1345,1373">SETUP</WORD>
<WORD coords="452,1382,571,1345,1373">packed</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="387,1430,923,1395,1423">UsbDevIsControlDirectionOut()</WORD>
<WORD coords="1141,1424,1311,1395,1423">BitlsClear</WORD>
<WORD coords="1324,1428,1526,1395,1423">(UESTA1X,</WORD>
<WORD coords="1540,1427,1729,1395,1423">CTRLDIR)</WORD>
<WORD coords="1741,1424,1770,1395,1424">//</WORD>
<WORD coords="1792,1424,1838,1400,1424">set</WORD>
<WORD coords="1862,1424,1924,1395,1423">and</WORD>
<WORD coords="1940,1424,2064,1395,1423">cleared</WORD>
<WORD coords="2086,1431,2124,1395,1424">by</WORD>
<WORD coords="2142,1424,2298,1395,1423">hardware</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="387,1480,820,1445,1473">UsbDevGetCurrentBank()</WORD>
<WORD coords="1137,1478,1331,1445,1473">(UESTA1X</WORD>
<WORD coords="1344,1473,1373,1445,1473">&amp;</WORD>
<WORD coords="1387,1480,1417,1445,1478">3)</WORD>
<WORD coords="1735,1474,1765,1445,1474">//</WORD>
<WORD coords="1792,1474,1838,1451,1474">set</WORD>
<WORD coords="1862,1482,1900,1445,1473">by</WORD>
<WORD coords="1918,1478,2081,1445,1473">hardware,</WORD>
<WORD coords="2105,1473,2231,1445,1473">number</WORD>
<WORD coords="2242,1482,2280,1445,1478">of</WORD>
<WORD coords="2305,1473,2320,1443,1473">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="325,1524,445,1500,1523">current</WORD>
<WORD coords="469,1527,556,1495,1523">bank,</WORD>
<WORD coords="581,1523,601,1495,1523">0</WORD>
<WORD coords="619,1523,656,1505,1523">or</WORD>
<WORD coords="676,1523,691,1495,1523">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1623,270,1594,1623">//</WORD>
<WORD coords="296,1623,439,1595,1622">UEINTX</WORD>
<WORD coords="449,1629,460,1594,1623">(</WORD>
<WORD coords="465,1623,527,1594,1622">Usb</WORD>
<WORD coords="540,1631,691,1594,1622">Endpoint</WORD>
<WORD coords="701,1631,866,1595,1622">INTerrupt</WORD>
<WORD coords="875,1627,913,1594,1622">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1672,363,1643,1672">#define</WORD>
<WORD coords="391,1673,866,1644,1672">UsbDevIsFifoControllBitSet</WORD>
<WORD coords="878,1679,902,1644,1678">()</WORD>
<WORD coords="1141,1673,1273,1644,1672">BitlsSet</WORD>
<WORD coords="1286,1678,1463,1644,1672">(UEINTX,</WORD>
<WORD coords="1477,1679,1665,1644,1672">FIFOCON)</WORD>
<WORD coords="1735,1673,1765,1644,1673">//</WORD>
<WORD coords="1789,1673,1839,1654,1673">see</WORD>
<WORD coords="1858,1681,1939,1654,1672">page</WORD>
<WORD coords="1954,1672,2016,1644,1672">289</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="388,1723,869,1694,1722">UsbDevClearFifoControllBit</WORD>
<WORD coords="878,1729,902,1694,1728">()</WORD>
<WORD coords="1138,1723,1277,1694,1722">ClearBit</WORD>
<WORD coords="1286,1728,1463,1694,1722">(UEINTX,</WORD>
<WORD coords="1477,1729,1665,1694,1722">FIFOCON)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1779,742,1744,1772">UsbDevSendInData()</WORD>
<WORD coords="1138,1772,1277,1744,1772">ClearBit</WORD>
<WORD coords="1286,1778,1463,1744,1772">(UEINTX,</WORD>
<WORD coords="1477,1779,1665,1744,1772">FIFOCON)</WORD>
<WORD coords="1735,1773,1765,1744,1773">//</WORD>
<WORD coords="1789,1773,1839,1754,1773">see</WORD>
<WORD coords="1868,1773,1982,1745,1772">section</WORD>
<WORD coords="2015,1777,2114,1744,1774">22.15,</WORD>
<WORD coords="2138,1781,2220,1754,1772">page</WORD>
<WORD coords="2235,1772,2298,1744,1772">277</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="387,1830,1103,1793,1821">UsbDevNAK_ResponseSendToInRequest()</WORD>
<WORD coords="1141,1822,1273,1793,1821">BitlsSet</WORD>
<WORD coords="1286,1827,1463,1793,1821">(UEINTX,</WORD>
<WORD coords="1477,1828,1634,1793,1821">NAKINI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1880,984,1843,1871">UsbDevClearNAK_ResponseInBit()</WORD>
<WORD coords="1138,1872,1277,1843,1871">ClearBit</WORD>
<WORD coords="1286,1877,1463,1843,1871">(UEINTX,</WORD>
<WORD coords="1476,1878,1634,1843,1871">NAKINI)</WORD>
<WORD coords="1735,1872,1765,1843,1872">//</WORD>
<WORD coords="1793,1871,1873,1843,1871">shall</WORD>
<WORD coords="1899,1872,1936,1843,1872">be</WORD>
<WORD coords="1959,1872,2082,1843,1871">cleared</WORD>
<WORD coords="2105,1879,2142,1843,1872">by</WORD>
<WORD coords="2165,1880,2304,1843,1872">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1922,295,1893,1922">//#</WORD>
<WORD coords="300,1930,397,1893,1922">define</WORD>
<WORD coords="427,1928,895,1893,1921">UsbDevReadWriteAllowed()</WORD>
<WORD coords="1142,1922,1272,1893,1921">BitlsSet</WORD>
<WORD coords="1286,1928,1452,1893,1921">(UEINTX,</WORD>
<WORD coords="1467,1926,1584,1893,1921">RWAL)</WORD>
<WORD coords="1735,1922,1765,1893,1923">//</WORD>
<WORD coords="1792,1922,1838,1899,1922">set</WORD>
<WORD coords="1862,1930,1900,1893,1921">by</WORD>
<WORD coords="1917,1926,2081,1893,1921">hardware,</WORD>
<WORD coords="2105,1922,2195,1893,1921">don’t</WORD>
<WORD coords="2218,1922,2270,1903,1921">use</WORD>
<WORD coords="2288,1930,2344,1893,1924">for</WORD>
<WORD coords="2379,1921,2394,1891,1921">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="326,1972,443,1943,1971">control</WORD>
<WORD coords="471,1980,616,1943,1971">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="387,2025,773,1993,2021">UsbDevReadAllowedO</WORD>
<WORD coords="1141,2022,1273,1993,2021">BitlsSet</WORD>
<WORD coords="1286,2027,1463,1993,2021">(UEINTX,</WORD>
<WORD coords="1477,2025,1603,1993,2021">RWAL)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2071,363,2042,2071">#define</WORD>
<WORD coords="387,2078,782,2043,2071">UsbDevWriteAllowed()</WORD>
<WORD coords="1141,2072,1273,2043,2071">BitlsSet</WORD>
<WORD coords="1286,2077,1463,2043,2071">(UEINTX,</WORD>
<WORD coords="1477,2075,1603,2043,2071">RWAL)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2120,363,2091,2120">#define</WORD>
<WORD coords="386,2129,1130,2092,2120">UsbDevNAK_ResponseSendToOutRequest()</WORD>
<WORD coords="1146,2121,1279,2092,2120">BitlsSet</WORD>
<WORD coords="1286,2126,1463,2092,2120">(UEINTX,</WORD>
<WORD coords="1477,2127,1674,2092,2120">NAKOUTI)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2170,363,2141,2170">#define</WORD>
<WORD coords="387,2179,1011,2142,2170">UsbDevClearNAK_ResponseOutBit()</WORD>
<WORD coords="1138,2171,1277,2142,2170">ClearBit</WORD>
<WORD coords="1286,2176,1463,2142,2170">(UEINTX,</WORD>
<WORD coords="1477,2177,1674,2142,2170">NAKOUTI)</WORD>
<WORD coords="1735,2171,1765,2142,2171">//</WORD>
<WORD coords="1793,2171,1873,2142,2170">shall</WORD>
<WORD coords="1899,2171,1936,2142,2170">be</WORD>
<WORD coords="1959,2171,2082,2142,2170">cleared</WORD>
<WORD coords="2105,2179,2142,2142,2170">by</WORD>
<WORD coords="2165,2179,2304,2142,2171">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2220,363,2191,2220">#define</WORD>
<WORD coords="387,2227,890,2192,2220">UsbDevHasReceivedSETUP()</WORD>
<WORD coords="1141,2221,1273,2192,2220">BitlsSet</WORD>
<WORD coords="1286,2226,1463,2192,2220">(UEINTX,</WORD>
<WORD coords="1477,2227,1631,2192,2220">RXSTPI)</WORD>
<WORD coords="1735,2221,1765,2192,2221">//</WORD>
<WORD coords="1792,2221,1838,2198,2221">set</WORD>
<WORD coords="1862,2229,1900,2192,2221">by</WORD>
<WORD coords="1918,2221,2074,2192,2220">hardware</WORD>
<WORD coords="2094,2229,2122,2192,2224">if</WORD>
<WORD coords="2147,2220,2267,2197,2220">current</WORD>
<WORD coords="2292,2220,2372,2192,2220">bank</WORD>
<WORD coords="2385,2220,2400,2190,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="337,2271,475,2243,2270">contains</WORD>
<WORD coords="501,2271,519,2252,2271">a</WORD>
<WORD coords="544,2271,626,2242,2270">valid</WORD>
<WORD coords="650,2271,773,2242,2270">SETUP</WORD>
<WORD coords="781,2279,891,2242,2270">packet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2321,269,2292,2321">//</WORD>
<WORD coords="273,2320,296,2292,2320">#</WORD>
<WORD coords="299,2329,397,2291,2323">define</WORD>
<WORD coords="427,2327,1004,2292,2320">UsbDevClearHasReceivedSETUPf</WORD>
<WORD coords="1008,2325,1017,2292,2325">)</WORD>
<WORD coords="1139,2321,1279,2292,2320">ClearBit</WORD>
<WORD coords="1285,2327,1452,2292,2320">(UEINTX,</WORD>
<WORD coords="1467,2324,1612,2292,2320">RXSTPI)</WORD>
<WORD coords="1735,2321,1765,2292,2321">//</WORD>
<WORD coords="1793,2321,1873,2292,2320">shall</WORD>
<WORD coords="1899,2321,1936,2292,2320">be</WORD>
<WORD coords="1959,2321,2082,2292,2320">cleared</WORD>
<WORD coords="2105,2329,2142,2292,2321">by</WORD>
<WORD coords="2165,2329,2304,2292,2321">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2369,363,2340,2369">#define</WORD>
<WORD coords="387,2378,902,2341,2369">UsbDevAcknowledgeSETUP()</WORD>
<WORD coords="1138,2370,1277,2341,2369">ClearBit</WORD>
<WORD coords="1286,2375,1463,2341,2369">(UEINTX,</WORD>
<WORD coords="1477,2376,1631,2341,2369">RXSTPI)</WORD>
<WORD coords="1735,2370,1765,2341,2370">//</WORD>
<WORD coords="1787,2378,2000,2341,2369">acknowledge</WORD>
<WORD coords="2018,2378,2137,2346,2369">request</WORD>
<WORD coords="2161,2370,2222,2341,2369">and</WORD>
<WORD coords="2239,2370,2325,2341,2369">clear</WORD>
<WORD coords="2361,2369,2376,2341,2369">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="324,2428,381,2391,2425">fifo</WORD>
<WORD coords="398,2424,404,2415,2424">,</WORD>
<WORD coords="433,2420,484,2401,2420">see</WORD>
<WORD coords="513,2420,627,2392,2419">section</WORD>
<WORD coords="655,2419,747,2391,2419">22.13</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2469,363,2440,2469">#define</WORD>
<WORD coords="387,2476,942,2441,2469">UsbDevHasReceivedOUT_Data()</WORD>
<WORD coords="1141,2470,1273,2441,2469">BitlsSet</WORD>
<WORD coords="1286,2475,1463,2441,2469">(UEINTX,</WORD>
<WORD coords="1477,2476,1644,2441,2469">RXOUTI)</WORD>
<WORD coords="1735,2470,1765,2441,2470">//</WORD>
<WORD coords="1792,2470,1838,2447,2470">set</WORD>
<WORD coords="1862,2477,1900,2441,2469">by</WORD>
<WORD coords="1918,2470,2074,2441,2469">hardware</WORD>
<WORD coords="2094,2478,2122,2441,2473">if</WORD>
<WORD coords="2147,2469,2267,2447,2469">current</WORD>
<WORD coords="2292,2469,2372,2441,2469">bank</WORD>
<WORD coords="2385,2469,2400,2439,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="337,2520,475,2492,2519">contains</WORD>
<WORD coords="501,2519,519,2501,2519">a</WORD>
<WORD coords="538,2520,602,2501,2519">new</WORD>
<WORD coords="611,2528,731,2491,2519">packed</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2569,363,2540,2569">#define</WORD>
<WORD coords="387,2576,1032,2541,2569">UsbDevClearHasReceivedOUT_Data()</WORD>
<WORD coords="1138,2570,1277,2541,2569">ClearBit</WORD>
<WORD coords="1286,2575,1463,2541,2569">(UEINTX,</WORD>
<WORD coords="1477,2576,1644,2541,2569">RXOUTI)</WORD>
<WORD coords="1735,2570,1765,2541,2570">//</WORD>
<WORD coords="1793,2570,1873,2541,2569">shall</WORD>
<WORD coords="1899,2570,1936,2541,2570">be</WORD>
<WORD coords="1959,2570,2082,2541,2569">cleared</WORD>
<WORD coords="2105,2577,2142,2541,2570">by</WORD>
<WORD coords="2165,2578,2304,2541,2570">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2618,363,2589,2618">#define</WORD>
<WORD coords="387,2622,896,2590,2618">UsbDevKillLastWrittenBankO</WORD>
<WORD coords="1138,2619,1240,2590,2618">SetBit</WORD>
<WORD coords="1249,2624,1426,2590,2618">(UEINTX,</WORD>
<WORD coords="1439,2625,1607,2590,2618">RXOUTI)</WORD>
<WORD coords="1735,2619,1765,2590,2619">//</WORD>
<WORD coords="1789,2619,1839,2600,2619">see</WORD>
<WORD coords="1858,2627,1939,2600,2618">page</WORD>
<WORD coords="1955,2618,2017,2590,2620">278</WORD>
<WORD coords="2027,2627,2082,2590,2621">for</WORD>
<WORD coords="2105,2619,2196,2590,2618">abort</WORD>
<WORD coords="2230,2618,2245,2588,2618">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,2677,481,2641,2668">operation</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2718,363,2689,2718">#define</WORD>
<WORD coords="387,2722,938,2690,2718">UsbDevSTALLHandshakeSendO</WORD>
<WORD coords="1141,2719,1273,2690,2718">BitlsSet</WORD>
<WORD coords="1286,2724,1463,2690,2718">(UEINTX,</WORD>
<WORD coords="1478,2725,1682,2690,2718">STALLEDI)</WORD>
<WORD coords="1735,2719,1765,2690,2719">//</WORD>
<WORD coords="1787,2719,1899,2690,2718">STALL</WORD>
<WORD coords="1911,2719,1987,2690,2718">send</WORD>
<WORD coords="1997,2719,2034,2700,2718">or</WORD>
<WORD coords="2051,2719,2129,2690,2718">CRC</WORD>
<WORD coords="2140,2718,2225,2700,2718">error</WORD>
<WORD coords="2239,2718,2267,2691,2718">in</WORD>
<WORD coords="2294,2719,2376,2690,2718">OUT</WORD>
<WORD coords="2388,2718,2403,2688,2718">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="331,2769,528,2740,2768">isochronous</WORD>
<WORD coords="541,2777,686,2740,2768">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,363,2789,2818">#define</WORD>
<WORD coords="387,2827,844,2790,2818">UsbDevTransmitterReadyO</WORD>
<WORD coords="1141,2819,1273,2790,2818">BitlsSet</WORD>
<WORD coords="1286,2824,1463,2790,2818">(UEINTX,</WORD>
<WORD coords="1477,2825,1601,2790,2818">TXINI)</WORD>
<WORD coords="1735,2819,1765,2790,2819">//</WORD>
<WORD coords="1792,2819,1912,2796,2818">current</WORD>
<WORD coords="1937,2818,2017,2790,2818">bank</WORD>
<WORD coords="2036,2818,2060,2791,2818">is</WORD>
<WORD coords="2085,2827,2152,2790,2820">free</WORD>
<WORD coords="2179,2819,2242,2790,2818">and</WORD>
<WORD coords="2254,2819,2310,2800,2818">can</WORD>
<WORD coords="2329,2818,2366,2790,2818">be</WORD>
<WORD coords="2381,2818,2396,2788,2818">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="344,2876,434,2840,2870">filled</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,363,2888,2917">#define</WORD>
<WORD coords="386,2926,922,2888,2917">UsbDevWaitTransmitterReadyO</WORD>
<WORD coords="1133,2918,1225,2888,2917">while</WORD>
<WORD coords="1254,2923,1291,2889,2918">(!(</WORD>
<WORD coords="1301,2918,1454,2889,2917">UEINTX</WORD>
<WORD coords="1467,2918,1496,2889,2920">&amp;</WORD>
<WORD coords="1510,2924,1771,2889,2917">(1«TXINI)));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2967,363,2938,2967">#define</WORD>
<WORD coords="387,2976,934,2939,2967">UsbDevClearTransmitterReadyO</WORD>
<WORD coords="1138,2968,1277,2939,2967">ClearBit</WORD>
<WORD coords="1286,2973,1463,2939,2967">(UEINTX,</WORD>
<WORD coords="1477,2974,1601,2939,2967">TXINI)</WORD>
<WORD coords="1735,2968,1765,2939,2968">//</WORD>
<WORD coords="1793,2967,1873,2939,2967">shall</WORD>
<WORD coords="1899,2968,1936,2939,2968">be</WORD>
<WORD coords="1959,2968,2082,2939,2967">cleared</WORD>
<WORD coords="2105,2975,2142,2939,2968">by</WORD>
<WORD coords="2165,2976,2304,2939,2968">software</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3018,364,2988,3017">#define</WORD>
<WORD coords="386,3025,790,2989,3018">UsbDevSendControlInO</WORD>
<WORD coords="1138,3018,1277,2989,3017">ClearBit</WORD>
<WORD coords="1286,3023,1463,2989,3017">(UEINTX,</WORD>
<WORD coords="1477,3024,1601,2989,3017">TXINI)</WORD>
<WORD coords="1735,3018,1764,2989,3018">//</WORD>
<WORD coords="1788,3018,1840,2999,3018">see</WORD>
<WORD coords="1867,3018,1982,2990,3017">section</WORD>
<WORD coords="2014,3022,2114,2989,3019">22.13,</WORD>
<WORD coords="2139,3026,2220,2999,3017">page</WORD>
<WORD coords="2234,3017,2295,2989,3018">274</WORD>
<WORD coords="2314,3024,2325,2989,3024">(</WORD>
<WORD coords="2342,3017,2357,2987,3017">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="326,3068,443,3039,3067">control</WORD>
<WORD coords="471,3076,616,3039,3067">endpoint</WORD>
<WORD coords="637,3076,848,3044,3067">management</WORD>
<WORD coords="851,3072,860,3039,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3117,363,3088,3117">#define</WORD>
<WORD coords="387,3126,1018,3089,3117">UsbDevAcknowledgelnBankFreelntQ</WORD>
<WORD coords="1138,3118,1277,3089,3117">ClearBit</WORD>
<WORD coords="1286,3123,1463,3089,3117">(UEINTX,</WORD>
<WORD coords="1477,3124,1601,3089,3117">TXINI)</WORD>
<WORD coords="1735,3118,1765,3089,3118">//</WORD>
<WORD coords="1789,3118,1891,3090,3117">TXINI</WORD>
<WORD coords="1906,3118,1931,3090,3117">is</WORD>
<WORD coords="1960,3118,2006,3094,3118">set</WORD>
<WORD coords="2030,3125,2068,3089,3117">by</WORD>
<WORD coords="2086,3118,2242,3089,3117">hardware</WORD>
<WORD coords="2263,3126,2290,3089,3121">if</WORD>
<WORD coords="2314,3117,2341,3090,3117">in</WORD>
<WORD coords="2379,3117,2394,3087,3117">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0038.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0039.djvu" width="2481">
<PARAM name="PAGE" value="sources_0039.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,133,2420,104,132">40</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="320,277,400,249,277">bank</WORD>
<WORD coords="413,278,554,249,277">becomes</WORD>
<WORD coords="563,286,631,249,279">free</WORD>
<WORD coords="640,282,646,273,282">,</WORD>
<WORD coords="676,278,727,259,278">see</WORD>
<WORD coords="756,278,870,250,277">section</WORD>
<WORD coords="898,277,990,249,277">22.15</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="296,378,441,350,377">UEIENX</WORD>
<WORD coords="452,384,530,349,377">(Usb</WORD>
<WORD coords="541,386,693,349,377">Endpoint</WORD>
<WORD coords="703,386,838,350,377">Interupt</WORD>
<WORD coords="852,378,975,349,377">ENable</WORD>
<WORD coords="986,382,1024,349,377">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,427,363,398,427">#define</WORD>
<WORD coords="387,434,879,399,427">UsbDevEnableFlowErrorInt()</WORD>
<WORD coords="1138,428,1240,399,427">SetBit</WORD>
<WORD coords="1249,433,1426,399,427">(UEIENX,</WORD>
<WORD coords="1438,434,1605,399,427">FLERRE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,363,447,476">#define</WORD>
<WORD coords="387,483,891,448,476">UsbDevDisableFlowErrorInt()</WORD>
<WORD coords="1138,477,1277,448,476">ClearBit</WORD>
<WORD coords="1286,482,1463,448,476">(UEIENX,</WORD>
<WORD coords="1477,483,1642,448,476">FLERRE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="386,533,870,498,526">UsbDevEnableNAKJN_Int()</WORD>
<WORD coords="1138,527,1240,498,526">SetBit</WORD>
<WORD coords="1249,532,1426,498,526">(UEIENX,</WORD>
<WORD coords="1439,533,1608,498,526">NAKINE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,576,363,547,576">#define</WORD>
<WORD coords="387,583,881,548,576">UsbDevDisableNAKJNJnt()</WORD>
<WORD coords="1138,577,1277,548,576">ClearBit</WORD>
<WORD coords="1286,582,1463,548,576">(UEIENX,</WORD>
<WORD coords="1477,583,1645,548,576">NAKINE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="386,627,722,598,626">UsbDevEnableNAK</WORD>
<WORD coords="740,627,824,598,626">OUT</WORD>
<WORD coords="840,633,911,598,626">Int()</WORD>
<WORD coords="1138,627,1240,598,626">SetBit</WORD>
<WORD coords="1249,632,1426,598,626">(UEIENX,</WORD>
<WORD coords="1439,633,1648,598,626">NAKOUTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,676,363,647,676">#define</WORD>
<WORD coords="386,677,733,648,676">UsbDevDisableNAK</WORD>
<WORD coords="751,677,835,648,676">OUT</WORD>
<WORD coords="852,684,923,648,676">Int()</WORD>
<WORD coords="1138,677,1277,648,676">ClearBit</WORD>
<WORD coords="1286,682,1463,648,676">(UEIENX,</WORD>
<WORD coords="1477,683,1686,648,676">NAKOUTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="387,733,1002,698,726">UsbDevEnableReceivedSETUPJnt()</WORD>
<WORD coords="1139,727,1240,698,726">SetBit</WORD>
<WORD coords="1249,732,1426,698,726">(UEIENX,</WORD>
<WORD coords="1439,733,1605,698,726">RXSTPE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,363,746,775">#define</WORD>
<WORD coords="387,782,1014,747,775">UsbDevDisableReceivedSETUP_Int()</WORD>
<WORD coords="1138,776,1277,747,775">ClearBit</WORD>
<WORD coords="1286,781,1463,747,775">(UEIENX,</WORD>
<WORD coords="1477,782,1642,747,775">RXSTPE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,363,796,825">#define</WORD>
<WORD coords="387,832,1081,797,825">UsbDevEnableReceivedOUT_DATA_Int()</WORD>
<WORD coords="1138,826,1240,797,825">SetBit</WORD>
<WORD coords="1249,830,1426,797,825">(UEIENX,</WORD>
<WORD coords="1439,832,1619,797,825">RXOUTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,363,846,875">#define</WORD>
<WORD coords="387,882,1092,847,875">UsbDevDisableReceivedOUT_DATAJnt()</WORD>
<WORD coords="1138,876,1277,847,875">ClearBit</WORD>
<WORD coords="1286,881,1463,847,875">(UEIENX,</WORD>
<WORD coords="1477,882,1656,847,875">RXOUTE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="387,926,414,897,925">U</WORD>
<WORD coords="417,926,655,897,925">sbDevEnableS</WORD>
<WORD coords="660,925,814,897,925">TALLED</WORD>
<WORD coords="819,932,903,897,925">_Int()</WORD>
<WORD coords="1138,926,1240,897,925">SetBit</WORD>
<WORD coords="1249,931,1426,897,925">(UEIENX,</WORD>
<WORD coords="1440,932,1656,897,925">STALLEDE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="387,982,914,947,975">UsbDevDisableSTALLED_Int()</WORD>
<WORD coords="1138,976,1277,947,975">ClearBit</WORD>
<WORD coords="1286,981,1463,947,975">(UEIENX,</WORD>
<WORD coords="1478,982,1694,947,975">STALLEDE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="387,1033,1006,996,1024">UsbDevEnableTransmitterReadyInt()</WORD>
<WORD coords="1138,1025,1240,996,1024">SetBit</WORD>
<WORD coords="1249,1030,1426,996,1024">(UEIENX,</WORD>
<WORD coords="1439,1031,1575,996,1024">TXINE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1083,1018,1046,1074">UsbDevDisableTransmitterReadyInt()</WORD>
<WORD coords="1138,1075,1277,1046,1074">ClearBit</WORD>
<WORD coords="1286,1080,1463,1046,1074">(UEIENX,</WORD>
<WORD coords="1477,1081,1612,1046,1074">TXINE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1175,270,1146,1175">//</WORD>
<WORD coords="296,1175,450,1146,1174">UEDATX</WORD>
<WORD coords="460,1181,538,1146,1174">(Usb</WORD>
<WORD coords="549,1183,702,1146,1174">Endpoint</WORD>
<WORD coords="712,1174,803,1146,1174">DATa</WORD>
<WORD coords="814,1179,852,1146,1174">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="387,1233,710,1196,1224">UsbDevReadByte()</WORD>
</LINE>
<LINE>
<WORD coords="322,1274,456,1245,1274">selected</WORD>
<WORD coords="476,1282,514,1245,1274">by</WORD>
<WORD coords="531,1274,675,1246,1273">EPNUM</WORD>
</LINE>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="387,1332,790,1295,1323">UsbDevWriteByte(byte)</WORD>
</LINE>
<LINE>
<WORD coords="322,1374,456,1345,1374">selected</WORD>
<WORD coords="476,1382,514,1345,1373">by</WORD>
<WORD coords="531,1374,675,1346,1373">EPNUM</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1474,270,1445,1474">//</WORD>
<WORD coords="296,1474,457,1445,1473">UEBCHX</WORD>
<WORD coords="468,1480,546,1445,1473">(Usb</WORD>
<WORD coords="557,1482,710,1445,1473">Endpoint</WORD>
<WORD coords="720,1481,792,1446,1473">Byte</WORD>
<WORD coords="807,1474,906,1445,1473">Count</WORD>
<WORD coords="916,1481,997,1445,1473">High</WORD>
<WORD coords="1008,1478,1046,1445,1473">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1523,363,1494,1523">#define</WORD>
<WORD coords="387,1532,869,1495,1523">UsbDevGetByteCountHighO</WORD>
<WORD coords="1133,1524,1302,1495,1523">UEBCHX</WORD>
<WORD coords="1735,1524,1765,1495,1524">//</WORD>
<WORD coords="1787,1523,1805,1495,1523">3</WORD>
<WORD coords="1824,1524,1904,1495,1523">MSB</WORD>
<WORD coords="1916,1532,1953,1495,1527">of</WORD>
<WORD coords="1960,1523,2008,1495,1523">the</WORD>
<WORD coords="2033,1532,2099,1495,1523">byte</WORD>
<WORD coords="2124,1524,2216,1500,1523">count</WORD>
<WORD coords="2238,1532,2276,1495,1528">of</WORD>
<WORD coords="2295,1523,2342,1495,1523">the</WORD>
<WORD coords="2379,1523,2394,1493,1523">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="319,1573,412,1544,1572">FIFO</WORD>
<WORD coords="425,1581,569,1544,1572">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1673,270,1644,1673">//</WORD>
<WORD coords="296,1673,450,1644,1672">UEBCLX</WORD>
<WORD coords="461,1679,539,1644,1672">(Usb</WORD>
<WORD coords="550,1681,703,1644,1672">Endpoint</WORD>
<WORD coords="713,1681,785,1645,1672">Byte</WORD>
<WORD coords="800,1673,899,1644,1672">Count</WORD>
<WORD coords="909,1673,979,1645,1672">Low</WORD>
<WORD coords="990,1677,1028,1644,1672">X)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="387,1731,861,1694,1722">UsbDevGetByteCountLow()</WORD>
<WORD coords="1133,1723,1297,1694,1722">UEBCLX</WORD>
<WORD coords="1735,1723,1765,1694,1723">//</WORD>
<WORD coords="1787,1722,1806,1694,1722">8</WORD>
<WORD coords="1824,1723,1891,1694,1722">LSB</WORD>
<WORD coords="1904,1731,1941,1694,1727">of</WORD>
<WORD coords="1959,1722,2006,1694,1722">the</WORD>
<WORD coords="2033,1731,2099,1694,1723">byte</WORD>
<WORD coords="2124,1723,2216,1700,1722">count</WORD>
<WORD coords="2238,1731,2276,1694,1727">of</WORD>
<WORD coords="2295,1722,2342,1694,1722">the</WORD>
<WORD coords="2379,1722,2394,1692,1722">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="319,1773,412,1744,1772">FIFO</WORD>
<WORD coords="425,1781,569,1744,1772">endpoint</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1872,270,1843,1872">//</WORD>
<WORD coords="296,1872,415,1844,1871">UEINT</WORD>
<WORD coords="424,1878,502,1843,1871">(Usb</WORD>
<WORD coords="514,1880,666,1843,1871">Endpoint</WORD>
<WORD coords="675,1880,852,1843,1871">INTerrupt)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1921,363,1892,1921">#define</WORD>
<WORD coords="387,1930,871,1893,1921">UsbDevGetEndpointIntBits()</WORD>
<WORD coords="1133,1922,1256,1893,1921">UEINT</WORD>
<WORD coords="1735,1922,1765,1893,1922">//</WORD>
<WORD coords="1792,1922,1838,1899,1922">set</WORD>
<WORD coords="1862,1930,1900,1893,1921">by</WORD>
<WORD coords="1918,1922,2074,1893,1921">hardware</WORD>
<WORD coords="2088,1922,2171,1893,1921">when</WORD>
<WORD coords="2193,1930,2339,1894,1921">interrupt</WORD>
<WORD coords="2379,1921,2394,1893,1921">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="326,1972,350,1944,1972">is</WORD>
<WORD coords="385,1980,536,1943,1971">triggered</WORD>
<WORD coords="547,1976,553,1967,1976">,</WORD>
<WORD coords="585,1972,708,1943,1971">cleared</WORD>
<WORD coords="739,1980,766,1943,1975">if</WORD>
<WORD coords="794,1971,836,1944,1971">int</WORD>
<WORD coords="863,1972,970,1953,1971">source</WORD>
<WORD coords="998,1972,1023,1944,1971">is</WORD>
<WORD coords="1050,1972,1158,1943,1971">ser\’ed</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,1225,1296,1196,1224">UEDATX</WORD>
<WORD coords="1735,1225,1765,1196,1225">//</WORD>
<WORD coords="1788,1225,1862,1196,1224">read</WORD>
<WORD coords="1883,1233,1950,1196,1224">byte</WORD>
<WORD coords="1967,1233,2049,1196,1226">from</WORD>
<WORD coords="2069,1233,2214,1196,1224">endpoint</WORD>
<WORD coords="2235,1225,2328,1196,1224">FIFO</WORD>
<WORD coords="2353,1224,2368,1194,1224">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,1324,1296,1295,1323">UEDATX</WORD>
<WORD coords="1308,1318,1329,1307,1320">=</WORD>
<WORD coords="1342,1332,1411,1295,1323">byte</WORD>
<WORD coords="1735,1324,1765,1295,1324">//</WORD>
<WORD coords="1792,1324,1874,1296,1323">write</WORD>
<WORD coords="1902,1332,1969,1295,1324">byte</WORD>
<WORD coords="1996,1324,2025,1300,1323">to</WORD>
<WORD coords="2051,1332,2195,1295,1323">endpoint</WORD>
<WORD coords="2217,1324,2309,1295,1323">FIFO</WORD>
<WORD coords="2335,1323,2350,1293,1323">)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2072,270,2043,2072">//</WORD>
<WORD coords="292,2071,363,2044,2071">PEL</WORD>
<WORD coords="375,2072,461,2043,2071">clock</WORD>
<WORD coords="476,2080,532,2043,2074">for</WORD>
<WORD coords="557,2072,628,2043,2071">USB</WORD>
<WORD coords="646,2080,790,2043,2072">interface</WORD>
<WORD coords="800,2076,806,2067,2076">,</WORD>
<WORD coords="841,2072,955,2044,2071">section</WORD>
<WORD coords="989,2076,1067,2043,2073">6.11,</WORD>
<WORD coords="1093,2080,1173,2053,2071">page</WORD>
<WORD coords="1189,2071,1230,2043,2071">50</WORD>
</LINE>
<LINE>
<WORD coords="241,2121,270,2092,2121">//</WORD>
<WORD coords="292,2121,436,2092,2120">PLLCSR</WORD>
<WORD coords="449,2127,533,2093,2120">(PEL</WORD>
<WORD coords="546,2121,670,2092,2120">Control</WORD>
<WORD coords="682,2121,744,2092,2120">and</WORD>
<WORD coords="755,2121,854,2092,2120">Status</WORD>
<WORD coords="877,2128,1035,2092,2120">Register)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2171,270,2142,2171">//</WORD>
<WORD coords="298,2171,343,2147,2171">set</WORD>
<WORD coords="366,2170,438,2143,2170">PLL</WORD>
<WORD coords="450,2179,607,2142,2170">prescaler</WORD>
<WORD coords="630,2179,795,2142,2170">according</WORD>
<WORD coords="819,2171,848,2147,2170">to</WORD>
<WORD coords="870,2170,966,2142,2170">XTAL</WORD>
<WORD coords="980,2179,1091,2142,2170">crystal</WORD>
<WORD coords="1111,2179,1278,2142,2171">frequency</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2221,269,2192,2220">//</WORD>
<WORD coords="273,2220,295,2192,2220">#</WORD>
<WORD coords="300,2229,397,2192,2223">define</WORD>
<WORD coords="427,2229,902,2192,2220">UsbXTALFrequencyIs2MHz(</WORD>
<WORD coords="906,2225,915,2192,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,2271,270,2242,2270">//</WORD>
<WORD coords="273,2270,295,2242,2270">#</WORD>
<WORD coords="300,2279,397,2242,2273">define</WORD>
<WORD coords="427,2279,902,2242,2270">UsbXTALFrequencyIs4MHz(</WORD>
<WORD coords="906,2275,915,2242,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,2321,270,2292,2320">//</WORD>
<WORD coords="273,2320,295,2292,2320">#</WORD>
<WORD coords="300,2329,397,2292,2323">define</WORD>
<WORD coords="427,2329,902,2292,2320">UsbXTALFrequencyIs6MHz(</WORD>
<WORD coords="906,2325,915,2292,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,2370,270,2341,2369">//</WORD>
<WORD coords="273,2369,295,2341,2369">#</WORD>
<WORD coords="300,2378,397,2341,2372">define</WORD>
<WORD coords="427,2378,902,2341,2369">UsbXTALFrequencyIs8MHz(</WORD>
<WORD coords="906,2374,915,2341,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,2420,270,2391,2419">//</WORD>
<WORD coords="273,2419,295,2391,2419">#</WORD>
<WORD coords="300,2428,397,2391,2422">define</WORD>
<WORD coords="427,2428,805,2391,2419">UsbXTALFrequencylsl</WORD>
<WORD coords="810,2426,923,2391,2420">2MHz(</WORD>
<WORD coords="927,2424,936,2391,0">)</WORD>
</LINE>
<LINE>
<WORD coords="241,2470,270,2441,2469">//</WORD>
<WORD coords="273,2469,295,2441,2469">#</WORD>
<WORD coords="300,2478,397,2441,2472">define</WORD>
<WORD coords="427,2478,805,2441,2469">UsbXTALFrequencylsl</WORD>
<WORD coords="810,2476,923,2441,2470">6MHz(</WORD>
<WORD coords="927,2474,936,2441,0">)</WORD>
</LINE>
<LINE>
<WORD coords="236,2519,289,2490,2519">#if</WORD>
<WORD coords="315,2523,352,2491,2519">(F</WORD>
<WORD coords="368,2519,474,2491,2519">XTAL</WORD>
<WORD coords="485,2514,530,2503,2515">==</WORD>
<WORD coords="544,2526,699,2491,2520">2000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2569,363,2540,2569">#define</WORD>
<WORD coords="393,2578,474,2550,2569">_pre_</WORD>
<WORD coords="498,2570,517,2541,2570">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2618,256,2589,2618">#</WORD>
<WORD coords="266,2618,322,2589,2618">elif</WORD>
<WORD coords="352,2624,510,2590,2618">(F_XTAL</WORD>
<WORD coords="523,2613,567,2602,2614">==</WORD>
<WORD coords="580,2622,736,2590,2619">4000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2668,363,2639,2668">#define</WORD>
<WORD coords="393,2677,474,2649,2668">_pre_</WORD>
<WORD coords="502,2668,513,2640,2668">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2718,256,2689,2718">#</WORD>
<WORD coords="266,2718,322,2689,2718">elif</WORD>
<WORD coords="352,2724,510,2690,2718">(F_XTAL</WORD>
<WORD coords="523,2713,567,2702,2715">==</WORD>
<WORD coords="580,2725,736,2690,2719">6000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2768,363,2739,2768">#define</WORD>
<WORD coords="393,2777,474,2749,2768">_pre_</WORD>
<WORD coords="498,2768,516,2740,2768">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2818,256,2789,2818">#</WORD>
<WORD coords="266,2818,322,2789,2818">elif</WORD>
<WORD coords="352,2819,389,2790,2818">(F</WORD>
<WORD coords="407,2818,510,2790,2818">XTAL</WORD>
<WORD coords="523,2813,567,2802,2815">==</WORD>
<WORD coords="581,2822,736,2790,2819">8000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2868,363,2839,2868">#define</WORD>
<WORD coords="393,2877,474,2849,2868">_pre_</WORD>
<WORD coords="499,2869,515,2840,2869">3</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2917,256,2888,2917">#</WORD>
<WORD coords="266,2917,322,2889,2917">elif</WORD>
<WORD coords="352,2924,511,2889,2917">(F_XTAL</WORD>
<WORD coords="523,2912,567,2901,2913">==</WORD>
<WORD coords="584,2924,757,2889,2918">12000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2967,363,2938,2967">#define</WORD>
<WORD coords="393,2976,474,2948,2967">_pre_</WORD>
<WORD coords="498,2967,517,2939,2967">4</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3017,256,2988,3017">#</WORD>
<WORD coords="266,3017,322,2988,3017">elif</WORD>
<WORD coords="352,3022,389,2989,3017">(F</WORD>
<WORD coords="406,3017,511,2989,3017">XTAL</WORD>
<WORD coords="523,3012,567,3001,3013">==</WORD>
<WORD coords="585,3017,592,2989,3017">1</WORD>
<WORD coords="601,3024,757,2989,3018">6000000)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3067,363,3038,3067">#define</WORD>
<WORD coords="393,3076,474,3048,3067">_pre_</WORD>
<WORD coords="498,3068,515,3039,3068">5</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,3118,324,3088,3117">#else</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1133,2221,1276,2192,2220">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1132,2271,1276,2242,2270">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1132,2321,1276,2292,2320">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,2370,1276,2341,2369">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1132,2420,1276,2391,2419">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1132,2470,1276,2441,2469">PLLCSR</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1328,2227,1484,2192,2220">(PLLCSR</WORD>
<WORD coords="1499,2221,1525,2192,2221">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1328,2277,1484,2242,2270">(PLLCSR</WORD>
<WORD coords="1499,2271,1525,2242,2271">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1328,2327,1484,2292,2320">(PLLCSR</WORD>
<WORD coords="1499,2321,1525,2292,2321">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1328,2376,1484,2341,2369">(PLLCSR</WORD>
<WORD coords="1499,2370,1525,2341,2370">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1328,2426,1484,2391,2419">(PLLCSR</WORD>
<WORD coords="1499,2420,1525,2391,2420">&amp;</WORD>
</LINE>
<LINE>
<WORD coords="1328,2476,1484,2441,2469">(PLLCSR</WORD>
<WORD coords="1499,2470,1525,2441,2470">&amp;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1548,2227,1565,2192,2227">T</WORD>
<WORD coords="1568,2228,1719,2192,2223">15«1))</WORD>
</LINE>
<LINE>
<WORD coords="1548,2277,1564,2243,2277">T</WORD>
<WORD coords="1568,2276,1719,2242,2272">15«1))</WORD>
</LINE>
<LINE>
<WORD coords="1548,2327,1565,2292,2327">T</WORD>
<WORD coords="1568,2328,1719,2292,2323">15«1))</WORD>
</LINE>
<LINE>
<WORD coords="1548,2376,1565,2341,2376">T</WORD>
<WORD coords="1568,2377,1719,2341,2372">15«1))</WORD>
</LINE>
<LINE>
<WORD coords="1548,2426,1565,2391,2426">T</WORD>
<WORD coords="1568,2427,1719,2391,2422">15«1))</WORD>
</LINE>
<LINE>
<WORD coords="1548,2476,1565,2441,2476">T</WORD>
<WORD coords="1568,2477,1719,2441,2472">15«1))</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1755,2278,1767,2242,2278">(</WORD>
<WORD coords="1769,2270,1785,2242,2270">1</WORD>
<WORD coords="1791,2272,1850,2247,2272">«</WORD>
<WORD coords="1852,2270,1872,2242,2270">2</WORD>
<WORD coords="1873,2278,1885,2242,2278">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1755,2327,1766,2292,2327">(</WORD>
<WORD coords="1767,2320,1786,2292,2320">2</WORD>
<WORD coords="1791,2322,1849,2298,2322">«</WORD>
<WORD coords="1852,2320,1871,2292,2320">2</WORD>
<WORD coords="1875,2326,1885,2292,2326">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1754,2377,1885,2341,2372">(3«2)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1755,2426,1885,2391,2422">(4«2)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1755,2477,1885,2441,2472">(5«2)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0039.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0040.djvu" width="2481">
<PARAM name="PAGE" value="sources_0040.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1647,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,132,2416,104,132">41</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="273,277,293,250,277">#</WORD>
<WORD coords="300,277,380,258,277">error</WORD>
<WORD coords="405,277,558,249,277">”XTAL—</WORD>
<WORD coords="562,286,735,249,277">Frequency</WORD>
<WORD coords="748,277,800,249,277">has</WORD>
<WORD coords="813,277,843,254,277">to</WORD>
<WORD coords="855,277,893,249,277">be</WORD>
<WORD coords="906,282,933,249,280">2,</WORD>
<WORD coords="950,280,978,249,279">4,</WORD>
<WORD coords="1006,282,1033,249,280">6,</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,327,349,298,327">#endif</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,377,363,348,377">#define</WORD>
<WORD coords="386,378,579,349,377">UsbSetPLL</WORD>
<WORD coords="596,377,699,349,377">X&apos;I’AL</WORD>
<WORD coords="717,386,916,349,377">FrcquencyO</WORD>
</LINE>
<LINE>
<WORD coords="236,427,363,398,427">#define</WORD>
<WORD coords="387,434,667,399,427">UsbEnablePLL()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,363,447,476">#define</WORD>
<WORD coords="387,483,678,448,476">UsbDisablePLL()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="387,533,721,498,526">UsbIsPLL_Locked()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,576,363,547,576">#define</WORD>
<WORD coords="387,583,768,548,576">UsbWaitPLLXocked()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,676,349,647,676">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="1063,280,1090,249,279">8,</WORD>
<WORD coords="1119,277,1153,249,277">12</WORD>
<WORD coords="1172,277,1206,258,277">or</WORD>
<WORD coords="1231,278,1266,249,277">16</WORD>
<WORD coords="1283,277,1366,249,277">MHz</WORD>
<WORD coords="1378,277,1426,249,277">for</WORD>
<WORD coords="1438,278,1513,249,277">USB</WORD>
<WORD coords="1528,277,1682,249,277">devices!”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1133,378,1284,349,377">PLLCSR</WORD>
<WORD coords="1296,372,1317,361,378">=</WORD>
<WORD coords="1331,384,1342,349,385">(</WORD>
<WORD coords="1358,386,1410,358,377">pre</WORD>
<WORD coords="1429,384,1523,349,380">«2)</WORD>
</LINE>
<LINE>
<WORD coords="1138,433,1423,399,427">SetBit(PLLCSR,</WORD>
<WORD coords="1437,434,1547,399,427">PLLE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1138,477,1277,448,476">ClearBit</WORD>
<WORD coords="1286,482,1461,448,476">(PLLCSR,</WORD>
<WORD coords="1474,483,1585,448,476">PLLE)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="1141,527,1273,498,526">BitlsSet</WORD>
<WORD coords="1286,532,1461,498,526">(PLLCSR,</WORD>
<WORD coords="1474,533,1622,498,526">PLOCK)</WORD>
</LINE>
<LINE>
<WORD coords="1133,577,1225,548,576">while</WORD>
<WORD coords="1254,582,1291,548,576">(!(</WORD>
<WORD coords="1301,577,1452,548,576">PLLCSR</WORD>
<WORD coords="1465,576,1494,548,579">&amp;</WORD>
<WORD coords="1508,583,1791,548,576">(l«PLOCK)));</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0040.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0041.djvu" width="2481">
<PARAM name="PAGE" value="sources_0041.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1645,104,132">drv.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,132,2419,104,132">42</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,624,249,277">AT90USB/usb_drv.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,269,299,328">//</WORD>
<WORD coords="292,328,384,300,327">Basic</WORD>
<WORD coords="406,336,563,299,328">functions</WORD>
<WORD coords="588,336,644,299,330">for</WORD>
<WORD coords="663,327,777,299,327">Atmels</WORD>
<WORD coords="794,328,959,299,327">AT90USB</WORD>
<WORD coords="972,328,1245,299,327">microcontrollers</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="292,378,394,349,377">Based</WORD>
<WORD coords="405,377,443,359,377">on</WORD>
<WORD coords="458,377,572,349,377">Atmels</WORD>
<WORD coords="589,378,754,349,377">AT90USB</WORD>
<WORD coords="767,378,925,349,377">datasheet</WORD>
<WORD coords="939,378,1181,349,377">7593D—AVR—</WORD>
<WORD coords="1185,378,1278,349,377">07/06</WORD>
</LINE>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="293,428,322,399,428">S.</WORD>
<WORD coords="351,428,494,399,427">Salewski</WORD>
<WORD coords="516,427,586,399,427">21—</WORD>
<WORD coords="589,427,704,399,427">MAR—</WORD>
<WORD coords="707,427,792,399,427">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="408,528,622,498,526">&lt;stdbool.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="408,578,603,548,576">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="408,628,500,598,626">&lt;avr/</WORD>
<WORD coords="512,635,654,598,626">interrupt</WORD>
<WORD coords="672,628,734,598,626">.h&gt;</WORD>
<WORD coords="749,627,778,598,627">//</WORD>
<WORD coords="802,626,847,599,626">sei</WORD>
<WORD coords="859,633,883,598,632">()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,677,610,648,676">”usb_drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,735,622,698,726">”usart_debug</WORD>
<WORD coords="635,726,684,698,726">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,784,610,747,775">”usb_api.h”</WORD>
<WORD coords="633,776,663,747,776">//</WORD>
<WORD coords="684,778,945,747,775">EPO_FIFOASize</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,876,328,847,875">uint8</WORD>
<WORD coords="346,875,356,853,875">t</WORD>
<WORD coords="387,876,676,847,875">UsbAllocatedEPs</WORD>
<WORD coords="689,870,710,859,872">=</WORD>
<WORD coords="725,878,754,847,876">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="247,926,373,896,925">volatile</WORD>
<WORD coords="415,926,497,897,925">uint8</WORD>
<WORD coords="515,926,525,902,926">t</WORD>
<WORD coords="559,934,885,897,925">UsbStartupFinished</WORD>
<WORD coords="909,920,930,909,923">=</WORD>
<WORD coords="949,928,978,897,927">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1025,270,996,1025">//</WORD>
<WORD coords="295,1025,346,996,1024">Set</WORD>
<WORD coords="367,1025,450,1006,1024">some</WORD>
<WORD coords="476,1033,615,997,1024">registers</WORD>
<WORD coords="651,1025,680,1001,1024">to</WORD>
<WORD coords="712,1024,789,996,1024">their</WORD>
<WORD coords="833,1024,930,996,1024">initial</WORD>
<WORD coords="969,1031,1091,996,1024">(reset)</WORD>
<WORD coords="1116,1025,1217,996,1024">value.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1075,269,1046,1075">//</WORD>
<WORD coords="292,1075,425,1047,1074">Reason:</WORD>
<WORD coords="439,1074,553,1046,1074">Atmels</WORD>
<WORD coords="575,1075,757,1046,1074">bootloader</WORD>
<WORD coords="789,1075,934,1047,1074">activates</WORD>
<WORD coords="965,1075,1048,1056,1074">some</WORD>
<WORD coords="1072,1083,1233,1047,1074">interrupts</WORD>
<WORD coords="1250,1075,1255,1070,1075">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1125,270,1096,1125">//</WORD>
<WORD coords="296,1124,364,1096,1124">This</WORD>
<WORD coords="386,1133,525,1096,1125">function</WORD>
<WORD coords="564,1125,748,1096,1124">deactivates</WORD>
<WORD coords="787,1124,808,1097,1124">it</WORD>
<WORD coords="819,1129,825,1120,1129">,</WORD>
<WORD coords="853,1125,888,1106,1125">so</WORD>
<WORD coords="910,1125,953,1106,1125">we</WORD>
<WORD coords="966,1125,1042,1096,1124">have</WORD>
<WORD coords="1060,1125,1147,1096,1124">clean</WORD>
<WORD coords="1179,1125,1255,1101,1124">start</WORD>
</LINE>
<LINE>
<WORD coords="241,1175,270,1146,1175">//</WORD>
<WORD coords="300,1175,470,1146,1174">conditions</WORD>
<WORD coords="506,1183,534,1146,1178">if</WORD>
<WORD coords="554,1174,612,1156,1174">our</WORD>
<WORD coords="626,1183,769,1156,1174">program</WORD>
<WORD coords="786,1174,810,1147,1174">is</WORD>
<WORD coords="842,1175,958,1146,1174">started</WORD>
<WORD coords="977,1183,1058,1146,1176">from</WORD>
<WORD coords="1080,1175,1262,1146,1174">bootloader</WORD>
<WORD coords="1268,1174,1273,1170,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1225,310,1196,1224">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="249,1274,504,1245,1273">UsblnitialReset</WORD>
<WORD coords="520,1280,624,1244,1273">(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1333,253,1292,1333">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1374,440,1345,1373">USBCON</WORD>
<WORD coords="536,1368,557,1357,1372">=</WORD>
<WORD coords="574,1380,853,1345,1373">(1«FRZCLK);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1424,425,1395,1423">OTGIEN</WORD>
<WORD coords="536,1418,557,1407,1421">=</WORD>
<WORD coords="575,1426,604,1395,1425">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1474,401,1445,1473">UDIEN</WORD>
<WORD coords="536,1468,557,1457,1471">=</WORD>
<WORD coords="575,1476,604,1445,1475">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1524,400,1495,1523">UHIEN</WORD>
<WORD coords="536,1518,557,1507,1521">=</WORD>
<WORD coords="575,1526,604,1495,1525">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1573,427,1544,1572">UEIENX</WORD>
<WORD coords="536,1567,557,1556,1570">=</WORD>
<WORD coords="575,1575,604,1544,1574">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1623,424,1594,1622">UPIENX</WORD>
<WORD coords="536,1617,557,1606,1620">=</WORD>
<WORD coords="575,1625,604,1594,1624">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1673,459,1644,1672">UHWCON</WORD>
<WORD coords="536,1667,557,1656,1671">=</WORD>
<WORD coords="574,1676,835,1644,1672">(l«UIMOD);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1732,253,1691,1732">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1822,270,1793,1822">//</WORD>
<WORD coords="299,1822,379,1793,1821">Start</WORD>
<WORD coords="404,1821,475,1794,1821">PLL</WORD>
<WORD coords="487,1822,549,1793,1821">and</WORD>
<WORD coords="559,1821,668,1793,1821">enable</WORD>
<WORD coords="688,1822,775,1793,1821">clock</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1872,310,1843,1871">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1927,556,1892,1921">UsbStartPLL(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1981,253,1940,1981">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2022,466,1993,2021">UsbSetPLL</WORD>
<WORD coords="485,2021,587,1993,2021">XTAL</WORD>
<WORD coords="605,2030,815,1993,2021">FrequencyO;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2078,566,2043,2071">UsbEnablePLL();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2127,667,2092,2120">UsbWaitPLLXocked();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2171,302,2142,2171">U</WORD>
<WORD coords="305,2174,580,2142,2170">sbEnableClockO</WORD>
<WORD coords="585,2176,591,2151,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2230,253,2189,2230">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2321,270,2292,2321">//</WORD>
<WORD coords="292,2321,384,2293,2320">Basic</WORD>
<WORD coords="408,2321,479,2292,2320">USB</WORD>
<WORD coords="496,2321,658,2293,2320">activation</WORD>
<WORD coords="687,2329,849,2302,2320">necessary</WORD>
<WORD coords="875,2321,904,2297,2320">to</WORD>
<WORD coords="937,2329,1050,2293,2320">trigger</WORD>
<WORD coords="1077,2321,1095,2302,2321">a</WORD>
<WORD coords="1116,2329,1238,2292,2320">wakeup</WORD>
<WORD coords="1260,2329,1406,2293,2320">interrupt</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2370,270,2341,2370">//</WORD>
<WORD coords="295,2378,419,2341,2369">Wakeup</WORD>
<WORD coords="432,2370,490,2341,2369">ISR</WORD>
<WORD coords="507,2370,569,2340,2370">will</WORD>
<WORD coords="600,2370,676,2346,2369">start</WORD>
<WORD coords="703,2369,773,2342,2369">PLL</WORD>
<WORD coords="786,2374,881,2341,2369">clock,</WORD>
<WORD coords="912,2370,979,2341,2369">then</WORD>
<WORD coords="1006,2370,1107,2341,2369">USB—</WORD>
<WORD coords="1110,2370,1222,2342,2369">END—</WORD>
<WORD coords="1227,2370,1310,2341,2369">OF—</WORD>
<WORD coords="1313,2370,1436,2341,2369">RESET</WORD>
<WORD coords="1445,2378,1606,2342,2369">interrupts</WORD>
<WORD coords="1618,2370,1670,2351,2369">are</WORD>
<WORD coords="1683,2378,1863,2341,2370">recognized</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2420,310,2391,2419">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2473,698,2441,2469">UsbDevLaunchDevice(bool</WORD>
<WORD coords="711,2478,877,2441,2469">lowspeed)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2529,253,2488,2529">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="285,2570,542,2541,2569">UsblnitialReset</WORD>
<WORD coords="560,2576,584,2541,2575">()</WORD>
<WORD coords="597,2574,603,2550,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2618,307,2590,2618">if</WORD>
<WORD coords="335,2625,380,2590,2623">(1)</WORD>
<WORD coords="409,2619,439,2590,2619">//</WORD>
<WORD coords="466,2619,511,2595,2619">set</WORD>
<WORD coords="544,2618,565,2591,2618">it</WORD>
<WORD coords="595,2619,624,2595,2618">to</WORD>
<WORD coords="652,2625,697,2590,2622">(1)</WORD>
<WORD coords="731,2627,758,2590,2622">if</WORD>
<WORD coords="776,2627,836,2600,2618">you</WORD>
<WORD coords="853,2619,932,2590,2618">need</WORD>
<WORD coords="949,2620,1018,2600,2618">very</WORD>
<WORD coords="1042,2618,1130,2590,2618">small</WORD>
<WORD coords="1152,2619,1228,2590,2618">code</WORD>
<WORD coords="1252,2621,1311,2591,2619">size</WORD>
<WORD coords="1342,2625,1423,2590,2618">(i.e.</WORD>
<WORD coords="1453,2623,1647,2590,2618">bootloader,</WORD>
<WORD coords="1677,2619,1765,2600,2619">saves</WORD>
<WORD coords="1789,2618,1828,2590,2618">78</WORD>
<WORD coords="1847,2627,1950,2590,2618">bytes)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2678,290,2637,2678">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,2719,496,2690,2718">UHWCON</WORD>
<WORD coords="509,2713,530,2702,2718">=</WORD>
<WORD coords="543,2724,807,2690,2718">((l«UIMOD)</WORD>
<WORD coords="824,2728,826,2687,2728">|</WORD>
<WORD coords="843,2725,1145,2690,2718">(1«UVREGE));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2769,478,2740,2768">USBCON</WORD>
<WORD coords="490,2763,511,2752,2768">=</WORD>
<WORD coords="525,2775,754,2740,2768">((1«USBE)</WORD>
<WORD coords="771,2778,773,2737,2778">|</WORD>
<WORD coords="790,2775,1088,2740,2768">(l«OTGPADE)</WORD>
<WORD coords="1105,2778,1107,2737,2778">|</WORD>
<WORD coords="1124,2775,1417,2740,2768">(1«FRZCLK));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2819,377,2799,2818">asm</WORD>
<WORD coords="398,2819,524,2790,2818">volatile</WORD>
<WORD coords="558,2827,697,2790,2818">(”nop”);</WORD>
<WORD coords="727,2819,756,2790,2819">//</WORD>
<WORD coords="778,2827,839,2800,2818">nop</WORD>
<WORD coords="852,2827,921,2800,2818">may</WORD>
<WORD coords="933,2818,969,2790,2818">be</WORD>
<WORD coords="984,2818,1036,2800,2818">are</WORD>
<WORD coords="1061,2827,1223,2800,2818">necessary</WORD>
<WORD coords="1254,2827,1281,2790,2822">if</WORD>
<WORD coords="1301,2827,1370,2800,2818">mpu</WORD>
<WORD coords="1386,2818,1410,2791,2818">is</WORD>
<WORD coords="1435,2819,1561,2790,2818">clocked</WORD>
<WORD coords="1584,2819,1652,2790,2818">with</WORD>
<WORD coords="1676,2818,1715,2790,2818">16</WORD>
<WORD coords="1729,2821,1811,2791,2819">MHz</WORD>
<WORD coords="1822,2825,2029,2790,2818">(deactivated</WORD>
<WORD coords="2051,2827,2230,2790,2818">prescaler)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,2869,345,2840,2869">//</WORD>
<WORD coords="367,2869,432,2850,2868">asm</WORD>
<WORD coords="457,2869,578,2840,2868">volatile</WORD>
<WORD coords="611,2877,757,2840,2869">(&quot;nop”);</WORD>
</LINE>
<LINE>
<WORD coords="316,2917,344,2888,2917">if</WORD>
<WORD coords="371,2926,553,2889,2917">(lowspeed)</WORD>
<WORD coords="574,2918,719,2889,2917">UDCON</WORD>
<WORD coords="731,2912,752,2901,2916">=</WORD>
<WORD coords="766,2924,971,2889,2917">(1«LSM);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2968,478,2939,2967">USBCON</WORD>
<WORD coords="490,2962,511,2951,2967">=</WORD>
<WORD coords="525,2974,754,2939,2967">((1«USBE)</WORD>
<WORD coords="771,2977,773,2936,2977">|</WORD>
<WORD coords="790,2974,1112,2939,2967">(l«OTGPADE));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,3018,478,2989,3017">USBCON</WORD>
<WORD coords="490,3012,511,3001,3017">=</WORD>
<WORD coords="525,3024,754,2989,3017">((1&lt;&lt;USBE)</WORD>
<WORD coords="771,3027,773,2986,3027">|</WORD>
<WORD coords="790,3024,1088,2989,3017">(l&lt;&lt;OTGPADE)</WORD>
<WORD coords="1105,3027,1107,2986,3027">|</WORD>
<WORD coords="1123,3024,1380,2989,3017">(1&lt;&lt;FRZCLK</WORD>
<WORD coords="1381,3025,1457,2989,3018">));//</WORD>
<WORD coords="1463,3026,1573,2990,3018">setting</WORD>
<WORD coords="1584,3018,1740,2989,3017">FRZCLK</WORD>
<WORD coords="1747,3026,1840,2990,3018">again</WORD>
<WORD coords="1852,3018,1883,2990,3018">in</WORD>
<WORD coords="1895,3018,1947,2994,3017">not</WORD>
<WORD coords="1958,3026,2121,2999,3017">necessary</WORD>
<WORD coords="2133,3024,2198,2989,3018">(see</WORD>
<WORD coords="2210,3022,2320,2989,3017">below)</WORD>
</LINE>
<LINE>
<WORD coords="312,3068,439,3039,3067">UDIEN</WORD>
<WORD coords="451,3062,472,3051,3067">=</WORD>
<WORD coords="486,3074,807,3039,3067">((1«WAKEUPE)</WORD>
<WORD coords="824,3077,826,3036,3077">|</WORD>
<WORD coords="843,3074,1133,3039,3067">(l«EORSTE));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,3127,290,3086,3127">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0041.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0042.djvu" width="2481">
<PARAM name="PAGE" value="sources_0042.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1645,104,132">drv.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,133,2418,104,132">43</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="279,277,341,249,277">else</WORD>
<WORD coords="372,278,401,249,278">//</WORD>
<WORD coords="424,278,462,249,278">do</WORD>
<WORD coords="483,278,531,249,277">the</WORD>
<WORD coords="554,278,637,259,277">same</WORD>
<WORD coords="654,286,735,249,277">thing</WORD>
<WORD coords="744,282,750,273,282">,</WORD>
<WORD coords="785,277,828,249,277">bit</WORD>
<WORD coords="850,286,905,249,280">for</WORD>
<WORD coords="934,282,993,249,277">bit,</WORD>
<WORD coords="1023,278,1093,249,278">with</WORD>
<WORD coords="1115,278,1226,249,277">named</WORD>
<WORD coords="1235,278,1354,259,277">macros</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,337,290,296,337">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,386,759,349,377">UsbEnablePadsRegulatorQ</WORD>
<WORD coords="766,382,772,358,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,434,696,399,427">UsbEnableControllerO</WORD>
<WORD coords="709,433,715,408,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,483,689,448,476">UsbEnableOTG_Pad();</WORD>
<WORD coords="700,477,730,448,477">//</WORD>
<WORD coords="743,485,906,458,476">necessary</WORD>
<WORD coords="931,477,960,453,476">to</WORD>
<WORD coords="981,485,1088,458,476">power</WORD>
<WORD coords="1098,477,1137,458,476">on</WORD>
<WORD coords="1156,477,1203,448,476">the</WORD>
<WORD coords="1230,477,1333,448,477">device</WORD>
<WORD coords="1361,483,1619,448,476">(undocumented</WORD>
<WORD coords="1624,485,1763,448,477">feature)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,533,881,498,526">UsbDisableUlD_ModeSelection();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,583,680,548,576">UsbSetDeviceMode();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="312,635,747,598,626">UsbSetDeviceModeRegO;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,676,344,647,676">if</WORD>
<WORD coords="371,685,553,648,676">(lowspeed)</WORD>
<WORD coords="574,685,1022,648,676">UsbDevSelectLowSpeed();</WORD>
<WORD coords="1033,677,1062,648,679">//</WORD>
<WORD coords="1079,685,1237,648,677">fullspeed</WORD>
<WORD coords="1270,676,1294,649,676">is</WORD>
<WORD coords="1328,685,1443,648,677">default</WORD>
</LINE>
<LINE>
<WORD coords="311,733,628,698,726">UsbEnableClock();</WORD>
<WORD coords="652,727,681,698,727">//</WORD>
<WORD coords="708,727,831,698,726">without</WORD>
<WORD coords="862,726,918,698,726">this</WORD>
<WORD coords="947,727,985,708,726">no</WORD>
<WORD coords="1006,735,1159,698,726">(wakeup)</WORD>
<WORD coords="1183,735,1329,699,726">interrupt</WORD>
<WORD coords="1363,726,1388,699,726">is</WORD>
<WORD coords="1423,735,1574,698,726">triggered</WORD>
<WORD coords="1590,727,1629,698,726">!!!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,782,625,747,775">UsbFreezeClock();</WORD>
<WORD coords="652,776,681,747,776">//</WORD>
<WORD coords="703,782,939,747,775">FreezeClock()</WORD>
<WORD coords="971,776,996,748,775">is</WORD>
<WORD coords="1023,776,1075,752,775">not</WORD>
<WORD coords="1105,784,1198,747,775">really</WORD>
<WORD coords="1229,784,1404,757,775">necessary,</WORD>
<WORD coords="1434,775,1486,747,775">but</WORD>
<WORD coords="1507,776,1551,757,776">we</WORD>
<WORD coords="1563,784,1631,757,775">may</WORD>
<WORD coords="1641,784,1706,747,777">feel</WORD>
<WORD coords="1739,776,1835,747,775">better</WORD>
<WORD coords="1862,776,1993,747,775">because</WORD>
<WORD coords="2010,775,2081,748,775">PLL</WORD>
<WORD coords="2094,775,2122,748,775">in</WORD>
<WORD coords="2144,776,2196,752,775">not</WORD>
<WORD coords="2218,784,2346,748,775">running</WORD>
<WORD coords="2379,775,2394,745,775">)</WORD>
</LINE>
<LINE>
<WORD coords="396,834,446,802,826">yet</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,876,339,847,876">U</WORD>
<WORD coords="342,875,559,847,875">sbDevEnable</WORD>
<WORD coords="562,884,774,847,875">WakeupCPU</WORD>
<WORD coords="779,882,863,847,875">_Int()</WORD>
<WORD coords="868,880,874,856,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,932,846,897,925">UsbDevEnableEndOfResetInt();</WORD>
<WORD coords="861,926,890,897,926">//</WORD>
<WORD coords="915,926,976,897,925">call</WORD>
<WORD coords="1011,925,1068,897,925">this</WORD>
<WORD coords="1093,925,1219,897,925">AFTER</WORD>
<WORD coords="1231,932,1640,897,925">(UsbEnableControllerO;</WORD>
<WORD coords="1659,926,1920,897,925">UshEnableOTG</WORD>
<WORD coords="1935,932,2013,896,925">Pad(</WORD>
<WORD coords="2015,933,2053,897,931">);)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,985,290,944,985">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1025,407,996,1024">UsbDev</WORD>
<WORD coords="409,1031,555,996,1024">Attach!);</WORD>
</LINE>
<LINE>
<WORD coords="280,1074,323,1046,1074">sei</WORD>
<WORD coords="336,1081,360,1046,1080">()</WORD>
<WORD coords="373,1079,379,1055,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1134,253,1093,1134">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1225,270,1196,1225">//</WORD>
<WORD coords="295,1225,404,1196,1224">Called</WORD>
<WORD coords="424,1233,461,1196,1225">by</WORD>
<WORD coords="483,1225,583,1196,1224">USB—</WORD>
<WORD coords="587,1225,698,1197,1224">END—</WORD>
<WORD coords="704,1225,786,1196,1224">OF—</WORD>
<WORD coords="789,1225,913,1196,1224">RESET</WORD>
<WORD coords="922,1233,1068,1197,1224">interrupt</WORD>
</LINE>
<LINE>
<WORD coords="241,1274,270,1245,1274">//</WORD>
<WORD coords="296,1274,366,1245,1273">USB</WORD>
<WORD coords="381,1274,459,1251,1273">reset</WORD>
<WORD coords="489,1274,581,1250,1273">resets</WORD>
<WORD coords="609,1273,693,1245,1273">EPO!</WORD>
<WORD coords="708,1280,774,1245,1274">(see</WORD>
<WORD coords="804,1274,918,1246,1273">section</WORD>
<WORD coords="949,1278,1034,1245,1274">22.5)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1324,310,1295,1323">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1379,736,1345,1373">UsbDevStartDeviceEPO(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1433,253,1392,1433">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1474,302,1445,1474">U</WORD>
<WORD coords="305,1482,674,1445,1473">sbDevSelectEndpoint(</WORD>
<WORD coords="677,1480,708,1445,1477">0)</WORD>
<WORD coords="713,1479,719,1454,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1523,307,1494,1523">if</WORD>
<WORD coords="330,1532,808,1495,1523">UsbDevIsEndpointEnabled()</WORD>
<WORD coords="823,1524,852,1495,1524">//</WORD>
<WORD coords="872,1524,928,1505,1523">can</WORD>
<WORD coords="955,1524,1012,1495,1523">this</WORD>
<WORD coords="1040,1524,1077,1495,1523">be</WORD>
<WORD coords="1101,1523,1164,1501,1523">true</WORD>
<WORD coords="1175,1524,1190,1495,1524">?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1581,451,1544,1572">Debug(”</WORD>
<WORD coords="517,1573,584,1544,1572">EPO</WORD>
<WORD coords="599,1581,719,1544,1572">already</WORD>
<WORD coords="742,1573,869,1544,1572">enabled</WORD>
<WORD coords="877,1583,1014,1541,1572">!\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="279,1623,341,1594,1622">else</WORD>
</LINE>
<LINE>
<WORD coords="276,1682,290,1641,1682">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1731,451,1694,1722">Debug(”</WORD>
<WORD coords="524,1731,638,1694,1722">Setting</WORD>
<WORD coords="666,1731,705,1703,1722">up</WORD>
<WORD coords="722,1732,958,1691,1722">EP0...\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1773,601,1744,1772">UsbAllocatedEPs</WORD>
<WORD coords="615,1767,636,1756,1770">=</WORD>
<WORD coords="651,1775,679,1744,1774">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,1821,344,1793,1821">if</WORD>
<WORD coords="371,1830,721,1793,1821">(UsbDevEP_Setup(0,</WORD>
<WORD coords="735,1830,1081,1793,1821">UsbEP_TypeControl,</WORD>
<WORD coords="1094,1826,1362,1793,1821">EPO_FIFO_Size,</WORD>
<WORD coords="1380,1827,1403,1793,1825">1,</WORD>
<WORD coords="1418,1828,1754,1793,1821">UsbEP_DirControl))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1880,488,1843,1873">DebugC’</WORD>
<WORD coords="560,1872,734,1843,1871">Successful</WORD>
<WORD coords="766,1871,809,1848,1871">set</WORD>
<WORD coords="833,1880,873,1852,1871">up</WORD>
<WORD coords="891,1881,1091,1840,1871">EP0!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,1922,379,1893,1921">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,1980,488,1943,1971">Debug(”</WORD>
<WORD coords="574,1980,665,1943,1971">Setup</WORD>
<WORD coords="686,1971,722,1943,1971">of</WORD>
<WORD coords="741,1972,809,1943,1971">EPO</WORD>
<WORD coords="827,1971,919,1943,1971">failed</WORD>
<WORD coords="933,1982,1070,1940,1971">!\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2031,290,1990,2031">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2078,901,2043,2071">UsbDevEnableReceivedSETUP_Int();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2130,253,2089,2130">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2221,270,2192,2221">//</WORD>
<WORD coords="295,2220,330,2193,2220">To</WORD>
<WORD coords="350,2221,458,2192,2220">reduce</WORD>
<WORD coords="484,2223,622,2192,2221">codesize</WORD>
<WORD coords="632,2225,638,2216,2229">,</WORD>
<WORD coords="664,2229,724,2202,2220">you</WORD>
<WORD coords="741,2229,809,2202,2220">may</WORD>
<WORD coords="821,2221,970,2198,2220">comment</WORD>
<WORD coords="982,2221,1039,2192,2220">this</WORD>
<WORD coords="1058,2229,1198,2192,2221">function</WORD>
<WORD coords="1228,2220,1281,2198,2220">out</WORD>
<WORD coords="1301,2221,1364,2192,2220">and</WORD>
<WORD coords="1384,2221,1515,2192,2220">allocate</WORD>
<WORD coords="1542,2229,1620,2202,2220">your</WORD>
<WORD coords="1638,2229,1674,2202,2220">ep</WORD>
<WORD coords="1695,2221,1764,2192,2220">with</WORD>
<WORD coords="1788,2221,1845,2192,2220">low</WORD>
<WORD coords="1871,2221,1946,2192,2220">level</WORD>
<WORD coords="1974,2221,2092,2202,2220">macros</WORD>
</LINE>
<LINE>
<WORD coords="241,2271,270,2242,2271">//</WORD>
<WORD coords="292,2271,374,2251,2271">num:</WORD>
<WORD coords="398,2270,469,2242,2270">0...6</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2321,270,2292,2321">//</WORD>
<WORD coords="297,2329,380,2297,2320">type:</WORD>
<WORD coords="408,2321,522,2291,2320">UsbEP</WORD>
<WORD coords="523,2329,747,2291,2320">JypeControl,</WORD>
<WORD coords="766,2321,879,2292,2320">UsbEP</WORD>
<WORD coords="883,2329,1029,2293,2320">CTypelso,</WORD>
<WORD coords="1048,2321,1162,2291,2320">UsbEP</WORD>
<WORD coords="1163,2329,1336,2291,2320">JypeBulk,</WORD>
<WORD coords="1355,2321,1379,2293,2320">U</WORD>
<WORD coords="1382,2320,1468,2292,2320">sbEP</WORD>
<WORD coords="1471,2329,1559,2293,2320">JType</WORD>
<WORD coords="1561,2329,1711,2293,2320">Interrupt</WORD>
</LINE>
<LINE>
<WORD coords="241,2370,270,2341,2370">//</WORD>
<WORD coords="299,2373,380,2342,2370">size:</WORD>
<WORD coords="408,2374,434,2341,2372">8,</WORD>
<WORD coords="464,2374,509,2341,2371">16,</WORD>
<WORD coords="538,2374,584,2341,2371">32,</WORD>
<WORD coords="612,2369,659,2341,2369">64.</WORD>
<WORD coords="687,2378,764,2341,2369">Only</WORD>
<WORD coords="775,2378,831,2341,2372">for</WORD>
<WORD coords="857,2370,1054,2341,2369">isochronous</WORD>
<WORD coords="1077,2378,1114,2351,2370">ep</WORD>
<WORD coords="1135,2374,1202,2341,2371">128,</WORD>
<WORD coords="1226,2369,1288,2341,2369">256</WORD>
<WORD coords="1302,2369,1338,2351,2369">or</WORD>
<WORD coords="1359,2370,1426,2341,2369">512.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2420,270,2391,2420">//</WORD>
<WORD coords="293,2420,400,2391,2419">banks:</WORD>
<WORD coords="425,2419,440,2391,2419">1</WORD>
<WORD coords="461,2419,498,2401,2419">or</WORD>
<WORD coords="516,2419,535,2391,2419">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="297,2470,361,2441,2469">dir:</WORD>
<WORD coords="389,2470,502,2441,2469">UsbEP</WORD>
<WORD coords="506,2474,644,2441,2469">_DirOut,</WORD>
<WORD coords="662,2470,776,2440,2469">UsbEP</WORD>
<WORD coords="779,2470,849,2442,2469">_Dir</WORD>
<WORD coords="851,2474,982,2440,2469">Control,</WORD>
<WORD coords="1001,2470,1114,2440,2469">UsbEP</WORD>
<WORD coords="1117,2470,1220,2442,2469">_DirIn</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2520,270,2491,2520">//</WORD>
<WORD coords="293,2519,374,2501,2519">more</WORD>
<WORD coords="387,2519,457,2491,2519">than</WORD>
<WORD coords="480,2520,537,2501,2519">one</WORD>
<WORD coords="561,2520,677,2491,2519">control</WORD>
<WORD coords="704,2528,740,2501,2520">ep</WORD>
<WORD coords="760,2520,797,2501,2519">or</WORD>
<WORD coords="816,2520,897,2501,2519">more</WORD>
<WORD coords="910,2519,980,2491,2519">than</WORD>
<WORD coords="1003,2520,1060,2501,2519">one</WORD>
<WORD coords="1077,2519,1158,2491,2519">bank</WORD>
<WORD coords="1167,2528,1223,2491,2522">for</WORD>
<WORD coords="1252,2520,1368,2491,2519">control</WORD>
<WORD coords="1395,2528,1454,2491,2519">epO</WORD>
<WORD coords="1470,2528,1537,2501,2519">may</WORD>
<WORD coords="1549,2524,1636,2491,2519">work,</WORD>
<WORD coords="1658,2519,1710,2491,2519">but</WORD>
<WORD coords="1737,2520,1761,2492,2519">is</WORD>
<WORD coords="1789,2520,1841,2497,2519">not</WORD>
<WORD coords="1863,2520,2092,2491,2519">recommended</WORD>
</LINE>
<LINE>
<WORD coords="236,2569,308,2541,2569">bool</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2627,653,2590,2618">UsbDevEP_Setup(uint8_t</WORD>
<WORD coords="666,2623,747,2599,2618">num,</WORD>
<WORD coords="770,2619,880,2590,2618">uint8_t</WORD>
<WORD coords="911,2627,995,2595,2618">type,</WORD>
<WORD coords="1029,2619,1161,2589,2618">uintl6_t</WORD>
<WORD coords="1195,2623,1275,2590,2618">size,</WORD>
<WORD coords="1311,2619,1421,2590,2618">uint8_t</WORD>
<WORD coords="1450,2621,1557,2590,2618">banks,</WORD>
<WORD coords="1591,2619,1701,2590,2618">uint8_t</WORD>
<WORD coords="1736,2622,1801,2590,2618">dir)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2678,253,2637,2678">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,2719,394,2690,2718">uint8_t</WORD>
<WORD coords="427,2718,436,2690,2718">i</WORD>
<WORD coords="447,2723,453,2714,2727">,</WORD>
<WORD coords="479,2727,490,2690,2725">j</WORD>
<WORD coords="504,2723,510,2699,0">;</WORD>
</LINE>
<LINE>
<WORD coords="273,2768,368,2740,2768">banks</WORD>
<WORD coords="437,2774,443,2749,2774">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2818,307,2790,2818">if</WORD>
<WORD coords="336,2824,440,2790,2818">((num</WORD>
<WORD coords="454,2820,480,2795,2820">&gt;</WORD>
<WORD coords="494,2825,526,2790,2824">6)</WORD>
<WORD coords="549,2828,562,2787,2828">||</WORD>
<WORD coords="595,2824,661,2790,2818">(dir</WORD>
<WORD coords="688,2825,759,2790,2822">&gt;1)</WORD>
<WORD coords="790,2828,803,2787,2828">||</WORD>
<WORD coords="838,2824,947,2790,2818">(banks</WORD>
<WORD coords="968,2825,1040,2790,2822">&gt;1)</WORD>
<WORD coords="1070,2828,1083,2787,2828">||</WORD>
<WORD coords="1118,2827,1204,2790,2818">(type</WORD>
<WORD coords="1229,2825,1301,2790,2823">&gt;3)</WORD>
<WORD coords="1331,2828,1345,2787,2828">||</WORD>
<WORD coords="1380,2824,1462,2790,2818">(size</WORD>
<WORD coords="1489,2819,1518,2790,2819">&amp;</WORD>
<WORD coords="1531,2825,1690,2790,2818">0xFC07))</WORD>
<WORD coords="1703,2819,1815,2792,2818">return</WORD>
<WORD coords="1833,2818,1909,2790,2818">false</WORD>
<WORD coords="1923,2823,1929,2799,0">;</WORD>
</LINE>
<LINE>
<WORD coords="278,2868,287,2840,2868">i</WORD>
<WORD coords="311,2863,332,2852,2868">=</WORD>
<WORD coords="352,2874,362,2840,2874">(</WORD>
<WORD coords="377,2869,487,2840,2868">uint8_t</WORD>
<WORD coords="501,2875,512,2840,2875">)</WORD>
<WORD coords="539,2874,550,2840,2868">(</WORD>
<WORD coords="560,2868,621,2840,2868">size</WORD>
<WORD coords="650,2869,662,2840,2869">/</WORD>
<WORD coords="687,2875,718,2840,2872">8)</WORD>
<WORD coords="728,2873,734,2849,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2917,307,2889,2917">if</WORD>
<WORD coords="336,2926,888,2889,2917">((UsbDevIsLowSpeedSelectedQ)</WORD>
<WORD coords="902,2917,964,2889,2919">&amp;&amp;</WORD>
<WORD coords="977,2926,1072,2889,2917">((type</WORD>
<WORD coords="1086,2912,1130,2901,2913">==</WORD>
<WORD coords="1145,2917,1256,2889,2917">UsbEP</WORD>
<WORD coords="1260,2926,1447,2889,2917">_TypeBulk)</WORD>
<WORD coords="1464,2927,1466,2886,2927">1</WORD>
<WORD coords="1476,2927,1478,2886,2927">1</WORD>
<WORD coords="1495,2926,1578,2889,2917">(type</WORD>
<WORD coords="1600,2912,1645,2901,2914">==</WORD>
<WORD coords="1659,2918,1771,2889,2917">UsbEP</WORD>
<WORD coords="1775,2926,1932,2889,2917">_TypeIso)</WORD>
<WORD coords="1952,2927,1965,2886,2927">||</WORD>
<WORD coords="1996,2923,2024,2889,2917">(i</WORD>
<WORD coords="2051,2924,2156,2889,2922">&gt;1)))</WORD>
<WORD coords="2179,2918,2291,2891,2917">return</WORD>
<WORD coords="2323,2917,2338,2887,2917">)</WORD>
</LINE>
<LINE>
<WORD coords="365,2967,440,2939,2967">false</WORD>
<WORD coords="456,2973,462,2948,2973">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,3017,307,2989,3017">if</WORD>
<WORD coords="341,3024,393,2989,3017">(!((</WORD>
<WORD coords="408,3017,418,2988,3017">i</WORD>
<WORD coords="442,3012,487,3001,3013">==</WORD>
<WORD coords="505,3024,532,2989,3022">1)</WORD>
<WORD coords="565,3027,579,2986,3027">||</WORD>
<WORD coords="614,3023,642,2989,3017">(i</WORD>
<WORD coords="666,3012,711,3001,3013">==</WORD>
<WORD coords="724,3024,756,2989,3022">2)</WORD>
<WORD coords="790,3027,803,2986,3027">||</WORD>
<WORD coords="838,3023,866,2989,3017">(i</WORD>
<WORD coords="890,3012,935,3001,3013">==</WORD>
<WORD coords="948,3024,980,2989,3022">4)</WORD>
<WORD coords="1014,3027,1027,2986,3027">||</WORD>
<WORD coords="1062,3023,1090,2989,3017">(i</WORD>
<WORD coords="1115,3025,1240,2989,3020">=8)))</WORD>
</LINE>
<LINE>
<WORD coords="317,3067,344,3039,3067">if</WORD>
<WORD coords="381,3073,446,3039,3072">(!(((</WORD>
<WORD coords="464,3067,473,3039,3067">i</WORD>
<WORD coords="498,3074,608,3039,3068">==16)</WORD>
<WORD coords="640,3077,654,3036,3077">||</WORD>
<WORD coords="688,3073,716,3039,3067">(i</WORD>
<WORD coords="741,3074,851,3039,3068">==32)</WORD>
<WORD coords="883,3077,897,3036,3077">||</WORD>
<WORD coords="931,3073,959,3039,3067">(i</WORD>
<WORD coords="984,3074,1110,3039,3068">==64))</WORD>
<WORD coords="1134,3067,1196,3039,3068">&amp;&amp;</WORD>
<WORD coords="1209,3076,1290,3039,3067">(type</WORD>
<WORD coords="1304,3062,1348,3051,3064">==</WORD>
<WORD coords="1361,3068,1474,3039,3067">UsbEP</WORD>
<WORD coords="1479,3076,1663,3039,3067">_TypeIso)))</WORD>
<WORD coords="1676,3068,1788,3041,3067">return</WORD>
<WORD coords="1814,3073,1911,3039,3067">false;</WORD>
</LINE>
<LINE>
<WORD coords="280,3117,307,3089,3117">if</WORD>
<WORD coords="336,3126,438,3089,3117">((type</WORD>
<WORD coords="461,3112,505,3101,3114">==</WORD>
<WORD coords="518,3118,631,3089,3117">UsbEP</WORD>
<WORD coords="635,3126,868,3089,3117">_TypeControl)</WORD>
<WORD coords="882,3118,944,3089,3118">&amp;&amp;</WORD>
<WORD coords="957,3120,1029,3089,3117">((dir</WORD>
<WORD coords="1045,3117,1075,3089,3115">!=</WORD>
<WORD coords="1097,3118,1209,3089,3117">UsbEP</WORD>
<WORD coords="1213,3121,1419,3089,3117">_DirControl)</WORD>
<WORD coords="1444,3127,1457,3086,3127">||</WORD>
<WORD coords="1492,3123,1601,3089,3117">(banks</WORD>
<WORD coords="1622,3124,1726,3089,3122">&gt;0)))</WORD>
<WORD coords="1750,3117,1862,3091,3117">return</WORD>
<WORD coords="1888,3120,1986,3089,3117">false;</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0042.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0043.djvu" width="2481">
<PARAM name="PAGE" value="sources_0043.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1541,104,132">usb</WORD>
<WORD coords="1557,133,1645,104,132">drv.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,132,2420,104,132">44</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="279,277,307,248,277">if</WORD>
<WORD coords="334,284,421,249,277">(num</WORD>
<WORD coords="433,272,477,261,274">==</WORD>
<WORD coords="490,284,522,249,281">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,337,290,296,337">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="316,377,344,348,377">if</WORD>
<WORD coords="373,384,455,349,377">((dir</WORD>
<WORD coords="484,377,514,349,375">!=</WORD>
<WORD coords="538,378,649,349,377">UsbEP</WORD>
<WORD coords="668,381,859,349,377">DirControl)</WORD>
<WORD coords="883,387,897,346,387">||</WORD>
<WORD coords="931,386,1017,349,377">(type</WORD>
<WORD coords="1045,377,1075,349,375">!=</WORD>
<WORD coords="1097,378,1209,349,377">UsbEP</WORD>
<WORD coords="1213,386,1460,349,377">_TypeControl))</WORD>
<WORD coords="1473,378,1585,351,377">return</WORD>
<WORD coords="1608,380,1705,349,377">false;</WORD>
<WORD coords="1735,378,1765,349,378">//</WORD>
<WORD coords="1787,377,1858,349,377">EPO</WORD>
<WORD coords="1871,378,1896,350,377">is</WORD>
<WORD coords="1918,386,2031,349,377">always</WORD>
<WORD coords="2055,378,2172,349,377">control</WORD>
<WORD coords="2198,386,2235,359,377">ep</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,438,291,396,438">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,477,341,448,476">else</WORD>
</LINE>
<LINE>
<WORD coords="276,536,290,495,536">{</WORD>
<WORD coords="319,554,343,547,553">..</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,576,344,548,576">if</WORD>
<WORD coords="373,582,477,548,576">((num</WORD>
<WORD coords="494,576,524,548,574">!=</WORD>
<WORD coords="538,583,840,548,576">UsbAllocatedEPs)</WORD>
<WORD coords="865,586,878,545,586">||</WORD>
<WORD coords="913,577,943,548,577">//</WORD>
<WORD coords="973,577,1104,548,576">allocate</WORD>
<WORD coords="1134,585,1187,558,576">eps</WORD>
<WORD coords="1212,577,1240,549,577">in</WORD>
<WORD coords="1263,585,1399,549,576">growing</WORD>
<WORD coords="1415,581,1516,548,576">order,</WORD>
<WORD coords="1546,577,1596,558,576">see</WORD>
<WORD coords="1626,577,1739,549,576">section</WORD>
<WORD coords="1769,576,1842,548,576">21.7</WORD>
</LINE>
<LINE>
<WORD coords="390,635,475,598,626">(type</WORD>
<WORD coords="498,621,543,610,623">==</WORD>
<WORD coords="555,627,669,598,626">UsbEP</WORD>
<WORD coords="673,635,919,598,626">_TypeControl))</WORD>
<WORD coords="933,626,1044,600,626">return</WORD>
<WORD coords="1066,631,1164,598,626">false;</WORD>
<WORD coords="1194,627,1223,598,627">//</WORD>
<WORD coords="1245,626,1327,608,626">more</WORD>
<WORD coords="1340,627,1410,598,626">than</WORD>
<WORD coords="1432,627,1490,608,626">one</WORD>
<WORD coords="1513,627,1630,598,626">control</WORD>
<WORD coords="1656,635,1693,608,626">ep</WORD>
<WORD coords="1712,628,1780,608,626">may</WORD>
<WORD coords="1792,626,1829,598,626">be</WORD>
<WORD coords="1843,627,1901,598,627">ok?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,687,291,645,687">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,727,302,698,727">U</WORD>
<WORD coords="305,735,674,698,726">sbDevSelectEndpoint(</WORD>
<WORD coords="677,733,761,698,726">num)</WORD>
<WORD coords="766,731,772,707,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,784,712,747,775">UsbDevEnableEndpoint();</WORD>
<WORD coords="728,776,758,747,776">//</WORD>
<WORD coords="779,776,887,747,775">enable</WORD>
<WORD coords="909,784,946,757,775">ep</WORD>
<WORD coords="969,784,1071,747,777">before</WORD>
<WORD coords="1096,777,1228,757,775">memory</WORD>
<WORD coords="1241,775,1266,748,775">is</WORD>
<WORD coords="1290,776,1470,747,775">allocated?</WORD>
<WORD coords="1491,780,1553,748,775">Yes,</WORD>
<WORD coords="1583,776,1634,757,776">see</WORD>
<WORD coords="1658,784,1758,747,776">figure</WORD>
<WORD coords="1786,775,1879,747,772">22—2</WORD>
</LINE>
<LINE>
<WORD coords="274,834,285,797,834">j</WORD>
<WORD coords="311,820,332,809,822">=</WORD>
<WORD coords="351,828,380,797,826">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,876,366,847,875">while</WORD>
<WORD coords="392,881,436,847,875">((i</WORD>
<WORD coords="461,870,482,859,875">=</WORD>
<WORD coords="502,881,529,847,875">(i</WORD>
<WORD coords="557,877,615,852,877">&gt;&gt;</WORD>
<WORD coords="633,882,689,847,881">1)))</WORD>
<WORD coords="703,884,777,847,878">j++;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,926,459,897,925">UECFGOX</WORD>
<WORD coords="471,920,492,909,924">=</WORD>
<WORD coords="506,934,602,897,925">((type</WORD>
<WORD coords="617,927,675,902,927">«</WORD>
<WORD coords="690,932,721,897,931">6)</WORD>
<WORD coords="738,935,740,894,935">|</WORD>
<WORD coords="757,932,848,897,925">(dir))</WORD>
<WORD coords="859,931,865,906,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,976,459,947,975">UECFG1X</WORD>
<WORD coords="471,970,492,959,974">=</WORD>
<WORD coords="506,984,540,947,981">((j</WORD>
<WORD coords="557,977,615,952,977">«</WORD>
<WORD coords="630,982,661,947,980">4)</WORD>
<WORD coords="679,985,681,944,985">|</WORD>
<WORD coords="697,980,804,947,975">(banks</WORD>
<WORD coords="820,977,878,952,977">«</WORD>
<WORD coords="892,982,949,947,979">2));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1025,459,996,1024">UECFG1X</WORD>
<WORD coords="475,1034,504,993,1027">|=</WORD>
<WORD coords="518,1030,545,996,1026">(1</WORD>
<WORD coords="564,1026,622,1002,1026">«</WORD>
<WORD coords="636,1031,797,996,1024">ALLOC);</WORD>
</LINE>
<LINE>
<WORD coords="280,1074,307,1046,1074">if</WORD>
<WORD coords="334,1080,527,1046,1074">(UESTAOX</WORD>
<WORD coords="541,1075,570,1046,1077">&amp;</WORD>
<WORD coords="583,1080,611,1046,1076">(1</WORD>
<WORD coords="630,1076,688,1051,1076">«</WORD>
<WORD coords="702,1081,868,1046,1074">CFGOK))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1134,290,1093,1134">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1175,339,1146,1175">U</WORD>
<WORD coords="342,1174,376,1146,1174">sb</WORD>
<WORD coords="378,1174,649,1146,1174">AllocatedEPs++</WORD>
<WORD coords="654,1177,659,1155,0">;</WORD>
</LINE>
<LINE>
<WORD coords="311,1225,423,1198,1224">return</WORD>
<WORD coords="447,1224,509,1201,1224">true</WORD>
<WORD coords="522,1230,528,1205,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1283,290,1242,1283">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,1323,341,1295,1323">else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1383,290,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1424,338,1395,1424">U</WORD>
<WORD coords="342,1432,750,1395,1423">sbDevDisableEndpoint()</WORD>
<WORD coords="755,1428,761,1404,0">;</WORD>
</LINE>
<LINE>
<WORD coords="311,1474,423,1447,1473">return</WORD>
<WORD coords="450,1473,525,1445,1473">false</WORD>
<WORD coords="541,1478,547,1454,1478">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1533,290,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1582,253,1541,1582">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0043.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0044.djvu" width="2481">
<PARAM name="PAGE" value="sources_0044.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,133,1677,104,132">drv.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,133,2418,104,132">45</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,653,249,277">AT90USB/usart_drv.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,269,299,328">//</WORD>
<WORD coords="292,328,384,300,327">Basic</WORD>
<WORD coords="408,336,513,305,327">output</WORD>
<WORD coords="544,328,675,300,327">routines</WORD>
<WORD coords="700,336,756,299,330">for</WORD>
<WORD coords="781,332,908,299,327">USART,</WORD>
<WORD coords="924,336,1058,299,327">adapted</WORD>
<WORD coords="1069,328,1097,304,327">to</WORD>
<WORD coords="1112,327,1226,299,327">Atmels</WORD>
<WORD coords="1242,328,1408,299,327">AT90USB</WORD>
<WORD coords="1420,328,1693,299,327">microcontrollers</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="292,378,394,349,377">Based</WORD>
<WORD coords="405,377,443,359,377">on</WORD>
<WORD coords="458,378,623,349,377">AT90USB</WORD>
<WORD coords="636,378,794,349,377">datasheet</WORD>
<WORD coords="806,384,1064,349,377">(7593D—AVR—</WORD>
<WORD coords="1068,382,1182,349,379">07/06),</WORD>
<WORD coords="1197,386,1323,349,377">chapter</WORD>
<WORD coords="1335,377,1375,349,377">18</WORD>
<WORD coords="1386,378,1448,349,377">and</WORD>
<WORD coords="1459,386,1610,349,377">examples</WORD>
<WORD coords="1616,386,1697,349,379">from</WORD>
</LINE>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="298,436,360,399,427">http</WORD>
<WORD coords="378,428,417,399,428">://</WORD>
<WORD coords="424,428,778,398,427">www.mikrocontroller</WORD>
<WORD coords="783,428,788,423,428">.</WORD>
<WORD coords="800,428,872,399,427">net/</WORD>
<WORD coords="884,428,1007,399,427">articles</WORD>
<WORD coords="1021,428,1036,402,427">/</WORD>
<WORD coords="1037,428,1257,399,427">AVR—GCC—</WORD>
<WORD coords="1264,428,1394,399,427">Tutorial</WORD>
<WORD coords="1406,428,1468,399,427">and</WORD>
</LINE>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="298,485,360,448,476">http</WORD>
<WORD coords="378,477,417,448,477">://</WORD>
<WORD coords="424,479,1000,448,476">www.roboternetz.de/wissen/index</WORD>
<WORD coords="1007,477,1012,472,485">.</WORD>
<WORD coords="1018,485,1200,448,476">php/UART</WORD>
<WORD coords="1200,477,1364,449,476">jnit_avr—</WORD>
<WORD coords="1368,485,1425,458,477">gcc</WORD>
</LINE>
<LINE>
<WORD coords="241,527,270,498,527">//</WORD>
<WORD coords="293,527,322,498,527">S.</WORD>
<WORD coords="351,527,494,498,526">Salewski</WORD>
<WORD coords="517,527,776,498,526">29-JAN-2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,366,597,626">#ifndef</WORD>
<WORD coords="401,627,533,598,626">USART</WORD>
<WORD coords="550,626,631,599,626">DRV</WORD>
<WORD coords="649,626,677,599,626">H</WORD>
</LINE>
<LINE>
<WORD coords="236,676,363,647,676">#define</WORD>
<WORD coords="402,677,532,648,676">USART</WORD>
<WORD coords="552,676,630,649,676">DRV</WORD>
<WORD coords="652,676,675,649,676">H</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="408,777,603,747,775">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,384,796,825">#include</WORD>
<WORD coords="405,807,421,797,816">”</WORD>
<WORD coords="430,825,545,797,825">defines</WORD>
<WORD coords="560,825,564,821,825">.</WORD>
<WORD coords="573,825,610,797,825">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,366,896,925">#ifndef</WORD>
<WORD coords="385,926,554,897,925">NOUART</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,976,310,947,975">void</WORD>
<WORD coords="330,976,462,947,975">USART</WORD>
<WORD coords="466,980,648,947,975">Jnit(void);</WORD>
<WORD coords="670,976,700,947,976">//</WORD>
<WORD coords="744,978,886,947,975">initialize</WORD>
<WORD coords="931,979,1057,947,975">USART,</WORD>
<WORD coords="1073,976,1138,947,976">8N1</WORD>
<WORD coords="1153,976,1240,947,975">mode</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1025,310,996,1024">void</WORD>
<WORD coords="330,1025,462,996,1024">USART</WORD>
<WORD coords="466,1027,747,996,1024">_WriteChar(char</WORD>
<WORD coords="759,1031,799,996,1024">c);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1075,310,1046,1074">void</WORD>
<WORD coords="330,1075,462,1046,1074">USART</WORD>
<WORD coords="466,1082,813,1045,1074">_WriteHex(unsigned</WORD>
<WORD coords="825,1074,904,1046,1074">char</WORD>
<WORD coords="916,1081,956,1046,1074">c);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1125,310,1096,1124">void</WORD>
<WORD coords="331,1125,462,1096,1124">USART</WORD>
<WORD coords="466,1130,826,1096,1124">_WriteHexW(uintl6_t</WORD>
<WORD coords="838,1131,889,1096,1124">w);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1175,310,1146,1174">void</WORD>
<WORD coords="331,1175,462,1146,1174">USART</WORD>
<WORD coords="466,1183,768,1146,1174">_WriteString(char</WORD>
<WORD coords="782,1181,838,1147,1175">*s);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1225,310,1196,1224">void</WORD>
<WORD coords="330,1229,743,1196,1224">USART_NewLine(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1274,324,1244,1273">#else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="387,1330,617,1295,1323">USART_Init()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,363,1344,1373">#define</WORD>
<WORD coords="387,1380,753,1345,1373">USART_WriteChar(c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="388,1424,509,1395,1423">USAR&apos;I</WORD>
<WORD coords="537,1430,741,1395,1423">WritcHcxfcj</WORD>
</LINE>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="389,1474,509,1445,1473">USAR&apos;I</WORD>
<WORD coords="537,1477,792,1445,1473">WritcHexW(w)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1523,363,1494,1523">#define</WORD>
<WORD coords="386,1532,772,1494,1523">USART_WriteString(s)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="387,1579,713,1544,1572">USART_NewLine()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1622,349,1593,1622">#endif</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,349,1693,1722">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0044.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0045.djvu" width="2481">
<PARAM name="PAGE" value="sources_0045.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,133,1675,104,132">drv.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2379,133,2419,104,132">46</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,652,249,277">AT90USB/usartjdrv.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,269,299,328">//</WORD>
<WORD coords="292,328,384,300,327">Basic</WORD>
<WORD coords="408,336,513,305,327">output</WORD>
<WORD coords="544,328,675,300,327">routines</WORD>
<WORD coords="700,336,756,299,330">for</WORD>
<WORD coords="781,332,908,299,327">USART,</WORD>
<WORD coords="924,336,1058,299,327">adapted</WORD>
<WORD coords="1069,328,1097,304,327">to</WORD>
<WORD coords="1112,327,1226,299,327">Atmels</WORD>
<WORD coords="1242,328,1408,299,327">AT90USB</WORD>
<WORD coords="1420,328,1693,299,327">microcontrollers</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="292,378,394,349,377">Based</WORD>
<WORD coords="405,377,443,359,377">on</WORD>
<WORD coords="458,378,623,349,377">AT90USB</WORD>
<WORD coords="635,378,804,349,377">Datasheet</WORD>
<WORD coords="815,384,1073,349,377">(7593D—AVR—</WORD>
<WORD coords="1078,382,1191,349,379">07/06),</WORD>
<WORD coords="1207,386,1333,349,377">chapter</WORD>
<WORD coords="1344,377,1384,349,377">18</WORD>
<WORD coords="1395,378,1458,349,377">and</WORD>
<WORD coords="1468,386,1619,349,377">examples</WORD>
<WORD coords="1625,386,1706,349,379">from</WORD>
</LINE>
<LINE>
<WORD coords="241,428,270,399,428">//</WORD>
<WORD coords="298,436,360,399,427">http</WORD>
<WORD coords="378,428,417,399,428">://</WORD>
<WORD coords="424,428,778,398,427">www.mikrocontroller</WORD>
<WORD coords="783,428,788,423,428">.</WORD>
<WORD coords="800,428,872,399,427">net/</WORD>
<WORD coords="884,428,1007,399,427">articles</WORD>
<WORD coords="1021,428,1036,402,427">/</WORD>
<WORD coords="1037,428,1257,399,427">AVR—GCC—</WORD>
<WORD coords="1264,427,1394,399,427">Tutorial</WORD>
<WORD coords="1406,428,1468,399,427">and</WORD>
</LINE>
<LINE>
<WORD coords="241,477,270,448,477">//</WORD>
<WORD coords="298,485,360,448,476">http</WORD>
<WORD coords="378,477,417,448,477">://</WORD>
<WORD coords="424,479,999,448,476">www.roboternetz.de/wissen/index</WORD>
<WORD coords="1007,477,1012,472,485">.</WORD>
<WORD coords="1018,485,1200,448,476">php/UART</WORD>
<WORD coords="1200,477,1364,449,476">jnit_avr—</WORD>
<WORD coords="1368,485,1425,458,477">gcc</WORD>
</LINE>
<LINE>
<WORD coords="241,527,270,498,527">//</WORD>
<WORD coords="293,527,322,498,527">S.</WORD>
<WORD coords="351,527,494,498,526">Salewski</WORD>
<WORD coords="516,526,586,498,526">27—</WORD>
<WORD coords="590,526,695,499,526">FEB—</WORD>
<WORD coords="698,526,782,498,526">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,384,597,626">#include</WORD>
<WORD coords="408,628,603,598,626">&lt;avr/io.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,658,421,648,667">”</WORD>
<WORD coords="430,676,545,648,676">defines</WORD>
<WORD coords="560,676,564,672,676">.</WORD>
<WORD coords="573,676,610,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,708,421,698,717">”</WORD>
<WORD coords="432,726,580,698,726">usart.drv</WORD>
<WORD coords="598,726,602,722,726">.</WORD>
<WORD coords="610,726,647,698,726">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,776,550,747,775">’’macros.</WORD>
<WORD coords="554,775,591,747,757">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,366,846,875">#ifndef</WORD>
<WORD coords="385,876,554,847,875">NOUART</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,984,758,947,975">Wait_USART_Ready()</WORD>
<WORD coords="771,975,863,947,975">while</WORD>
<WORD coords="877,981,1075,947,975">(!(UCSR1A</WORD>
<WORD coords="1088,975,1117,947,978">&amp;</WORD>
<WORD coords="1131,982,1401,947,975">(1«UDRE1)))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="387,1025,621,996,1024">UART.UBRR</WORD>
<WORD coords="634,1031,1219,996,1024">(F_CPU/(16L*USART_BAUD)-1)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1125,270,1096,1125">//</WORD>
<WORD coords="315,1127,456,1096,1124">initialize</WORD>
<WORD coords="501,1129,628,1096,1124">USART,</WORD>
<WORD coords="644,1125,708,1096,1125">8N1</WORD>
<WORD coords="723,1125,811,1096,1124">mode</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1175,310,1146,1174">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1225,369,1196,1224">USART</WORD>
<WORD coords="372,1230,543,1196,1224">Jnit(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1283,253,1242,1283">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1324,402,1295,1323">UBRR1</WORD>
<WORD coords="418,1318,439,1307,1321">=</WORD>
<WORD coords="453,1326,697,1295,1323">UARTJUBRR;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1374,427,1345,1373">UCSR1C</WORD>
<WORD coords="441,1368,462,1357,1372">=</WORD>
<WORD coords="476,1380,733,1345,1373">(1«UCSZ10)</WORD>
<WORD coords="750,1383,752,1342,1383">|</WORD>
<WORD coords="769,1380,1037,1345,1373">(1«UCSZ11);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1424,426,1395,1423">UCSR1B</WORD>
<WORD coords="441,1418,462,1407,1422">=</WORD>
<WORD coords="476,1430,728,1395,1423">(1&lt;&lt;TXEN1);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1483,253,1442,1483">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1573,310,1544,1572">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1627,654,1594,1622">USART_WriteChar(char</WORD>
<WORD coords="665,1629,695,1594,1622">c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1682,253,1641,1682">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1722,350,1694,1722">Wait</WORD>
<WORD coords="353,1723,415,1694,1722">JUS</WORD>
<WORD coords="419,1722,499,1694,1722">ART</WORD>
<WORD coords="502,1731,619,1694,1722">.Ready</WORD>
<WORD coords="622,1729,646,1694,1728">()</WORD>
<WORD coords="651,1727,657,1703,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1773,377,1744,1772">UDR1</WORD>
<WORD coords="393,1767,414,1756,1769">=</WORD>
<WORD coords="427,1777,453,1753,1772">c;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1831,253,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1922,310,1893,1921">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1980,719,1942,1971">USART_WriteHex(unsigned</WORD>
<WORD coords="732,1971,811,1943,1971">char</WORD>
<WORD coords="823,1978,852,1943,1971">c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2031,253,1990,2031">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2079,431,2042,2071">unsigned</WORD>
<WORD coords="444,2071,523,2043,2071">char</WORD>
<WORD coords="540,2071,641,2043,2071">nibble</WORD>
<WORD coords="653,2077,659,2052,0">;</WORD>
</LINE>
<LINE>
<WORD coords="278,2120,380,2092,2120">nibble</WORD>
<WORD coords="405,2115,426,2104,2119">=</WORD>
<WORD coords="446,2123,477,2092,2120">(c</WORD>
<WORD coords="501,2127,616,2092,2123">&gt;&gt;4);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="279,2170,307,2141,2170">if</WORD>
<WORD coords="334,2173,454,2142,2170">(nibble</WORD>
<WORD coords="482,2172,508,2148,2172">&lt;</WORD>
<WORD coords="526,2177,575,2142,2173">10)</WORD>
<WORD coords="596,2170,697,2142,2170">nibble</WORD>
<WORD coords="722,2176,846,2142,2164">+=’0’;</WORD>
<WORD coords="877,2171,939,2142,2170">else</WORD>
<WORD coords="969,2170,1071,2142,2170">nibble</WORD>
<WORD coords="1096,2170,1140,2149,2170">+=</WORD>
<WORD coords="1156,2177,1227,2142,2170">(’A’</WORD>
<WORD coords="1235,2177,1329,2142,2173">-10);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2220,350,2192,2220">Wait</WORD>
<WORD coords="353,2221,415,2192,2220">JUS</WORD>
<WORD coords="419,2220,499,2192,2220">ART</WORD>
<WORD coords="502,2229,657,2192,2220">_Ready();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2271,377,2242,2270">UDR1</WORD>
<WORD coords="393,2265,414,2254,2267">=</WORD>
<WORD coords="427,2273,538,2242,2270">nibble;</WORD>
</LINE>
<LINE>
<WORD coords="278,2320,380,2292,2320">nibble</WORD>
<WORD coords="405,2315,426,2304,2319">=</WORD>
<WORD coords="446,2323,477,2292,2320">(c</WORD>
<WORD coords="499,2320,528,2292,2320">&amp;</WORD>
<WORD coords="541,2327,648,2292,2320">OxOF);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2369,307,2340,2369">if</WORD>
<WORD coords="334,2372,454,2341,2369">(nibble</WORD>
<WORD coords="482,2371,508,2346,2371">&lt;</WORD>
<WORD coords="526,2376,575,2341,2372">10)</WORD>
<WORD coords="596,2369,697,2341,2369">nibble</WORD>
<WORD coords="722,2375,846,2341,2363">+=’0’;</WORD>
<WORD coords="877,2370,939,2341,2369">else</WORD>
<WORD coords="969,2369,1071,2341,2369">nibble</WORD>
<WORD coords="1096,2369,1140,2348,2368">+=</WORD>
<WORD coords="1156,2373,1227,2341,2369">(’A’</WORD>
<WORD coords="1235,2360,1261,2357,2363">—</WORD>
<WORD coords="1269,2376,1329,2341,2373">10);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2420,415,2391,2419">Wait_US</WORD>
<WORD coords="419,2419,499,2391,2419">ART</WORD>
<WORD coords="502,2428,619,2391,2419">.Ready</WORD>
<WORD coords="622,2426,646,2391,2425">()</WORD>
<WORD coords="651,2424,657,2400,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2470,377,2441,2469">UDR1</WORD>
<WORD coords="393,2464,414,2453,2466">=</WORD>
<WORD coords="427,2472,538,2441,2469">nibble;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2529,253,2488,2529">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2619,310,2590,2618">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2674,732,2640,2668">USART_WriteHexW(uintl6_t</WORD>
<WORD coords="744,2675,785,2640,2668">w)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2728,253,2687,2728">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2775,767,2740,2768">USART_WriteHex(MSB(w));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2825,755,2790,2818">USART_WriteHex(LSB(w));</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2878,253,2837,2878">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2968,310,2939,2967">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,3018,369,2989,3017">USART</WORD>
<WORD coords="372,3026,674,2989,3017">JWriteString(char</WORD>
<WORD coords="688,3024,734,2989,3018">*s)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,3077,253,3036,3077">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,3118,366,3089,3117">while</WORD>
<WORD coords="389,3124,456,3089,3118">(*s)</WORD>
<WORD coords="481,3124,923,3089,3117">USART_WriteChar(*s++);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0045.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0046.djvu" width="2481">
<PARAM name="PAGE" value="sources_0046.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,133,1675,104,132">drv.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="240,287,254,246,287">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,378,310,349,377">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,428,369,399,427">USART</WORD>
<WORD coords="372,427,431,399,427">_Ne</WORD>
<WORD coords="433,427,536,399,427">wLine</WORD>
<WORD coords="540,430,550,399,430">(</WORD>
<WORD coords="552,431,639,399,427">void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,486,253,445,486">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,527,415,498,526">WaitJJS</WORD>
<WORD coords="419,526,499,498,526">ART</WORD>
<WORD coords="502,535,619,498,526">.Ready</WORD>
<WORD coords="622,533,646,498,532">()</WORD>
<WORD coords="651,532,657,507,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,577,377,548,576">udri</WORD>
<WORD coords="393,571,414,560,578">=</WORD>
<WORD coords="429,586,497,545,586">V;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,626,350,598,626">Wait</WORD>
<WORD coords="353,627,415,598,626">JJS</WORD>
<WORD coords="419,626,499,598,626">ART</WORD>
<WORD coords="502,635,619,598,626">.Ready</WORD>
<WORD coords="622,633,646,598,632">()</WORD>
<WORD coords="651,632,657,607,0">;</WORD>
</LINE>
<LINE>
<WORD coords="275,677,377,648,676">UDRI</WORD>
<WORD coords="393,671,414,660,671">=</WORD>
<WORD coords="429,687,504,645,676">’\n’;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,736,253,695,736">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,825,349,796,825">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0046.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0047.djvu" width="2481">
<PARAM name="PAGE" value="sources_0047.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,140,1725,104,132">debug.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,132">48</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,698,249,277">AT90USB/usart_debug.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="290,327,315,299,327">A</WORD>
<WORD coords="323,336,385,299,330">few</WORD>
<WORD coords="405,328,523,309,327">macros</WORD>
<WORD coords="532,336,588,299,330">for</WORD>
<WORD coords="610,336,782,299,327">debugging</WORD>
<WORD coords="797,336,835,299,328">by</WORD>
<WORD coords="854,335,981,299,327">sending</WORD>
<WORD coords="1003,336,1156,309,327">messages</WORD>
<WORD coords="1171,328,1245,309,327">over</WORD>
<WORD coords="1268,328,1315,299,327">the</WORD>
<WORD coords="1348,328,1441,299,327">serial</WORD>
<WORD coords="1468,336,1541,305,327">port</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">22—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,366,447,476">#ifndef</WORD>
<WORD coords="388,477,752,448,476">_USART_DEBUG_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,752,498,526">_USART_DEBUG_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="405,608,421,598,617">”</WORD>
<WORD coords="430,626,545,598,626">defines</WORD>
<WORD coords="560,626,564,622,626">.</WORD>
<WORD coords="573,626,610,598,626">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,658,421,648,667">”</WORD>
<WORD coords="433,676,511,654,676">usart</WORD>
<WORD coords="528,677,581,648,676">drv</WORD>
<WORD coords="598,676,602,672,676">.</WORD>
<WORD coords="610,676,647,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,384,697,726">#include</WORD>
<WORD coords="405,735,568,698,726">”usb_spec</WORD>
<WORD coords="579,726,583,722,726">.</WORD>
<WORD coords="592,726,628,698,726">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,826,345,796,825">#ifdef</WORD>
<WORD coords="367,826,508,797,825">DEBUG</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,363,846,875">#define</WORD>
<WORD coords="386,884,590,847,875">Debug(msg)</WORD>
<WORD coords="604,876,734,847,875">USART</WORD>
<WORD coords="751,884,1042,847,875">WriteString(msg)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,934,397,897,928">//#define</WORD>
<WORD coords="423,934,690,897,925">ReqDebug(msg)</WORD>
<WORD coords="706,926,829,897,925">USART</WORD>
<WORD coords="846,926,932,898,925">Write</WORD>
<WORD coords="935,926,966,897,926">St</WORD>
<WORD coords="968,934,1048,898,925">ring)</WORD>
<WORD coords="1050,934,1115,906,926">msg</WORD>
<WORD coords="1132,907,1147,897,920">”</WORD>
<WORD coords="1161,933,1194,897,921">(”</WORD>
<WORD coords="1225,925,1325,898,925">JFILE</WORD>
<WORD coords="1371,936,1515,894,925">”)\r\n”)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,984,657,947,975">ReqDebug(msg)</WORD>
<WORD coords="670,985,1074,944,975">USART_WriteString(”|”</WORD>
<WORD coords="1087,984,1154,956,975">msg</WORD>
<WORD coords="1167,986,1291,944,975">”\r\n”)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1025,324,995,1024">#else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="386,1083,590,1046,1074">Debug(msg)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="386,1133,657,1096,1124">ReqDebug(msg)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1175,349,1145,1174">#endif</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1274,345,1244,1273">#ifdef</WORD>
<WORD coords="367,1274,508,1245,1273">DEBUG</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1323,363,1294,1323">#define</WORD>
<WORD coords="389,1332,588,1295,1323">Assert(exp)</WORD>
<WORD coords="616,1323,643,1295,1323">if</WORD>
<WORD coords="670,1332,742,1295,1323">(exp</WORD>
<WORD coords="760,1318,804,1307,1320">==</WORD>
<WORD coords="818,1330,850,1295,1328">0)</WORD>
<WORD coords="872,1332,1343,1295,1323">USART_WriteString(”Error:</WORD>
<WORD coords="1358,1305,1374,1295,1314">”</WORD>
<WORD coords="1394,1332,1472,1296,1323">#exp</WORD>
<WORD coords="1488,1305,1504,1295,1311">”</WORD>
<WORD coords="1526,1318,1570,1307,1320">==</WORD>
<WORD coords="1583,1324,1602,1295,1327">0</WORD>
<WORD coords="1622,1330,1654,1295,1319">(”</WORD>
<WORD coords="1678,1324,1823,1295,1323">__FILE__</WORD>
<WORD coords="1843,1334,2004,1292,1323">”)\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="236,1374,324,1344,1373">#else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1423,363,1394,1423">#define</WORD>
<WORD coords="389,1423,494,1395,1423">Assert</WORD>
<WORD coords="502,1432,588,1395,1423">(exp)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1474,349,1444,1473">#endif</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1573,345,1543,1572">#ifdef</WORD>
<WORD coords="367,1573,508,1544,1572">DEBUG</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1623,310,1594,1622">void</WORD>
<WORD coords="330,1631,1193,1594,1622">UsbDumpDeviceDescriptor(USB_DeviceDescriptor</WORD>
<WORD coords="1206,1627,1267,1594,1622">*d);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1673,310,1644,1672">void</WORD>
<WORD coords="331,1681,1421,1644,1672">UsbDumpConfigurationDescriptor(USB_ConfigurationDescriptor</WORD>
<WORD coords="1434,1679,1484,1644,1673">*c)</WORD>
<WORD coords="1494,1677,1500,1653,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1723,310,1694,1722">void</WORD>
<WORD coords="330,1731,919,1694,1722">UsbDumpInterfaceDescriptor(USB</WORD>
<WORD coords="924,1731,1259,1694,1722">JnterfaceDescriptor</WORD>
<WORD coords="1285,1722,1313,1694,1722">*i</WORD>
<WORD coords="1323,1730,1334,1695,1728">)</WORD>
<WORD coords="1344,1728,1350,1703,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1773,310,1744,1772">void</WORD>
<WORD coords="330,1781,1264,1744,1772">UsbDumpEndpointDescriptor(USB_EndpointDescriptor</WORD>
<WORD coords="1278,1779,1337,1744,1772">*e);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1822,310,1793,1821">void</WORD>
<WORD coords="331,1830,871,1793,1821">UsbDumpStringDescriptor(char</WORD>
<WORD coords="884,1828,942,1793,1822">*s);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1872,310,1843,1871">void</WORD>
<WORD coords="331,1880,1087,1843,1871">UsbDumpSetupRequest(USB_DeviceRequest</WORD>
<WORD coords="1101,1880,1195,1848,1871">*rcq);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1922,324,1892,1921">#else</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1971,363,1942,1971">#define</WORD>
<WORD coords="387,1980,894,1943,1971">UsbDumpDeviceDescriptor(d)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2021,363,1992,2021">#define</WORD>
<WORD coords="387,2030,1006,1993,2021">UsbDumpConfigurationDescriptor(c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2071,363,2042,2071">#define</WORD>
<WORD coords="387,2072,414,2043,2071">U</WORD>
<WORD coords="417,2080,890,2043,2071">sbDumpInterfaceDescriptor(</WORD>
<WORD coords="895,2071,904,2043,2071">i</WORD>
<WORD coords="912,2078,923,2043,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2120,363,2091,2120">#define</WORD>
<WORD coords="387,2129,928,2092,2120">UsbDumpEndpointDescriptor(e)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2170,363,2141,2170">#define</WORD>
<WORD coords="387,2179,874,2142,2170">UsbDumpStringDescriptor(s)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2220,363,2191,2220">#define</WORD>
<WORD coords="387,2229,863,2192,2220">UsbDumpSetupRequest(req)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,2271,349,2241,2270">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,2370,349,2340,2369">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0047.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0048.djvu" width="2481">
<PARAM name="PAGE" value="sources_0048.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,140,1723,104,132">debug.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2419,104,132">49</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,697,249,277">AT90USB/iisart_debug.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,269,299,328">//</WORD>
<WORD coords="292,336,474,299,327">Debugging</WORD>
<WORD coords="486,336,524,299,328">by</WORD>
<WORD coords="537,336,664,299,327">sending</WORD>
<WORD coords="685,336,839,309,327">messages</WORD>
<WORD coords="854,328,927,309,327">over</WORD>
<WORD coords="950,327,998,299,327">the</WORD>
<WORD coords="1030,328,1123,299,327">serial</WORD>
<WORD coords="1152,336,1223,305,327">port</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">22—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,384,447,476">#include</WORD>
<WORD coords="405,458,421,448,467">”</WORD>
<WORD coords="430,476,545,448,476">defines</WORD>
<WORD coords="560,476,564,472,476">.</WORD>
<WORD coords="573,476,610,448,476">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,345,547,576">#ifdef</WORD>
<WORD coords="367,577,508,548,576">DEBUG</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,676,507,648,676">&apos;&apos;usart</WORD>
<WORD coords="524,685,622,648,676">debug</WORD>
<WORD coords="635,676,639,672,676">.</WORD>
<WORD coords="648,676,684,648,676">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,727,384,697,726">#include</WORD>
<WORD coords="405,735,568,698,726">”usb_spec</WORD>
<WORD coords="579,726,583,722,726">.</WORD>
<WORD coords="592,726,628,698,726">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,775,384,746,775">#include</WORD>
<WORD coords="405,776,580,747,775">”usart_drv</WORD>
<WORD coords="598,775,647,747,775">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,876,310,847,875">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,934,790,896,925">UsbDumpDevieeDescriptor(USB</WORD>
<WORD coords="811,934,1100,897,925">DeviccDcscriptor</WORD>
<WORD coords="1113,932,1163,897,925">*d)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,986,254,944,986">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1033,728,996,1024">USART_WriteString(”USB</WORD>
<WORD coords="742,1024,887,996,1024">Device—</WORD>
<WORD coords="891,1033,1118,996,1024">Descriptor:”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1075,406,1046,1074">USART</WORD>
<WORD coords="410,1085,725,1043,1074">_WriteString(”\r\n</WORD>
<WORD coords="741,1074,790,1046,1074">d—</WORD>
<WORD coords="797,1083,972,1046,1074">&gt;bLength:</WORD>
<WORD coords="987,1082,1027,1046,1074">”);</WORD>
<WORD coords="1041,1077,1415,1046,1074">USART_WriteHex(d—</WORD>
<WORD coords="1422,1083,1612,1046,1074">&gt;bLength);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1135,725,1093,1124">USART_WriteString(”\r\n</WORD>
<WORD coords="741,1124,790,1096,1124">d—</WORD>
<WORD coords="797,1133,1111,1096,1124">&gt;bDescriptorType:</WORD>
<WORD coords="1126,1132,1167,1096,1124">”);</WORD>
<WORD coords="1189,1130,1564,1096,1124">USART_WriteHex(d—</WORD>
<WORD coords="1571,1133,1900,1096,1124">&gt;bDescriptorType);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1175,406,1146,1174">USART</WORD>
<WORD coords="423,1185,723,1143,1174">WriteString(”\r\n</WORD>
<WORD coords="741,1176,974,1145,1174">d-&gt;bcdUSB:</WORD>
<WORD coords="989,1181,1029,1146,1173">”);</WORD>
<WORD coords="1044,1181,1656,1146,1174">USART_WriteHexW(d-&gt;bcdUSB);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1225,406,1196,1224">USART</WORD>
<WORD coords="410,1234,725,1193,1224">_WriteString(”\r\n</WORD>
<WORD coords="741,1224,790,1196,1224">d—</WORD>
<WORD coords="797,1226,1061,1196,1224">&gt;bDeviceClass:</WORD>
<WORD coords="1076,1231,1116,1196,1224">”);</WORD>
<WORD coords="1136,1225,1266,1196,1224">USART</WORD>
<WORD coords="1281,1231,1489,1196,1224">WriteHex(d-</WORD>
<WORD coords="1498,1231,1793,1195,1224">-&gt;bDevieeClass);</WORD>
</LINE>
<LINE>
<WORD coords="274,1284,725,1242,1273">USART_WriteString(”\r\n</WORD>
<WORD coords="741,1273,790,1245,1273">d—</WORD>
<WORD coords="797,1275,1125,1245,1273">&gt;bDeviceSubClass:</WORD>
<WORD coords="1140,1280,1180,1245,1273">”);</WORD>
<WORD coords="1194,1279,1568,1245,1273">USART_WriteHex(d—</WORD>
<WORD coords="1575,1280,1919,1245,1273">&gt;bDeviceSubClass);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1324,406,1295,1323">USART</WORD>
<WORD coords="410,1334,725,1292,1323">_WriteString(”\r\n</WORD>
<WORD coords="741,1323,790,1295,1323">d—</WORD>
<WORD coords="797,1325,1123,1295,1323">&gt;bDeviceProtocoll:</WORD>
<WORD coords="1138,1331,1182,1295,1323">”);</WORD>
<WORD coords="1209,1324,1340,1295,1323">USART</WORD>
<WORD coords="1344,1328,1930,1295,1323">_WriteHexfd—&gt;bDeviceProtocoll);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1374,406,1345,1373">USART</WORD>
<WORD coords="410,1384,725,1342,1373">_WriteString(”\r\n</WORD>
<WORD coords="741,1373,790,1345,1373">d—</WORD>
<WORD coords="797,1375,1132,1345,1373">&gt;bMaxPacketSizeO:</WORD>
<WORD coords="1147,1380,1187,1345,1373">”);</WORD>
<WORD coords="1202,1374,1333,1345,1373">USART</WORD>
<WORD coords="1337,1376,1575,1345,1373">JWriteHexfd—</WORD>
<WORD coords="1582,1380,1932,1345,1373">&gt;bMaxPacketSizeO);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1424,406,1395,1423">USART</WORD>
<WORD coords="410,1434,725,1392,1423">_WriteString(”\r\n</WORD>
<WORD coords="741,1423,790,1395,1423">d—</WORD>
<WORD coords="797,1425,986,1395,1423">&gt;idVendor:</WORD>
<WORD coords="1000,1431,1041,1395,1423">”);</WORD>
<WORD coords="1059,1429,1472,1395,1423">USART_WriteHexW(d—</WORD>
<WORD coords="1479,1430,1683,1395,1423">&gt;idVendor);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1474,406,1445,1473">USART</WORD>
<WORD coords="410,1483,725,1442,1473">_WriteString(”\r\n</WORD>
<WORD coords="741,1473,790,1445,1473">d—</WORD>
<WORD coords="797,1475,995,1445,1473">&gt;idProduct:</WORD>
<WORD coords="1010,1481,1053,1445,1473">”);</WORD>
<WORD coords="1080,1474,1210,1445,1473">USART</WORD>
<WORD coords="1226,1474,1460,1445,1473">WriteHexWfd</WORD>
<WORD coords="1468,1464,1491,1461,1469">—</WORD>
<WORD coords="1498,1480,1710,1445,1473">&gt;idPmduct);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1524,406,1495,1523">USART</WORD>
<WORD coords="410,1534,725,1492,1523">_WriteString(”\r\n</WORD>
<WORD coords="741,1523,790,1495,1523">d—</WORD>
<WORD coords="797,1525,1010,1495,1523">&gt;bcdDevice:</WORD>
<WORD coords="1025,1530,1065,1495,1523">”);</WORD>
<WORD coords="1080,1526,1492,1495,1523">USART_WriteHexW(d—</WORD>
<WORD coords="1499,1530,1727,1495,1523">&gt;bcdDevice);</WORD>
</LINE>
<LINE>
<WORD coords="274,1582,725,1541,1572">USART_WriteString(”\r\n</WORD>
<WORD coords="741,1572,790,1544,1572">d—</WORD>
<WORD coords="797,1574,1070,1544,1572">&gt;iManufacturer:</WORD>
<WORD coords="1085,1580,1128,1544,1572">”);</WORD>
<WORD coords="1153,1575,1526,1544,1572">USART_WriteHex(d—</WORD>
<WORD coords="1533,1579,1822,1544,1572">&gt;iManufacturer);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1623,406,1594,1622">USART</WORD>
<WORD coords="410,1633,725,1591,1622">_WriteString(”\r\n</WORD>
<WORD coords="741,1622,790,1594,1622">d—</WORD>
<WORD coords="797,1624,974,1594,1622">&gt;iProduct:</WORD>
<WORD coords="989,1629,1033,1594,1622">”);</WORD>
<WORD coords="1060,1623,1191,1594,1622">USART</WORD>
<WORD coords="1194,1628,1433,1594,1622">_WriteHex(d—</WORD>
<WORD coords="1440,1629,1632,1594,1622">&gt;iProduct);</WORD>
</LINE>
<LINE>
<WORD coords="274,1683,725,1641,1672">USART_WriteString(”\r\n</WORD>
<WORD coords="741,1672,790,1644,1672">d—</WORD>
<WORD coords="797,1674,1078,1644,1672">&gt;iSerialNumber:</WORD>
<WORD coords="1093,1679,1133,1644,1671">”);</WORD>
<WORD coords="1153,1675,1526,1644,1672">USART_WriteHex(d—</WORD>
<WORD coords="1533,1679,1829,1644,1672">&gt;iSerialNumber);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,1723,406,1694,1722">USART</WORD>
<WORD coords="424,1731,638,1694,1722">WriteStringf</WORD>
<WORD coords="642,1732,723,1691,1722">’\r\n</WORD>
<WORD coords="741,1722,790,1694,1722">d—</WORD>
<WORD coords="797,1731,1184,1694,1722">&gt;bNumConfigurations:</WORD>
<WORD coords="1199,1730,1239,1694,1722">”);</WORD>
<WORD coords="1253,1723,1376,1694,1722">USAR&apos;I</WORD>
<WORD coords="1404,1723,1596,1694,1722">WritcHcxfd</WORD>
<WORD coords="1603,1713,1627,1710,1718">—</WORD>
<WORD coords="1634,1731,2036,1694,1722">&gt;bNumCoufigurations);</WORD>
</LINE>
<LINE>
<WORD coords="274,1779,612,1744,1772">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1831,253,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1922,310,1893,1921">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1980,904,1943,1971">UsbDumpCoufiguratioiiDcscriptorfUSB</WORD>
<WORD coords="923,1980,1328,1943,1971">ConfigurationDcscriptor</WORD>
<WORD coords="1341,1978,1391,1943,1971">*c)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2031,253,1990,2031">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2072,406,2043,2071">USART</WORD>
<WORD coords="410,2080,648,2043,2071">_WriteString(”</WORD>
<WORD coords="663,2072,771,2043,2071">—USB</WORD>
<WORD coords="785,2080,1043,2043,2071">Configuration—</WORD>
<WORD coords="1048,2080,1275,2043,2071">Descriptor:”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2121,406,2092,2120">USART</WORD>
<WORD coords="410,2131,725,2089,2120">_WriteString(”\r\n</WORD>
<WORD coords="779,2121,825,2101,2121">c—</WORD>
<WORD coords="832,2129,1007,2092,2120">&gt;bLength:</WORD>
<WORD coords="1022,2128,1062,2092,2120">”);</WORD>
<WORD coords="1078,2126,1449,2092,2120">USART_WriteHex(c—</WORD>
<WORD coords="1456,2129,1646,2092,2120">&gt;bLength);</WORD>
</LINE>
<LINE>
<WORD coords="274,2180,725,2139,2170">USART_WriteString(”\r\n</WORD>
<WORD coords="779,2171,825,2151,2171">c—</WORD>
<WORD coords="832,2179,1147,2142,2170">&gt;bDescriptorType:</WORD>
<WORD coords="1162,2178,1203,2142,2170">”);</WORD>
<WORD coords="1227,2176,1599,2142,2170">USART_WriteHex(c—</WORD>
<WORD coords="1605,2179,1935,2142,2170">&gt;bDescriptorType);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2221,406,2192,2220">USART</WORD>
<WORD coords="410,2231,725,2189,2220">_WriteString(”\r\n</WORD>
<WORD coords="779,2221,825,2201,2221">c—</WORD>
<WORD coords="832,2229,1101,2192,2220">&gt;wTotalLength:</WORD>
<WORD coords="1115,2228,1156,2192,2220">”);</WORD>
<WORD coords="1172,2226,1582,2192,2220">USART_WriteHexW(c—</WORD>
<WORD coords="1589,2229,1872,2192,2220">&gt;wTotalLength);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,2271,406,2242,2270">USAR&apos;I’</WORD>
<WORD coords="423,2270,573,2242,2270">WriteStri</WORD>
<WORD coords="579,2279,701,2239,2270">ng(”\r\</WORD>
<WORD coords="708,2270,723,2251,2271">n</WORD>
<WORD coords="779,2271,825,2251,2271">c—</WORD>
<WORD coords="832,2272,1136,2242,2270">&gt;bNumInterfaces:</WORD>
<WORD coords="1151,2277,1191,2242,2270">”);</WORD>
<WORD coords="1209,2276,1580,2242,2270">USART_WriteHex(c—</WORD>
<WORD coords="1587,2277,1905,2242,2270">&gt;bNumInterfaces);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2321,406,2292,2320">USART</WORD>
<WORD coords="410,2330,725,2289,2320">_WriteString(”\r\n</WORD>
<WORD coords="779,2329,1111,2292,2320">c—&gt;bConfiguration</WORD>
<WORD coords="1114,2320,1215,2292,2320">Value:</WORD>
<WORD coords="1229,2327,1276,2292,2320">”);</WORD>
<WORD coords="1302,2329,1959,2292,2320">USART_WriteHex(c—&gt;bConfiguration</WORD>
<WORD coords="1962,2327,2078,2292,2320">Value);</WORD>
</LINE>
<LINE>
<WORD coords="275,2370,406,2341,2369">USART</WORD>
<WORD coords="410,2379,725,2338,2369">_WriteString(”\r\n</WORD>
<WORD coords="779,2370,825,2350,2370">c—</WORD>
<WORD coords="832,2378,1111,2340,2369">&gt;iConfiguration:</WORD>
<WORD coords="1133,2377,1182,2341,2369">”);</WORD>
<WORD coords="1209,2370,1340,2341,2369">USART</WORD>
<WORD coords="1344,2375,1580,2341,2369">_WriteHex(c—</WORD>
<WORD coords="1587,2378,1880,2341,2369">&gt;iConfiguration);</WORD>
</LINE>
<LINE>
<WORD coords="274,2429,725,2388,2419">USART_WriteString(”\r\n</WORD>
<WORD coords="779,2420,825,2400,2420">c—</WORD>
<WORD coords="832,2421,1087,2391,2419">&gt;bmAttributes:</WORD>
<WORD coords="1102,2427,1145,2391,2419">”);</WORD>
<WORD coords="1172,2425,1543,2391,2419">USART_WriteHex(c—</WORD>
<WORD coords="1550,2426,1819,2391,2419">&gt;bmAttributes);</WORD>
</LINE>
<LINE>
<WORD coords="275,2479,725,2438,2469">USART_WriteString(”\r\n</WORD>
<WORD coords="779,2469,825,2450,2469">c—</WORD>
<WORD coords="832,2471,1050,2441,2469">&gt;MaxPower:</WORD>
<WORD coords="1065,2477,1105,2441,2469">”);</WORD>
<WORD coords="1119,2475,1491,2441,2469">USART_WriteHex(c—</WORD>
<WORD coords="1498,2476,1730,2441,2469">&gt;MaxPower);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2526,612,2491,2519">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2579,253,2538,2579">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2669,310,2640,2668">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2719,264,2690,2718">U</WORD>
<WORD coords="268,2727,741,2690,2718">sbDumpInterfaceDescriptorf</WORD>
<WORD coords="748,2719,825,2690,2718">USB</WORD>
<WORD coords="831,2727,1165,2690,2718">JnterfaceDescriptor</WORD>
<WORD coords="1191,2717,1206,2699,2717">*</WORD>
<WORD coords="1213,2718,1222,2690,2718">i</WORD>
<WORD coords="1229,2725,1240,2690,0">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2778,253,2737,2778">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,2819,397,2790,2818">USAR&apos;I</WORD>
<WORD coords="424,2827,648,2790,2818">WriteStringf’</WORD>
<WORD coords="687,2819,794,2790,2818">—USB</WORD>
<WORD coords="808,2818,983,2790,2818">Interface—</WORD>
<WORD coords="988,2827,1220,2790,2818">Descriptor:”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2879,725,2837,2868">USART_WriteString(”\r\n</WORD>
<WORD coords="819,2868,828,2840,2868">i</WORD>
<WORD coords="836,2859,862,2856,2864">—</WORD>
<WORD coords="869,2877,1044,2840,2868">&gt;bLength:</WORD>
<WORD coords="1059,2876,1100,2840,2868">”);</WORD>
<WORD coords="1115,2874,1480,2840,2868">USART_WriteHex(i—</WORD>
<WORD coords="1487,2877,1676,2840,2868">&gt;bLength);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2927,725,2886,2917">USART_WriteString(”\r\n</WORD>
<WORD coords="819,2917,828,2889,2917">i</WORD>
<WORD coords="836,2908,862,2905,2913">—</WORD>
<WORD coords="869,2926,1184,2889,2917">&gt;bDescriptorType:</WORD>
<WORD coords="1199,2925,1241,2889,2917">”);</WORD>
<WORD coords="1265,2923,1629,2889,2917">USART_WriteHex(i—</WORD>
<WORD coords="1636,2926,1965,2889,2917">&gt;bDescriptorType);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2977,725,2936,2967">USART_WriteString(”\r\n</WORD>
<WORD coords="819,2967,828,2939,2967">i</WORD>
<WORD coords="836,2958,862,2955,2963">—</WORD>
<WORD coords="869,2969,1210,2939,2967">&gt;bInterfaceNumber:</WORD>
<WORD coords="1225,2974,1265,2939,2967">”);</WORD>
<WORD coords="1283,2973,1648,2939,2967">USART_WriteHex(i—</WORD>
<WORD coords="1655,2974,2010,2939,2967">&gt;bInterfaceNumber);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,3018,406,2989,3017">USART</WORD>
<WORD coords="410,3027,725,2986,3017">_WriteString(”\r\n</WORD>
<WORD coords="819,3017,828,2989,3017">i</WORD>
<WORD coords="836,3008,862,3005,3013">—</WORD>
<WORD coords="869,3026,1201,2989,3017">&gt;bAlternateSetting:</WORD>
<WORD coords="1227,3025,1276,2989,3017">”);</WORD>
<WORD coords="1304,3018,1434,2989,3017">USART</WORD>
<WORD coords="1450,3018,1634,2989,3017">WriteHexii</WORD>
<WORD coords="1641,3008,1666,3005,3013">—</WORD>
<WORD coords="1674,3026,2018,2989,3017">&gt;bAltcrnateSetting);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,3068,406,3039,3067">USART</WORD>
<WORD coords="410,3078,725,3036,3067">_WriteString(”\r\n</WORD>
<WORD coords="819,3067,828,3039,3067">i</WORD>
<WORD coords="836,3058,862,3055,3063">—</WORD>
<WORD coords="869,3076,1178,3039,3067">&gt;bNumEndpoints:</WORD>
<WORD coords="1193,3075,1233,3039,3067">”);</WORD>
<WORD coords="1248,3068,1370,3039,3067">USAR&apos;I</WORD>
<WORD coords="1396,3068,1580,3039,3067">WriteHexii</WORD>
<WORD coords="1587,3058,1612,3056,3063">—</WORD>
<WORD coords="1619,3076,1943,3039,3067">&gt;bNumEndpoints);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,3118,406,3089,3117">USART</WORD>
<WORD coords="410,3127,725,3086,3117">_WriteString(”\r\n</WORD>
<WORD coords="819,3117,828,3089,3117">i</WORD>
<WORD coords="836,3108,862,3105,3113">—</WORD>
<WORD coords="869,3119,1165,3089,3117">&gt;b!nterfaceClass:</WORD>
<WORD coords="1190,3125,1238,3089,3117">”);</WORD>
<WORD coords="1265,3118,1396,3089,3117">USART</WORD>
<WORD coords="1400,3123,1629,3089,3117">_WriteHex(i—</WORD>
<WORD coords="1636,3124,1945,3089,3117">&gt;b!nterfaceClass);</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0048.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0049.djvu" width="2481">
<PARAM name="PAGE" value="sources_0049.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1573,106,132">usart</WORD>
<WORD coords="1587,140,1723,104,132">debug.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2420,104,133">50</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="275,278,406,249,277">USART</WORD>
<WORD coords="410,287,725,246,277">_WriteString(”\r\n</WORD>
<WORD coords="819,277,828,249,277">i</WORD>
<WORD coords="836,268,862,265,273">—</WORD>
<WORD coords="869,279,1228,249,277">&gt;bInterfaceSubClass:</WORD>
<WORD coords="1246,284,1294,249,277">”);</WORD>
<WORD coords="1321,278,1452,249,277">USART</WORD>
<WORD coords="1456,283,1685,249,277">_WriteHex(i—</WORD>
<WORD coords="1692,284,2066,249,277">&gt;bInterfaceSubClass);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,337,725,296,327">USART_WriteString(”\r\n</WORD>
<WORD coords="819,327,828,299,327">i</WORD>
<WORD coords="836,318,862,315,323">—</WORD>
<WORD coords="869,329,1219,299,327">&gt;bInterfaceProtocol:</WORD>
<WORD coords="1246,334,1294,299,327">”);</WORD>
<WORD coords="1321,328,1452,299,327">USART</WORD>
<WORD coords="1456,333,1685,299,327">_WriteHex(i—</WORD>
<WORD coords="1692,331,2052,299,327">&gt;bInterfaceProtocol);</WORD>
</LINE>
<LINE>
<WORD coords="274,378,406,349,377">USART</WORD>
<WORD coords="423,388,723,346,377">WriteString(”\r\n</WORD>
<WORD coords="819,377,828,349,377">i</WORD>
<WORD coords="836,368,862,365,373">—</WORD>
<WORD coords="869,379,1069,349,377">&gt;ilnterface:</WORD>
<WORD coords="1096,384,1145,349,376">”);</WORD>
<WORD coords="1171,383,1536,349,377">USART_WriteHex(i—</WORD>
<WORD coords="1543,384,1753,349,377">&gt;ilnterface);</WORD>
</LINE>
<LINE>
<WORD coords="274,434,612,399,427">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,486,253,445,486">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,577,310,548,576">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,635,826,598,626">UsbDumpEndpointDescriptor(USB</WORD>
<WORD coords="831,635,1171,598,626">_EndpointDescriptor</WORD>
<WORD coords="1184,633,1232,598,627">*e)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,686,253,645,686">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,727,406,698,726">USART</WORD>
<WORD coords="410,735,648,698,726">_WriteString(”</WORD>
<WORD coords="725,727,832,698,726">—USB</WORD>
<WORD coords="845,735,1026,698,726">Endpoint—</WORD>
<WORD coords="1029,735,1257,697,726">Descriptor:”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,776,406,747,775">USART</WORD>
<WORD coords="410,786,725,744,775">_WriteString(”\r\n</WORD>
<WORD coords="853,775,900,756,775">e—</WORD>
<WORD coords="907,784,1082,747,775">&gt;bLength:</WORD>
<WORD coords="1097,782,1137,747,774">”);</WORD>
<WORD coords="1153,776,1284,747,775">USART</WORD>
<WORD coords="1288,780,1524,747,775">_WriteHex(e—</WORD>
<WORD coords="1531,784,1721,747,775">&gt;bLength);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,836,725,794,825">USART_WriteString(”\r\n</WORD>
<WORD coords="853,825,900,806,825">e—</WORD>
<WORD coords="907,834,1221,797,825">&gt;bDescriptorType:</WORD>
<WORD coords="1236,832,1278,797,824">”);</WORD>
<WORD coords="1301,829,1673,797,825">USART_WriteHex(e—</WORD>
<WORD coords="1680,834,2010,797,825">&gt;bDescriptorType);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,876,406,847,875">USART</WORD>
<WORD coords="423,886,723,844,875">WriteString(”\r\n</WORD>
<WORD coords="853,875,900,856,875">e—</WORD>
<WORD coords="907,884,1252,847,875">&gt;bEndpointAddress:</WORD>
<WORD coords="1267,882,1308,847,874">”);</WORD>
<WORD coords="1321,876,1454,847,875">USART</WORD>
<WORD coords="1470,884,1866,847,875">WritcHexie—&gt;bEndpoi</WORD>
<WORD coords="1873,875,1900,853,875">lit</WORD>
<WORD coords="1905,882,2061,847,875">Address);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,926,406,897,925">USART</WORD>
<WORD coords="410,935,725,894,925">_WriteString(”\r\n</WORD>
<WORD coords="853,925,900,906,925">e—</WORD>
<WORD coords="907,927,1162,897,925">&gt;bmAttributes:</WORD>
<WORD coords="1177,932,1220,897,924">”);</WORD>
<WORD coords="1248,926,1294,897,926">US</WORD>
<WORD coords="1300,925,1369,898,925">AR&apos;I</WORD>
<WORD coords="1393,932,1617,897,925">WriteHex(e—</WORD>
<WORD coords="1624,933,1894,897,925">&gt;bmAttributes);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,976,406,947,975">USART</WORD>
<WORD coords="410,986,725,944,975">_WriteString(”\r\n</WORD>
<WORD coords="853,975,900,956,975">e—</WORD>
<WORD coords="907,977,1231,947,975">&gt;wMaxPacketSize:</WORD>
<WORD coords="1245,982,1286,947,974">”);</WORD>
<WORD coords="1301,980,1711,947,975">USART_WriteHexW(e—</WORD>
<WORD coords="1718,982,2056,947,975">&gt;wMaxPacketSize);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1025,406,996,1024">USART</WORD>
<WORD coords="410,1035,725,993,1024">_WriteString(”\r\n</WORD>
<WORD coords="853,1024,900,1005,1024">e—</WORD>
<WORD coords="907,1026,1092,996,1024">&gt;blnterval:</WORD>
<WORD coords="1115,1031,1164,996,1022">”);</WORD>
<WORD coords="1190,1029,1561,996,1024">USART_WriteHex(e—</WORD>
<WORD coords="1568,1031,1768,996,1024">&gt;blnterval);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1081,612,1046,1074">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1134,253,1093,1134">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1225,310,1196,1224">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1274,265,1245,1273">U</WORD>
<WORD coords="268,1282,426,1245,1273">sbDumpS</WORD>
<WORD coords="430,1282,692,1245,1273">tringDescriptorl</WORD>
<WORD coords="698,1273,777,1245,1273">char</WORD>
<WORD coords="791,1271,806,1254,1272">*</WORD>
<WORD coords="811,1280,837,1245,1273">s)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1333,253,1292,1333">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,1374,394,1345,1373">uint8_t</WORD>
<WORD coords="427,1378,454,1345,1373">i;</WORD>
</LINE>
<LINE>
<WORD coords="278,1423,287,1395,1423">i</WORD>
<WORD coords="311,1418,332,1407,1419">=</WORD>
<WORD coords="351,1429,398,1404,1424">*s;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1474,323,1445,1474">US</WORD>
<WORD coords="328,1473,397,1446,1473">AR&apos;I</WORD>
<WORD coords="423,1482,728,1445,1473">WriteString(”USB</WORD>
<WORD coords="743,1482,871,1445,1473">String—</WORD>
<WORD coords="876,1483,1179,1442,1473">Descriptor:\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1524,366,1495,1523">while</WORD>
<WORD coords="390,1529,417,1495,1523">(i</WORD>
<WORD coords="488,1530,499,1495,1530">)</WORD>
<WORD coords="513,1529,943,1495,1523">USART_WriteHex(*s++);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1579,612,1544,1572">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1632,253,1591,1632">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1723,310,1694,1722">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1781,994,1744,1772">UsbDumpSetupRequest(USB_DeviceRequest</WORD>
<WORD coords="1007,1781,1091,1744,1772">*req)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1832,254,1790,1832">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1872,301,1843,1872">U</WORD>
<WORD coords="305,1872,323,1843,1872">S</WORD>
<WORD coords="327,1871,406,1843,1871">ART</WORD>
<WORD coords="410,1872,422,1870,1871">_</WORD>
<WORD coords="423,1871,460,1843,1871">W</WORD>
<WORD coords="461,1871,536,1843,1871">riteS</WORD>
<WORD coords="540,1880,648,1843,1871">tring(”</WORD>
<WORD coords="652,1872,670,1843,1871">S</WORD>
<WORD coords="674,1880,743,1848,1871">etup</WORD>
<WORD coords="756,1880,859,1844,1871">Reque</WORD>
<WORD coords="863,1871,888,1848,1871">st</WORD>
<WORD coords="892,1878,931,1843,1869">:”)</WORD>
<WORD coords="936,1877,942,1852,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,1930,648,1893,1921">USART_WriteString(”</WORD>
<WORD coords="667,1931,1021,1890,1921">\r\nbmRequestType:</WORD>
<WORD coords="1036,1928,1076,1893,1920">”);</WORD>
<WORD coords="1097,1930,1502,1893,1921">USART_WriteHex(req—</WORD>
<WORD coords="1509,1930,1830,1893,1921">&gt;bmRequestType);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1972,405,1943,1971">USART</WORD>
<WORD coords="425,1980,648,1943,1971">WriteStringi”</WORD>
<WORD coords="667,1981,907,1940,1971">\r\nbRequest:</WORD>
<WORD coords="1021,1978,1070,1943,1971">”);</WORD>
<WORD coords="1098,1972,1227,1943,1971">USART</WORD>
<WORD coords="1247,1980,1471,1943,1971">WritcHexireq</WORD>
<WORD coords="1479,1962,1502,1959,1967">—</WORD>
<WORD coords="1510,1980,1715,1943,1971">&gt;bRequest);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2022,405,1993,2021">USART</WORD>
<WORD coords="425,2030,648,1993,2021">WriteStringi”</WORD>
<WORD coords="667,2031,877,1990,2021">\r\nwValue:</WORD>
<WORD coords="1021,2028,1070,1993,2021">”);</WORD>
<WORD coords="1098,2022,1227,1993,2021">USART</WORD>
<WORD coords="1247,2030,1510,1993,2021">WritcHexWireq</WORD>
<WORD coords="1525,2028,1724,1993,2021">-&gt;wValue);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="275,2080,648,2043,2071">USART_WriteString(”</WORD>
<WORD coords="667,2081,876,2040,2071">\r\nwlndex:</WORD>
<WORD coords="1021,2078,1070,2043,2071">”);</WORD>
<WORD coords="1097,2080,1542,2043,2071">USART_WriteHexW(req—</WORD>
<WORD coords="1549,2078,1724,2043,2071">&gt;wlndex);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2121,406,2092,2120">USART</WORD>
<WORD coords="410,2129,648,2092,2120">_WriteString(”</WORD>
<WORD coords="667,2130,900,2089,2120">\r\nwLength:</WORD>
<WORD coords="1021,2127,1070,2092,2120">”);</WORD>
<WORD coords="1097,2121,1228,2092,2120">USART</WORD>
<WORD coords="1232,2129,1542,2092,2120">_WriteHexW(req—</WORD>
<WORD coords="1549,2129,1748,2092,2120">&gt;wLength);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2177,612,2142,2170">USART_NewLine();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2230,253,2189,2230">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,2320,349,2291,2320">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0049.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0050.djvu" width="2481">
<PARAM name="PAGE" value="sources_0050.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1479,140,1690,103,132">ringbuffer.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2416,104,132">51</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,666,249,278">AT90USB/ringbuffer.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="293,336,403,299,327">Simple</WORD>
<WORD coords="423,336,530,300,327">Ring—</WORD>
<WORD coords="533,336,638,299,330">Buffer</WORD>
<WORD coords="650,334,772,299,327">(FIFO)</WORD>
<WORD coords="779,336,834,299,330">for</WORD>
<WORD coords="852,328,1003,299,327">Elements</WORD>
<WORD coords="1024,336,1062,299,332">of</WORD>
<WORD coords="1081,336,1147,305,327">type</WORD>
<WORD coords="1173,335,1199,299,335">Q</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,382,507,349,377">Salewski,</WORD>
<WORD coords="535,377,605,349,377">20—</WORD>
<WORD coords="607,377,723,349,377">MAR—</WORD>
<WORD coords="726,377,810,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,477,733,448,476">_RINGJBUFFER_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,733,498,526">_RINGJBUFFER_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="408,628,603,598,626">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="386,726,600,698,726">BufElements</WORD>
<WORD coords="617,727,695,698,726">1024</WORD>
</LINE>
<LINE>
<WORD coords="236,775,363,746,775">#define</WORD>
<WORD coords="386,782,414,747,782">Q</WORD>
<WORD coords="433,776,564,747,775">uintl6_t</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,876,347,849,875">extern</WORD>
<WORD coords="377,875,393,856,875">u</WORD>
<WORD coords="399,875,452,847,875">inti</WORD>
<WORD coords="461,876,479,847,876">6</WORD>
<WORD coords="497,875,507,853,875">t</WORD>
<WORD coords="538,875,587,848,875">RB</WORD>
<WORD coords="608,878,735,847,875">Entries;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,984,654,947,975">RB_FreeSpace()</WORD>
<WORD coords="670,981,899,947,975">(BufElements</WORD>
<WORD coords="914,966,940,963,970">—</WORD>
<WORD coords="955,982,1154,947,975">RB_Entries)</WORD>
</LINE>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="387,1028,584,996,1024">RBJsFulH)</WORD>
<WORD coords="614,1027,681,996,1024">(RB</WORD>
<WORD coords="686,1025,814,996,1024">.Entries</WORD>
<WORD coords="834,1019,879,1008,1020">==</WORD>
<WORD coords="892,1031,1119,996,1024">BufElements)</WORD>
</LINE>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="386,1074,438,1047,1074">RB</WORD>
<WORD coords="444,1083,622,1046,1075">JsEmptyO</WORD>
<WORD coords="636,1080,834,1046,1074">(RBJEntries</WORD>
<WORD coords="853,1069,898,1058,1071">==</WORD>
<WORD coords="911,1081,943,1046,1078">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1175,310,1146,1174">void</WORD>
<WORD coords="332,1174,383,1147,1174">RB</WORD>
<WORD coords="389,1180,568,1146,1174">Jnit(void)</WORD>
<WORD coords="579,1179,585,1155,0">;</WORD>
</LINE>
<LINE>
<WORD coords="237,1225,310,1196,1224">void</WORD>
<WORD coords="330,1231,537,1196,1224">RB_Write(Q</WORD>
<WORD coords="549,1229,604,1196,1224">el);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1280,264,1245,1280">Q</WORD>
<WORD coords="277,1273,328,1246,1273">RB</WORD>
<WORD coords="334,1277,544,1245,1273">Jlead(void);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1373,349,1344,1373">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0050.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0051.djvu" width="2481">
<PARAM name="PAGE" value="sources_0051.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1479,140,1688,103,132">ringbuffer.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2420,104,132">52</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,665,249,278">AT90USB/ringbuffer.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="293,336,403,299,327">Simple</WORD>
<WORD coords="423,336,530,300,327">Ring—</WORD>
<WORD coords="533,336,638,299,330">Buffer</WORD>
<WORD coords="650,334,772,299,327">(FIFO)</WORD>
<WORD coords="779,336,834,299,330">for</WORD>
<WORD coords="852,328,1003,299,327">Elements</WORD>
<WORD coords="1024,336,1062,299,332">of</WORD>
<WORD coords="1081,336,1147,305,327">type</WORD>
<WORD coords="1173,335,1199,299,335">Q</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,382,507,349,377">Salewski,</WORD>
<WORD coords="537,377,605,349,377">19—</WORD>
<WORD coords="607,377,723,349,377">MAR—</WORD>
<WORD coords="726,377,810,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="235,477,268,448,476">/*</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,528,316,503,527">t—&gt;</WORD>
<WORD coords="330,527,348,508,527">o</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,577,330,558,577">o</WORD>
<WORD coords="352,578,409,553,577">&lt;—</WORD>
<WORD coords="413,577,439,558,0">w</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="309,627,330,608,627">X</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="310,677,330,657,677">x</WORD>
<WORD coords="352,678,429,653,676">&lt;—r</WORD>
</LINE>
<LINE>
<WORD coords="237,728,318,698,727">b—&gt;</WORD>
<WORD coords="330,727,350,708,727">x</WORD>
</LINE>
<LINE>
<WORD coords="241,776,275,747,775">*/</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,875,384,846,875">#include</WORD>
<WORD coords="408,877,603,847,875">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,925,384,896,925">#include</WORD>
<WORD coords="405,907,421,897,916">”</WORD>
<WORD coords="433,934,599,896,925">ringbuffer</WORD>
<WORD coords="616,925,620,921,925">.</WORD>
<WORD coords="629,925,666,897,925">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="246,1025,339,996,1024">static</WORD>
<WORD coords="367,1031,395,996,1031">Q</WORD>
<WORD coords="407,1031,718,996,1024">buf[BufElements];</WORD>
</LINE>
<LINE>
<WORD coords="245,1075,376,1046,1074">uintl6_t</WORD>
<WORD coords="405,1079,604,1046,1074">RBJEntries;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1174,363,1145,1174">#define</WORD>
<WORD coords="390,1174,400,1151,1174">t</WORD>
<WORD coords="425,1180,738,1146,1174">&amp;buf[BufElements</WORD>
<WORD coords="753,1165,779,1162,1169">—</WORD>
<WORD coords="798,1181,824,1146,1177">1]</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="385,1224,404,1196,1224">b</WORD>
<WORD coords="425,1231,554,1196,1224">&amp;buf[0]</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1324,270,1295,1326">//</WORD>
<WORD coords="275,1331,302,1295,1331">Q</WORD>
<WORD coords="316,1324,348,1300,1324">*t</WORD>
<WORD coords="370,1318,390,1307,1321">=</WORD>
<WORD coords="408,1332,505,1294,1325">&amp;buf[</WORD>
<WORD coords="506,1331,714,1295,1324">BufElements</WORD>
<WORD coords="729,1314,755,1312,1318">—</WORD>
<WORD coords="770,1323,785,1295,1326">1</WORD>
<WORD coords="790,1329,816,1295,1328">];</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1381,302,1345,1377">//Q</WORD>
<WORD coords="316,1374,354,1345,1374">*b</WORD>
<WORD coords="370,1368,390,1357,1371">=</WORD>
<WORD coords="408,1382,553,1345,1376">&amp;buf[0];</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1430,265,1395,1430">Q</WORD>
<WORD coords="279,1428,323,1404,1423">*r;</WORD>
<WORD coords="353,1424,381,1395,1426">//</WORD>
<WORD coords="410,1432,543,1396,1423">position</WORD>
<WORD coords="566,1432,648,1395,1425">from</WORD>
<WORD coords="666,1424,764,1395,1423">where</WORD>
<WORD coords="778,1424,822,1405,1424">we</WORD>
<WORD coords="835,1424,891,1405,1423">can</WORD>
<WORD coords="910,1424,984,1395,1423">read</WORD>
<WORD coords="1006,1430,1017,1395,1430">(</WORD>
<WORD coords="1029,1432,1057,1395,1427">if</WORD>
<WORD coords="1077,1423,1126,1396,1423">RB</WORD>
<WORD coords="1131,1424,1261,1396,1423">JEntries</WORD>
<WORD coords="1285,1428,1357,1395,1425">&gt;0)</WORD>
</LINE>
<LINE>
<WORD coords="237,1480,265,1445,1480">Q</WORD>
<WORD coords="279,1476,336,1454,1473">*w;</WORD>
<WORD coords="353,1474,383,1445,1474">//</WORD>
<WORD coords="407,1474,477,1450,1474">next</WORD>
<WORD coords="497,1482,565,1445,1475">free</WORD>
<WORD coords="596,1482,729,1446,1473">position</WORD>
<WORD coords="763,1480,774,1445,1473">(</WORD>
<WORD coords="787,1482,813,1445,1482">if</WORD>
<WORD coords="834,1474,1019,1446,1473">RBJEntries</WORD>
<WORD coords="1043,1475,1068,1451,1475">&lt;</WORD>
<WORD coords="1082,1482,1317,1445,1473">BufElements))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1573,310,1544,1572">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1628,475,1594,1622">RBJnit(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1682,253,1641,1682">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="277,1722,290,1703,1722">r</WORD>
<WORD coords="311,1717,332,1706,1720">=</WORD>
<WORD coords="349,1727,380,1694,1723">b;</WORD>
</LINE>
<LINE>
<WORD coords="274,1772,301,1753,1772">w</WORD>
<WORD coords="314,1767,335,1756,1769">=</WORD>
<WORD coords="349,1777,380,1744,1772">b;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1821,326,1794,1821">RB</WORD>
<WORD coords="331,1822,459,1793,1821">.Entries</WORD>
<WORD coords="480,1816,501,1805,1819">=</WORD>
<WORD coords="519,1824,548,1793,1823">0;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1881,253,1840,1881">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1978,265,1943,1978">Q</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2021,288,1994,2021">RB</WORD>
<WORD coords="309,2025,493,1993,2021">Read(void)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2081,253,2040,2081">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2121,269,2092,2121">//</WORD>
<WORD coords="275,2120,381,2092,2120">Assert</WORD>
<WORD coords="390,2127,400,2093,2120">(</WORD>
<WORD coords="404,2121,589,2093,2120">RB_Entries</WORD>
<WORD coords="613,2122,639,2098,2122">&gt;</WORD>
<WORD coords="653,2125,699,2092,2123">0);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2170,326,2143,2170">RB</WORD>
<WORD coords="331,2171,460,2142,2170">.Entries</WORD>
<WORD coords="529,2176,535,2151,2176">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,2220,307,2192,2220">if</WORD>
<WORD coords="334,2224,364,2192,2220">(r</WORD>
<WORD coords="389,2222,415,2197,2222">&gt;</WORD>
<WORD coords="429,2227,456,2192,2221">t)</WORD>
<WORD coords="481,2220,495,2201,2220">r</WORD>
<WORD coords="517,2215,538,2204,2218">=</WORD>
<WORD coords="553,2225,586,2192,2221">b;</WORD>
</LINE>
<LINE>
<WORD coords="274,2271,386,2244,2270">return</WORD>
<WORD coords="407,2273,497,2249,2270">*r++;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2330,253,2289,2330">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2420,310,2391,2419">void</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2476,442,2441,2469">RB_Write(Q</WORD>
<WORD coords="456,2476,497,2441,2469">el)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2529,253,2488,2529">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2570,269,2541,2570">//</WORD>
<WORD coords="275,2569,381,2541,2569">Assert</WORD>
<WORD coords="390,2576,400,2542,2569">(</WORD>
<WORD coords="404,2569,454,2542,2569">RB</WORD>
<WORD coords="458,2570,589,2542,2569">-Entries</WORD>
<WORD coords="613,2571,639,2546,2571">&lt;</WORD>
<WORD coords="652,2578,861,2541,2569">BufElements</WORD>
<WORD coords="865,2574,887,2541,2574">);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2618,326,2591,2618">RB</WORD>
<WORD coords="331,2621,517,2590,2618">_Entries++;</WORD>
</LINE>
<LINE>
<WORD coords="280,2668,307,2640,2668">if</WORD>
<WORD coords="334,2674,376,2640,2668">(w</WORD>
<WORD coords="392,2670,417,2645,2670">&gt;</WORD>
<WORD coords="432,2675,456,2640,2668">t)</WORD>
<WORD coords="480,2668,508,2649,2668">w</WORD>
<WORD coords="520,2663,541,2652,2666">=</WORD>
<WORD coords="553,2673,586,2640,2669">b;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2718,369,2697,2718">*w++</WORD>
<WORD coords="382,2713,403,2702,2715">=</WORD>
<WORD coords="416,2722,456,2690,2718">el;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2778,253,2737,2778">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0051.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0052.djvu" width="2481">
<PARAM name="PAGE" value="sources_0052.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1628,103,132">usbJsr.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,133">53</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,613,249,277">AT90USB/usb_isr.c</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="296,328,366,299,327">USB</WORD>
<WORD coords="381,336,532,300,327">Interrupt</WORD>
<WORD coords="559,328,678,299,327">Service</WORD>
<WORD coords="705,328,849,300,327">Routines</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,377,586,349,377">22—</WORD>
<WORD coords="589,377,704,349,377">MAR—</WORD>
<WORD coords="707,377,792,349,377">2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,477,384,447,476">#include</WORD>
<WORD coords="408,478,500,448,476">&lt;avr/</WORD>
<WORD coords="512,485,654,448,476">interrupt</WORD>
<WORD coords="672,478,734,448,476">.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,384,497,526">#include</WORD>
<WORD coords="408,528,603,498,526">&lt;stdint.h&gt;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,577,384,547,576">#include</WORD>
<WORD coords="405,577,610,548,576">”usb_drv.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,627,384,597,626">#include</WORD>
<WORD coords="405,627,508,598,626">’’usart</WORD>
<WORD coords="524,635,622,598,626">debug</WORD>
<WORD coords="635,626,639,622,626">.</WORD>
<WORD coords="649,626,684,598,626">h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,677,384,647,676">#include</WORD>
<WORD coords="405,685,610,648,676">’’usb.api.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,384,697,726">#include</WORD>
<WORD coords="405,727,486,698,726">”usb</WORD>
<WORD coords="491,735,637,703,726">.requests</WORD>
<WORD coords="654,726,703,698,726">.h”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,826,270,797,826">//</WORD>
<WORD coords="296,826,367,797,825">USB</WORD>
<WORD coords="380,826,513,797,825">General</WORD>
<WORD coords="529,834,679,798,825">Interrupt</WORD>
<WORD coords="703,826,842,797,825">Handler</WORD>
<WORD coords="856,833,980,798,825">(Figure</WORD>
<WORD coords="1005,830,1109,797,825">21.11)</WORD>
</LINE>
<LINE>
<WORD coords="241,876,270,847,876">//</WORD>
<WORD coords="296,876,366,847,875">USB</WORD>
<WORD coords="380,884,548,848,875">Registers:</WORD>
<WORD coords="576,879,750,847,875">USBINT.O,</WORD>
<WORD coords="769,880,942,847,875">USBINT.l,</WORD>
<WORD coords="961,876,1085,848,875">UDINT</WORD>
</LINE>
<LINE>
<WORD coords="237,932,591,897,925">ISR(USB_GEN_vect)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,985,253,944,985">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,1034,889,993,1024">Debug(”ISR(USB_GEN_vect)\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="280,1074,307,1045,1074">if</WORD>
<WORD coords="330,1083,679,1046,1074">UsbIsIDTI_FlagSet()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1134,290,1093,1134">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1175,549,1146,1174">UsbClearlDTI</WORD>
<WORD coords="553,1183,665,1146,1175">JFlagO</WORD>
<WORD coords="673,1180,679,1155,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1233,521,1196,1224">Debug(”===</WORD>
<WORD coords="534,1234,875,1193,1224">IDTIJFlagSet\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1283,290,1242,1283">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1323,307,1294,1323">if</WORD>
<WORD coords="331,1332,743,1295,1323">UsbIsVBUSTI_FlagSet()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1383,290,1342,1383">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1432,742,1395,1423">UsbClearVBUSTLFlag();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1482,521,1445,1473">Debug(”===</WORD>
<WORD coords="535,1483,942,1442,1473">VBUSTLFlagSet\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1533,290,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1572,307,1544,1572">if</WORD>
<WORD coords="330,1581,850,1544,1572">UsbDevIsEndOfResetFlagSet()</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,290,1591,1632">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1681,849,1644,1672">UsbDevClearEndOfResetFlagO;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1723,339,1694,1723">U</WORD>
<WORD coords="342,1723,465,1694,1722">sbDevS</WORD>
<WORD coords="470,1729,735,1694,1722">tartDeviceEPO()</WORD>
<WORD coords="740,1727,746,1703,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1781,521,1744,1772">Debug(”===</WORD>
<WORD coords="534,1782,980,1741,1772">EndOfResetFlagSet\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1831,290,1790,1831">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="280,1871,307,1843,1871">if</WORD>
<WORD coords="330,1880,708,1842,1871">UsbDevIsWakeupCPU</WORD>
<WORD coords="712,1880,877,1843,1872">JlagSetO</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1931,290,1890,1931">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,1972,339,1943,1972">U</WORD>
<WORD coords="342,1972,571,1943,1971">sbDevDisable</WORD>
<WORD coords="573,1980,786,1943,1971">WakeupCPU</WORD>
<WORD coords="791,1978,874,1943,1971">_Int()</WORD>
<WORD coords="879,1976,885,1952,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2022,339,1993,2022">U</WORD>
<WORD coords="342,2021,354,2002,2021">s</WORD>
<WORD coords="359,2021,376,1993,2021">b</WORD>
<WORD coords="380,2021,405,1994,2021">D</WORD>
<WORD coords="408,2021,424,2002,2021">c</WORD>
<WORD coords="427,2022,471,1993,2021">vC</WORD>
<WORD coords="476,2021,521,1993,2021">lea</WORD>
<WORD coords="524,2021,536,2002,2021">r</WORD>
<WORD coords="538,2021,589,1993,2021">Wa</WORD>
<WORD coords="593,2021,608,1993,2021">l&lt;</WORD>
<WORD coords="611,2021,627,2002,2021">e</WORD>
<WORD coords="630,2021,646,2002,2021">u</WORD>
<WORD coords="651,2030,668,2002,2030">p</WORD>
<WORD coords="671,2022,696,1993,2022">C</WORD>
<WORD coords="701,2021,720,1994,2021">P</WORD>
<WORD coords="724,2022,748,1993,2022">U</WORD>
<WORD coords="765,2030,865,1993,2021">Flag()</WORD>
<WORD coords="870,2027,876,2002,0">;</WORD>
</LINE>
<LINE>
<WORD coords="311,2078,568,2043,2071">UsbStartPLL();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="311,2129,521,2092,2120">Debug(”===</WORD>
<WORD coords="534,2129,746,2092,2120">WakeupCPU</WORD>
<WORD coords="751,2131,1008,2089,2120">_FlagSet\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2180,290,2139,2180">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,2321,270,2292,2321">//</WORD>
<WORD coords="296,2321,366,2292,2320">USB</WORD>
<WORD coords="378,2329,617,2292,2320">Endpoint/Pipe</WORD>
<WORD coords="637,2329,788,2293,2320">Interrupt</WORD>
<WORD coords="815,2321,954,2292,2320">Handler</WORD>
<WORD coords="969,2329,1092,2292,2320">(Figure</WORD>
<WORD coords="1116,2325,1221,2292,2320">21.12)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,2370,270,2341,2370">//</WORD>
<WORD coords="292,2378,444,2341,2369">Endpoint</WORD>
<WORD coords="468,2378,619,2342,2369">Registers</WORD>
<WORD coords="632,2370,641,2351,2370">:</WORD>
<WORD coords="669,2374,817,2342,2369">UEINTX,</WORD>
<WORD coords="835,2370,1010,2341,2369">UESTAX.6</WORD>
<WORD coords="1022,2370,1084,2341,2369">and</WORD>
<WORD coords="1097,2370,1272,2341,2369">UESTAX.5</WORD>
</LINE>
<LINE>
<WORD coords="241,2420,270,2391,2420">//</WORD>
<WORD coords="293,2428,414,2391,2419">Setup—</WORD>
<WORD coords="417,2428,549,2392,2419">Request</WORD>
<WORD coords="560,2427,628,2401,2419">may</WORD>
<WORD coords="642,2420,720,2397,2419">reset</WORD>
<WORD coords="744,2428,918,2391,2419">endpoints,</WORD>
<WORD coords="947,2420,981,2401,2420">so</WORD>
<WORD coords="1003,2420,1046,2401,2419">we</WORD>
<WORD coords="1059,2428,1185,2401,2419">process</WORD>
<WORD coords="1209,2420,1280,2391,2419">data</WORD>
<WORD coords="1305,2428,1464,2391,2419">endpoints</WORD>
<WORD coords="1496,2428,1567,2391,2422">first</WORD>
<WORD coords="1585,2420,1596,2391,2420">!</WORD>
</LINE>
<LINE>
<WORD coords="241,2470,270,2441,2470">//</WORD>
<WORD coords="296,2470,373,2442,2469">User</WORD>
<WORD coords="392,2478,512,2441,2471">defined</WORD>
<WORD coords="541,2470,659,2442,2469">actions</WORD>
<WORD coords="685,2470,761,2441,2469">have</WORD>
<WORD coords="782,2470,811,2446,2469">to</WORD>
<WORD coords="834,2478,1048,2441,2469">acknowledge</WORD>
<WORD coords="1063,2469,1110,2441,2469">the</WORD>
<WORD coords="1145,2478,1291,2442,2469">interrupt</WORD>
<WORD coords="1305,2469,1316,2441,2469">!</WORD>
</LINE>
<LINE>
<WORD coords="237,2526,600,2491,2519">ISR(USB_COM_vect)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2579,253,2538,2579">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="284,2619,394,2590,2618">uint8_t</WORD>
<WORD coords="424,2623,519,2590,2618">mask;</WORD>
</LINE>
<LINE>
<WORD coords="284,2669,394,2640,2668">uint8_t</WORD>
<WORD coords="424,2677,473,2649,2668">ep;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="274,2728,898,2687,2718">Debug(”ISR(USB_COM_vect)\r\n”);</WORD>
</LINE>
<LINE>
<WORD coords="274,2769,360,2740,2768">mask</WORD>
<WORD coords="372,2763,393,2752,2766">=</WORD>
<WORD coords="407,2777,904,2740,2768">UsbDevGetEndpointIntBits();</WORD>
</LINE>
<LINE>
<WORD coords="274,2827,311,2799,2818">ep</WORD>
<WORD coords="330,2813,351,2802,2816">=</WORD>
<WORD coords="368,2827,867,2790,2818">UsbNumEndpointsAT90USB;</WORD>
</LINE>
<LINE>
<WORD coords="274,2869,366,2840,2868">while</WORD>
<WORD coords="390,2877,442,2841,2868">(ep</WORD>
<WORD coords="446,2859,504,2856,2870">—</WORD>
<WORD coords="522,2870,547,2845,2870">&gt;</WORD>
<WORD coords="562,2875,593,2840,2872">0)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,2927,290,2886,2927">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="317,2967,344,2939,2967">if</WORD>
<WORD coords="371,2973,473,2939,2967">(mask</WORD>
<WORD coords="485,2967,514,2939,2970">&amp;</WORD>
<WORD coords="528,2976,690,2939,2967">(l&lt;&lt;ep))</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,3027,327,2986,3027">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="349,3076,812,3039,3067">UsbDevSelectEndpoint(ep);</WORD>
</LINE>
<LINE>
<WORD coords="349,3118,460,3088,3117">switch</WORD>
<WORD coords="483,3126,550,3089,3117">(ep)</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0052.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0053.djvu" width="2481">
<PARAM name="PAGE" value="sources_0053.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1482,133,1628,103,132">usbJsr.c</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2420,104,132">54</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="351,287,365,246,287">{</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,328,458,307,327">case</WORD>
<WORD coords="482,328,510,299,327">0:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="430,377,456,349,377">if</WORD>
<WORD coords="481,384,984,349,377">UsbDevHasReceivedSETUPC)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="461,428,488,399,428">U</WORD>
<WORD coords="492,436,908,399,427">sbProcessSetupRequest()</WORD>
<WORD coords="915,432,921,408,0">;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,479,535,448,476">break;</WORD>
</LINE>
<LINE>
<WORD coords="387,527,458,506,526">case</WORD>
<WORD coords="486,527,510,498,526">1:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,583,822,548,576">UsbDevEPlIntActionQ;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,629,535,598,626">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,677,458,656,676">case</WORD>
<WORD coords="482,677,510,648,676">2:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,731,822,698,726">UsbDevEP2IntAction();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,778,535,747,775">break;</WORD>
</LINE>
<LINE>
<WORD coords="387,826,458,805,825">case</WORD>
<WORD coords="483,826,510,797,825">3;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,882,822,847,875">UsbDevEP3IntAction();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,928,535,897,925">break;</WORD>
</LINE>
<LINE>
<WORD coords="387,976,458,955,975">case</WORD>
<WORD coords="482,975,510,947,975">4:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1031,822,996,1024">UsbDevEP4IntAction();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1077,535,1046,1074">break;</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="387,1125,458,1104,1124">case</WORD>
<WORD coords="482,1125,510,1096,1124">5:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1179,822,1146,1174">UsbDevEP5IntAction();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1227,535,1196,1224">break;</WORD>
</LINE>
<LINE>
<WORD coords="387,1274,458,1253,1273">case</WORD>
<WORD coords="482,1274,510,1245,1273">6:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="425,1330,822,1295,1323">UsbDevEP6IntAction();</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1376,535,1345,1373">break;</WORD>
</LINE>
<LINE>
<WORD coords="389,1424,512,1395,1423">default</WORD>
<WORD coords="522,1423,527,1404,0">:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="424,1482,652,1445,1473">Debugf’Error</WORD>
<WORD coords="669,1473,699,1445,1473">in</WORD>
<WORD coords="722,1479,878,1445,1473">ISR(USB</WORD>
<WORD coords="896,1474,988,1445,1473">COM</WORD>
<WORD coords="1006,1484,1205,1442,1473">vect)\r\n”);</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="351,1533,365,1492,1533">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="313,1582,327,1541,1582">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="276,1632,290,1591,1632">}</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1682,253,1641,1682">}</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0053.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0054.djvu" width="2481">
<PARAM name="PAGE" value="sources_0054.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1481,133,1551,112,132">com</WORD>
<WORD coords="1569,132,1654,103,132">def.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2418,104,133">55</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,632,249,278">AT90USB/com_defh</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="295,328,440,299,327">Common</WORD>
<WORD coords="452,336,566,299,330">defines</WORD>
<WORD coords="573,336,628,299,330">for</WORD>
<WORD coords="641,335,794,299,329">firmware</WORD>
<WORD coords="816,328,878,299,327">and</WORD>
<WORD coords="891,328,943,299,327">PC</WORD>
<WORD coords="950,336,1094,309,327">program</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,382,507,349,377">Salewski,</WORD>
<WORD coords="535,377,605,349,377">23—</WORD>
<WORD coords="607,377,810,349,377">MAR-2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,477,648,448,476">_COM_DEF_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,648,498,526">_COM_DEF_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="388,635,442,598,626">My</WORD>
<WORD coords="447,627,521,598,626">USB</WORD>
<WORD coords="541,626,700,598,626">VendorlD</WORD>
<WORD coords="714,627,833,598,626">0x()3eh</WORD>
<WORD coords="843,627,873,598,627">//</WORD>
<WORD coords="879,627,976,598,626">Atmel</WORD>
<WORD coords="987,627,1063,598,627">code</WORD>
</LINE>
<LINE>
<WORD coords="236,676,363,647,676">#define</WORD>
<WORD coords="386,685,521,648,676">MyUSB</WORD>
<WORD coords="527,676,709,648,676">_ProductID</WORD>
<WORD coords="723,677,842,648,676">0x0001</WORD>
<WORD coords="854,677,884,648,677">//</WORD>
<WORD coords="891,685,1041,648,676">arbitrary</WORD>
<WORD coords="1061,677,1148,648,676">value</WORD>
</LINE>
<LINE>
<WORD coords="236,726,363,697,726">#define</WORD>
<WORD coords="387,735,821,698,726">USB.VendorRequestCode</WORD>
<WORD coords="834,733,964,698,729">(1&lt;&lt;6)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,826,270,797,826">//</WORD>
<WORD coords="292,834,444,797,825">Endpoint</WORD>
<WORD coords="465,830,490,797,828">1,</WORD>
<WORD coords="518,826,592,797,825">used</WORD>
<WORD coords="607,834,662,797,828">for</WORD>
<WORD coords="698,834,895,797,825">transferring</WORD>
<WORD coords="935,826,1030,802,825">status</WORD>
<WORD coords="1064,834,1256,797,826">information</WORD>
<WORD coords="1268,825,1277,807,0">:</WORD>
</LINE>
<LINE>
<WORD coords="241,876,269,847,876">//</WORD>
<WORD coords="292,875,367,847,875">Bulk</WORD>
<WORD coords="385,880,435,848,875">IN,</WORD>
<WORD coords="461,875,481,847,875">8</WORD>
<WORD coords="501,884,568,847,875">byte</WORD>
<WORD coords="591,876,684,847,875">FIFO</WORD>
</LINE>
<LINE>
<WORD coords="241,926,270,897,926">//</WORD>
<WORD coords="299,926,398,897,925">Filled</WORD>
<WORD coords="424,934,461,897,926">by</WORD>
<WORD coords="486,926,610,897,925">&quot;NAK—</WORD>
<WORD coords="614,926,684,898,926">IN—</WORD>
<WORD coords="690,926,794,897,925">WAS—</WORD>
<WORD coords="799,926,923,897,925">SEND”</WORD>
<WORD coords="935,926,994,897,925">ISR</WORD>
</LINE>
<LINE>
<WORD coords="236,975,363,946,975">#define</WORD>
<WORD coords="386,976,644,947,975">EPl_FIFO_Size</WORD>
<WORD coords="658,976,674,947,976">8</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1075,270,1046,1075">//</WORD>
<WORD coords="292,1083,444,1046,1074">Endpoint</WORD>
<WORD coords="463,1079,490,1046,1077">2,</WORD>
<WORD coords="518,1075,593,1046,1074">used</WORD>
<WORD coords="607,1083,662,1046,1077">for</WORD>
<WORD coords="698,1083,895,1046,1074">transferring</WORD>
<WORD coords="927,1082,1008,1046,1074">DAQ</WORD>
<WORD coords="1020,1075,1104,1046,1074">data:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1125,269,1096,1125">//</WORD>
<WORD coords="292,1124,368,1096,1124">Bulk</WORD>
<WORD coords="385,1129,435,1097,1124">IN,</WORD>
<WORD coords="461,1124,501,1096,1124">64</WORD>
<WORD coords="520,1133,586,1096,1124">byte</WORD>
<WORD coords="611,1125,683,1096,1124">dual</WORD>
<WORD coords="704,1124,784,1096,1124">bank</WORD>
<WORD coords="796,1125,890,1096,1124">FIFO</WORD>
</LINE>
<LINE>
<WORD coords="241,1175,270,1146,1175">//</WORD>
<WORD coords="299,1175,397,1146,1174">Filled</WORD>
<WORD coords="417,1183,498,1146,1176">from</WORD>
<WORD coords="521,1175,621,1146,1174">within</WORD>
<WORD coords="652,1174,738,1147,1174">timer</WORD>
<WORD coords="759,1175,817,1146,1174">ISR</WORD>
</LINE>
<LINE>
<WORD coords="236,1224,363,1195,1224">#define</WORD>
<WORD coords="388,1224,453,1196,1224">EP2</WORD>
<WORD coords="470,1225,558,1196,1224">FIFO</WORD>
<WORD coords="576,1225,644,1196,1224">Size</WORD>
<WORD coords="657,1225,697,1196,1224">64</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1324,270,1295,1324">//</WORD>
<WORD coords="292,1332,444,1295,1323">Endpoint</WORD>
<WORD coords="464,1328,490,1295,1326">3,</WORD>
<WORD coords="518,1324,592,1295,1323">used</WORD>
<WORD coords="614,1324,642,1300,1323">to</WORD>
<WORD coords="671,1324,717,1301,1324">set</WORD>
<WORD coords="752,1332,859,1295,1323">digital</WORD>
<WORD coords="889,1332,962,1301,1323">port</WORD>
<WORD coords="983,1323,1007,1296,1323">B</WORD>
</LINE>
<LINE>
<WORD coords="241,1374,269,1345,1374">//</WORD>
<WORD coords="292,1374,368,1344,1373">Bulk</WORD>
<WORD coords="388,1374,469,1345,1373">OUT</WORD>
<WORD coords="469,1378,474,1346,1378">;</WORD>
<WORD coords="490,1373,510,1345,1373">8</WORD>
<WORD coords="522,1381,589,1345,1373">byte</WORD>
<WORD coords="609,1374,703,1345,1373">FIFO</WORD>
</LINE>
<LINE>
<WORD coords="241,1424,269,1395,1424">//</WORD>
<WORD coords="292,1424,377,1395,1423">Read</WORD>
<WORD coords="388,1432,426,1395,1423">by</WORD>
<WORD coords="448,1424,576,1395,1423">&quot;OUT—</WORD>
<WORD coords="580,1424,703,1395,1423">FIFO—</WORD>
<WORD coords="706,1424,770,1395,1423">IS—</WORD>
<WORD coords="773,1423,935,1395,1423">FILLED”</WORD>
<WORD coords="947,1424,1006,1395,1423">ISR</WORD>
</LINE>
<LINE>
<WORD coords="236,1473,363,1444,1473">#define</WORD>
<WORD coords="386,1474,452,1445,1473">EP3</WORD>
<WORD coords="470,1474,558,1445,1473">FIFO</WORD>
<WORD coords="576,1474,644,1445,1473">Size</WORD>
<WORD coords="658,1474,674,1445,1474">8</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1572,363,1543,1572">#define</WORD>
<WORD coords="386,1581,600,1544,1572">MaxSamples</WORD>
<WORD coords="613,1573,713,1544,1573">65535</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1673,270,1644,1673">//</WORD>
<WORD coords="298,1673,397,1644,1672">Status</WORD>
<WORD coords="424,1673,516,1644,1673">codes</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1722,363,1693,1722">#define</WORD>
<WORD coords="387,1723,682,1694,1722">UsbDevStatusOK</WORD>
<WORD coords="693,1723,712,1694,1723">0</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1772,363,1743,1772">#define</WORD>
<WORD coords="387,1779,984,1744,1772">UsbDevStatusDAQ_BufferOverflow</WORD>
<WORD coords="1000,1772,1011,1744,1772">1</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1821,363,1792,1821">#define</WORD>
<WORD coords="388,1822,412,1793,1822">U</WORD>
<WORD coords="417,1821,429,1802,1821">s</WORD>
<WORD coords="433,1821,450,1793,1821">b</WORD>
<WORD coords="455,1821,519,1794,1821">Dev</WORD>
<WORD coords="522,1822,540,1793,1821">S</WORD>
<WORD coords="544,1821,554,1799,1821">t</WORD>
<WORD coords="557,1821,584,1798,1821">at</WORD>
<WORD coords="587,1821,603,1802,1821">u</WORD>
<WORD coords="607,1821,619,1802,1821">s</WORD>
<WORD coords="625,1821,650,1794,1821">D</WORD>
<WORD coords="653,1821,677,1794,1828">A</WORD>
<WORD coords="680,1828,706,1793,1828">Q</WORD>
<WORD coords="711,1822,754,1793,1821">_Ti</WORD>
<WORD coords="761,1821,788,1802,1821">m</WORD>
<WORD coords="791,1821,807,1802,1821">e</WORD>
<WORD coords="811,1821,839,1793,1821">if</WORD>
<WORD coords="841,1821,851,1794,1821">)</WORD>
<WORD coords="855,1821,889,1802,1821">vc</WORD>
<WORD coords="893,1821,905,1802,1821">r</WORD>
<WORD coords="907,1821,924,1793,1821">fl</WORD>
<WORD coords="929,1821,947,1802,1821">o</WORD>
<WORD coords="950,1821,977,1802,1821">w</WORD>
<WORD coords="989,1821,1007,1793,1821">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1871,363,1842,1871">#define</WORD>
<WORD coords="387,1878,1115,1843,1871">UsbDevStatusDAQ_ConversionNotFinished</WORD>
<WORD coords="1129,1872,1145,1843,1872">3</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1972,349,1942,1971">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0054.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0055.djvu" width="2481">
<PARAM name="PAGE" value="sources_0055.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1480,133,1633,103,132">deSnes.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,286,612,249,278">AT90USB/defines.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="290,336,391,299,327">Adapt</WORD>
<WORD coords="408,327,456,299,327">the</WORD>
<WORD coords="485,328,640,304,327">constants</WORD>
<WORD coords="670,327,697,300,327">in</WORD>
<WORD coords="731,328,788,299,327">this</WORD>
<WORD coords="821,336,876,299,331">file</WORD>
<WORD coords="913,328,942,304,328">to</WORD>
<WORD coords="963,336,1041,309,327">your</WORD>
<WORD coords="1063,336,1181,300,327">project</WORD>
</LINE>
<LINE>
<WORD coords="241,378,270,349,378">//</WORD>
<WORD coords="293,378,322,349,378">S.</WORD>
<WORD coords="351,378,494,349,377">Salewski</WORD>
<WORD coords="517,378,776,349,377">29-JAN-2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,476,366,447,476">#ifndef</WORD>
<WORD coords="388,477,631,448,476">_DEFINES_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,526,363,497,526">#define</WORD>
<WORD coords="388,527,568,498,526">.DEFINES</WORD>
<WORD coords="574,527,631,499,526">_H_</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="386,627,527,598,626">DEBUG</WORD>
<WORD coords="536,627,565,598,627">//</WORD>
<WORD coords="573,627,649,598,626">send</WORD>
<WORD coords="659,635,757,598,626">debug</WORD>
<WORD coords="770,635,924,608,626">messages</WORD>
<WORD coords="936,627,1010,608,626">over</WORD>
<WORD coords="1030,627,1124,598,626">serial</WORD>
<WORD coords="1151,635,1223,604,626">port</WORD>
</LINE>
<LINE>
<WORD coords="241,677,270,648,676">//</WORD>
<WORD coords="273,685,393,647,678">#undef</WORD>
<WORD coords="404,677,543,648,676">DEBUG</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,776,295,747,776">//#</WORD>
<WORD coords="300,784,397,747,778">define</WORD>
<WORD coords="422,776,585,747,775">NOUART</WORD>
<WORD coords="591,776,620,747,776">//</WORD>
<WORD coords="626,776,667,747,776">do</WORD>
<WORD coords="678,776,732,752,775">not</WORD>
<WORD coords="743,776,795,757,775">use</WORD>
<WORD coords="823,776,976,747,775">usartjjrv</WORD>
<WORD coords="988,776,1020,757,776">.c</WORD>
<WORD coords="1042,776,1074,753,775">at</WORD>
<WORD coords="1102,775,1144,747,775">all</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,825,360,796,825">#undef</WORD>
<WORD coords="369,826,537,797,825">NOUART</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,925,363,896,925">#define</WORD>
<WORD coords="386,925,408,897,925">F</WORD>
<WORD coords="426,925,530,897,925">XTAL</WORD>
<WORD coords="689,926,849,897,925">16000000</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="323,976,393,947,975">USB</WORD>
<WORD coords="407,976,432,948,975">is</WORD>
<WORD coords="452,976,535,947,975">used.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1024,363,995,1024">#define</WORD>
<WORD coords="386,1025,502,996,1024">F_CPU</WORD>
<WORD coords="689,1025,905,996,1024">16000000UL</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1074,363,1045,1074">#define</WORD>
<WORD coords="387,1075,435,1046,1075">US</WORD>
<WORD coords="439,1074,518,1046,1074">ART</WORD>
<WORD coords="522,1075,646,1046,1074">.BAUD</WORD>
<WORD coords="685,1075,822,1046,1074">9600UL</WORD>
</LINE>
<LINE>
<WORD coords="236,1124,363,1095,1124">#define</WORD>
<WORD coords="387,1125,621,1096,1124">UART.BAUD</WORD>
<WORD coords="686,1125,734,1096,1125">US</WORD>
<WORD coords="738,1124,817,1096,1124">ART</WORD>
<WORD coords="821,1125,944,1096,1124">.BAUD</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="988,926,1018,897,926">//</WORD>
<WORD coords="1038,925,1134,897,925">XTAL</WORD>
<WORD coords="1138,934,1306,897,926">frequency</WORD>
<WORD coords="1324,932,1406,897,926">(Hz).</WORD>
<WORD coords="1435,926,1494,898,925">Use</WORD>
<WORD coords="1506,926,1525,907,926">a</WORD>
<WORD coords="1553,934,1665,897,925">crystal</WORD>
<WORD coords="1695,926,1764,897,925">with</WORD>
<WORD coords="1789,930,1815,897,928">2,</WORD>
<WORD coords="1846,929,1871,897,927">4,</WORD>
<WORD coords="1902,930,1927,897,928">6,</WORD>
<WORD coords="1958,930,1984,897,928">8,</WORD>
<WORD coords="2013,925,2050,897,925">12</WORD>
<WORD coords="2068,925,2104,907,925">or</WORD>
<WORD coords="2125,925,2163,897,925">16</WORD>
<WORD coords="2178,928,2258,898,926">MHz</WORD>
<WORD coords="2272,934,2299,897,929">if</WORD>
<WORD coords="2323,925,2338,895,929">2</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="988,1025,1018,996,1025">//</WORD>
<WORD coords="1040,1033,1109,1006,1024">mpu</WORD>
<WORD coords="1115,1033,1283,996,1025">frequency</WORD>
<WORD coords="1305,1033,1388,996,1024">(may</WORD>
<WORD coords="1400,1024,1436,996,1024">be</WORD>
<WORD coords="1454,1025,1577,996,1024">divided</WORD>
<WORD coords="1600,1033,1638,996,1025">by</WORD>
<WORD coords="1659,1033,1834,996,1024">prescaler,</WORD>
<WORD coords="1870,1033,1984,996,1025">default</WORD>
<WORD coords="2014,1033,2173,996,1024">prescaler</WORD>
<WORD coords="2204,1024,2228,997,1024">is</WORD>
<WORD coords="2256,1029,2287,996,1026">8)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="988,1075,1018,1046,1075">//</WORD>
<WORD coords="1040,1081,1135,1046,1074">baud(</WORD>
<WORD coords="1140,1075,1203,1051,1074">rate</WORD>
<WORD coords="1212,1079,1221,1046,1083">)</WORD>
<WORD coords="1242,1083,1298,1046,1077">for</WORD>
<WORD coords="1329,1075,1422,1046,1074">serial</WORD>
<WORD coords="1450,1083,1522,1052,1074">port</WORD>
</LINE>
<LINE>
<WORD coords="988,1125,1018,1096,1125">//</WORD>
<WORD coords="1046,1125,1125,1096,1124">alias</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="236,1224,349,1195,1224">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0055.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0056.djvu" width="2481">
<PARAM name="PAGE" value="sources_0056.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,137">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,749,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,128">—</WORD>
<WORD coords="1479,133,1639,104,132">macros.h</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2419,104,132">57</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,278,270,249,278">//</WORD>
<WORD coords="290,278,618,249,277">AT90USB/macros.h</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,328,270,299,328">//</WORD>
<WORD coords="293,328,322,299,328">S.</WORD>
<WORD coords="351,328,494,299,327">Salewski</WORD>
<WORD coords="516,328,776,299,327">29-JAN-2007</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,427,366,398,427">#ifndef</WORD>
<WORD coords="402,428,569,399,427">MACROS</WORD>
<WORD coords="591,427,614,400,427">H</WORD>
</LINE>
<LINE>
<WORD coords="236,476,363,447,476">#define</WORD>
<WORD coords="388,477,632,448,476">_MACROS_H_</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,576,363,547,576">#define</WORD>
<WORD coords="386,583,529,548,576">MSB(w)</WORD>
<WORD coords="543,582,682,548,576">((char*)</WORD>
<WORD coords="696,583,815,548,576">&amp;w)[l]</WORD>
</LINE>
<LINE>
<WORD coords="236,626,363,597,626">#define</WORD>
<WORD coords="386,633,517,598,626">LSB(w)</WORD>
<WORD coords="531,633,670,598,626">((char*)</WORD>
<WORD coords="686,633,805,598,626">&amp;w)[0]</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,726,349,697,726">#endif</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0056.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0057.djvu" width="2481">
<PARAM name="PAGE" value="sources_0057.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1478,133,1849,103,132">AT90USB-Errata.txt</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2380,133,2418,104,133">58</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,277,374,249,277">ATMEL</WORD>
<WORD coords="385,278,555,249,277">AT90USB</WORD>
<WORD coords="569,278,731,249,277">Datasheet</WORD>
<WORD coords="744,284,981,249,277">(7593D-AVR</WORD>
<WORD coords="998,281,1122,249,276">-07/06)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,377,331,349,377">There</WORD>
<WORD coords="358,377,449,349,377">exists</WORD>
<WORD coords="481,377,565,358,377">some</WORD>
<WORD coords="583,377,677,358,377">errors</WORD>
<WORD coords="705,377,739,358,377">or</WORD>
<WORD coords="763,378,792,354,377">at</WORD>
<WORD coords="824,377,899,349,377">least</WORD>
<WORD coords="932,377,1053,349,377">unclear</WORD>
<WORD coords="1084,378,1255,354,377">statements</WORD>
<WORD coords="1285,378,1317,358,378">as</WORD>
<WORD coords="1350,377,1437,349,377">listed</WORD>
<WORD coords="1469,377,1577,349,377">below:</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,477,309,448,476">21.4</WORD>
<WORD coords="330,477,459,448,476">General</WORD>
<WORD coords="481,485,644,448,476">Operating</WORD>
<WORD coords="666,476,776,448,476">Modes</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,526,342,498,450">21.4.2</WORD>
<WORD coords="367,526,501,498,526">Power—</WORD>
<WORD coords="505,527,545,507,526">on</WORD>
<WORD coords="558,526,615,498,526">and</WORD>
<WORD coords="626,526,704,503,526">reset</WORD>
<WORD coords="726,535,817,499,526">(page</WORD>
<WORD coords="834,533,908,498,528">253)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,576,299,548,576">The</WORD>
<WORD coords="313,577,497,548,576">SPDCONF</WORD>
<WORD coords="508,576,566,548,576">bits</WORD>
<WORD coords="579,576,635,557,576">can</WORD>
<WORD coords="646,576,684,548,576">be</WORD>
<WORD coords="698,576,741,553,576">set</WORD>
<WORD coords="759,585,800,548,576">by</WORD>
<WORD coords="820,576,959,548,576">software</WORD>
<WORD coords="971,576,975,572,576">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,626,253,598,626">!</WORD>
<WORD coords="262,626,267,598,626">!</WORD>
<WORD coords="276,626,281,598,633">!</WORD>
<WORD coords="311,633,526,598,626">QUESTION:</WORD>
<WORD coords="540,626,629,598,626">What</WORD>
<WORD coords="641,626,665,598,626">is</WORD>
<WORD coords="680,627,865,598,626">SPDCONF</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,735,345,698,726">Figure</WORD>
<WORD coords="367,726,403,698,726">21</WORD>
<WORD coords="411,717,437,715,721">—</WORD>
<WORD coords="445,726,489,698,726">12.</WORD>
<WORD coords="505,727,581,698,726">USB</WORD>
<WORD coords="595,735,830,698,726">Endpoint/Pipe</WORD>
<WORD coords="850,735,994,698,726">Interrupt</WORD>
<WORD coords="1026,726,1128,703,726">vector</WORD>
<WORD coords="1156,726,1276,707,726">sources</WORD>
<WORD coords="1305,735,1396,698,726">(page</WORD>
<WORD coords="1414,733,1487,698,728">256)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,784,345,747,775">Figure</WORD>
<WORD coords="367,776,468,747,773">22—5.</WORD>
<WORD coords="484,776,560,747,775">USB</WORD>
<WORD coords="574,775,688,747,775">Device</WORD>
<WORD coords="701,776,871,747,775">Controller</WORD>
<WORD coords="891,784,1041,747,775">Endpoint</WORD>
<WORD coords="1070,784,1214,748,775">Interrupt</WORD>
<WORD coords="1246,784,1366,747,775">System</WORD>
<WORD coords="1381,784,1471,748,775">(page</WORD>
<WORD coords="1488,782,1562,747,777">280)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,826,401,797,825">TXOUTE</WORD>
<WORD coords="413,826,595,797,825">UEIENX.3</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,875,253,847,875">!</WORD>
<WORD coords="262,875,267,847,875">!</WORD>
<WORD coords="276,875,281,847,875">!</WORD>
<WORD coords="310,875,408,847,875">Name</WORD>
<WORD coords="421,876,586,847,875">TXOUTE</WORD>
<WORD coords="598,875,706,847,875">should</WORD>
<WORD coords="717,875,755,847,875">be</WORD>
<WORD coords="768,876,921,847,875">RXSTPE</WORD>
<WORD coords="933,875,980,847,875">for</WORD>
<WORD coords="992,875,1235,847,875">Device-Mode</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,984,345,947,975">Figure</WORD>
<WORD coords="367,975,403,947,975">21</WORD>
<WORD coords="411,966,437,964,970">—</WORD>
<WORD coords="445,975,490,947,975">12.</WORD>
<WORD coords="505,976,581,947,975">USB</WORD>
<WORD coords="595,984,830,947,975">Endpoint/Pipe</WORD>
<WORD coords="850,984,994,948,975">Interrupt</WORD>
<WORD coords="1026,975,1128,952,975">vector</WORD>
<WORD coords="1156,975,1276,956,975">sources</WORD>
<WORD coords="1305,984,1396,947,975">(page</WORD>
<WORD coords="1414,982,1487,947,977">256)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1033,345,996,1024">Figure</WORD>
<WORD coords="367,1025,468,996,1023">23—5.</WORD>
<WORD coords="483,1025,560,996,1024">USB</WORD>
<WORD coords="574,1024,688,996,1024">Device</WORD>
<WORD coords="701,1025,871,996,1024">Controller</WORD>
<WORD coords="891,1033,962,996,1024">Pipe</WORD>
<WORD coords="995,1033,1139,997,1024">Interrupt</WORD>
<WORD coords="1172,1033,1292,996,1024">System</WORD>
<WORD coords="1306,1033,1396,996,1024">(page</WORD>
<WORD coords="1415,1031,1487,996,1026">300)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1075,357,1046,1074">UPIEN</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1124,281,1096,1124">!!!</WORD>
<WORD coords="296,1125,419,1096,1124">Correct</WORD>
<WORD coords="441,1125,539,1096,1124">Name</WORD>
<WORD coords="552,1124,587,1096,1124">of</WORD>
<WORD coords="607,1133,730,1096,1124">register</WORD>
<WORD coords="765,1124,789,1096,1124">is</WORD>
<WORD coords="816,1125,966,1096,1124">UPIENX</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1225,339,1196,1224">21.6.1</WORD>
<WORD coords="367,1224,482,1196,1224">Device</WORD>
<WORD coords="498,1224,588,1196,1224">mode</WORD>
<WORD coords="602,1233,691,1196,1224">(page</WORD>
<WORD coords="704,1231,777,1196,1226">258)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1273,281,1245,1273">!!!</WORD>
<WORD coords="312,1274,413,1245,1273">UDSS</WORD>
<WORD coords="428,1282,552,1245,1273">register</WORD>
<WORD coords="573,1273,745,1245,1273">mentioned</WORD>
<WORD coords="762,1273,793,1245,1273">in</WORD>
<WORD coords="822,1273,882,1250,1273">text</WORD>
<WORD coords="909,1273,982,1245,1273">does</WORD>
<WORD coords="1004,1273,1056,1250,1273">not</WORD>
<WORD coords="1086,1273,1177,1245,1273">exists</WORD>
<WORD coords="1196,1274,1201,1269,1274">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1374,342,1345,1373">21.6.2</WORD>
<WORD coords="367,1373,444,1346,1373">Host</WORD>
<WORD coords="461,1373,551,1345,1373">mode</WORD>
<WORD coords="564,1382,653,1345,1373">(page</WORD>
<WORD coords="666,1380,740,1345,1375">259)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1423,334,1395,1423">When</WORD>
<WORD coords="346,1423,395,1395,1423">the</WORD>
<WORD coords="407,1424,484,1395,1423">USB</WORD>
<WORD coords="501,1423,643,1395,1423">interface</WORD>
<WORD coords="671,1424,696,1395,1423">is</WORD>
<WORD coords="727,1432,902,1395,1423">configured</WORD>
<WORD coords="930,1423,961,1395,1423">in</WORD>
<WORD coords="986,1423,1091,1395,1423">device</WORD>
<WORD coords="1115,1426,1214,1395,1423">mode,</WORD>
<WORD coords="1239,1423,1363,1395,1423">internal</WORD>
<WORD coords="1399,1423,1463,1395,1423">Pull</WORD>
<WORD coords="1488,1423,1587,1396,1423">Down</WORD>
<WORD coords="1604,1423,1740,1395,1423">resistors</WORD>
<WORD coords="1772,1423,1819,1404,1423">are</WORD>
<WORD coords="1853,1423,1998,1395,1423">activated</WORD>
</LINE>
<LINE>
<WORD coords="237,1473,276,1454,1473">on</WORD>
<WORD coords="292,1473,365,1445,1473">both</WORD>
<WORD coords="387,1474,467,1445,1473">UDP</WORD>
<WORD coords="481,1474,575,1445,1473">UDM</WORD>
<WORD coords="587,1473,662,1445,1473">lines</WORD>
<WORD coords="677,1473,733,1445,1473">and</WORD>
<WORD coords="746,1473,794,1445,1473">the</WORD>
<WORD coords="814,1473,956,1445,1473">interface</WORD>
<WORD coords="992,1474,1105,1445,1473">detects</WORD>
<WORD coords="1136,1473,1184,1445,1473">the</WORD>
<WORD coords="1210,1482,1279,1450,1473">type</WORD>
<WORD coords="1303,1473,1339,1445,1473">of</WORD>
<WORD coords="1360,1473,1465,1445,1473">device</WORD>
<WORD coords="1488,1473,1654,1445,1473">connected</WORD>
<WORD coords="1663,1473,1667,1469,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1523,281,1495,1523">!!!</WORD>
<WORD coords="317,1523,341,1495,1523">It</WORD>
<WORD coords="369,1523,476,1495,1523">should</WORD>
<WORD coords="497,1523,535,1495,1523">be</WORD>
<WORD coords="567,1524,613,1495,1520">”...</WORD>
<WORD coords="634,1532,809,1495,1523">configured</WORD>
<WORD coords="837,1523,868,1495,1523">in</WORD>
<WORD coords="893,1524,961,1495,1523">host</WORD>
<WORD coords="984,1526,1140,1495,1523">mode,...”</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,1623,359,1594,1622">21.12.1</WORD>
<WORD coords="386,1623,463,1594,1622">USB</WORD>
<WORD coords="477,1631,597,1594,1622">general</WORD>
<WORD coords="623,1631,761,1594,1622">registers</WORD>
<WORD coords="801,1631,892,1594,1622">(page</WORD>
<WORD coords="909,1629,982,1594,1624">264)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="236,1672,256,1644,1672">4</WORD>
<WORD coords="277,1663,302,1661,1668">-</WORD>
<WORD coords="317,1673,512,1644,1672">OTGPADE:</WORD>
<WORD coords="527,1673,609,1644,1672">OTG</WORD>
<WORD coords="621,1672,681,1644,1672">Pad</WORD>
<WORD coords="693,1673,806,1644,1672">Enable</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,1723,290,1694,1722">Set</WORD>
<WORD coords="314,1722,345,1699,1722">to</WORD>
<WORD coords="369,1722,475,1694,1722">enable</WORD>
<WORD coords="501,1722,549,1694,1722">the</WORD>
<WORD coords="573,1723,655,1694,1722">OTG</WORD>
<WORD coords="666,1731,733,1694,1722">pad.</WORD>
<WORD coords="748,1723,837,1694,1722">Clear</WORD>
<WORD coords="856,1722,886,1699,1722">to</WORD>
<WORD coords="916,1723,1031,1694,1722">disable</WORD>
<WORD coords="1061,1722,1110,1694,1722">the</WORD>
<WORD coords="1133,1723,1215,1694,1722">OTG</WORD>
<WORD coords="1226,1731,1293,1694,1722">pad.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1772,281,1744,1772">!!!</WORD>
<WORD coords="312,1772,383,1744,1772">This</WORD>
<WORD coords="410,1772,453,1744,1772">bit</WORD>
<WORD coords="481,1772,579,1753,1772">seems</WORD>
<WORD coords="594,1772,624,1749,1772">to</WORD>
<WORD coords="647,1772,684,1744,1772">be</WORD>
<WORD coords="707,1781,867,1744,1772">important</WORD>
<WORD coords="893,1772,924,1749,1772">to</WORD>
<WORD coords="958,1772,1082,1744,1772">activate</WORD>
<WORD coords="1117,1772,1166,1744,1772">the</WORD>
<WORD coords="1190,1773,1265,1744,1772">USB</WORD>
<WORD coords="1280,1777,1395,1744,1772">device,</WORD>
<WORD coords="1414,1772,1466,1744,1772">but</WORD>
<WORD coords="1497,1772,1533,1744,1772">its</WORD>
<WORD coords="1564,1772,1616,1749,1772">not</WORD>
<WORD coords="1644,1772,1724,1744,1772">clear</WORD>
</LINE>
<LINE>
<WORD coords="248,1821,253,1793,1821">!</WORD>
<WORD coords="262,1821,267,1793,1821">!</WORD>
<WORD coords="276,1821,281,1793,1821">!</WORD>
<WORD coords="311,1830,380,1793,1821">why</WORD>
<WORD coords="394,1821,450,1793,1821">and</WORD>
<WORD coords="463,1822,543,1793,1821">what</WORD>
<WORD coords="554,1822,636,1793,1821">OTG</WORD>
<WORD coords="649,1821,708,1793,1821">Pad</WORD>
<WORD coords="721,1822,756,1793,1821">is.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1922,326,1893,1601">21.13</WORD>
<WORD coords="349,1922,426,1893,1921">USB</WORD>
<WORD coords="441,1922,587,1893,1921">Software</WORD>
<WORD coords="600,1930,763,1893,1921">Operating</WORD>
<WORD coords="778,1922,884,1893,1921">modes</WORD>
<WORD coords="898,1930,987,1893,1921">(page</WORD>
<WORD coords="1003,1928,1076,1893,1923">267)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1971,313,1943,1971">Wait</WORD>
<WORD coords="331,1972,407,1943,1971">USB</WORD>
<WORD coords="420,1980,494,1943,1971">pads</WORD>
<WORD coords="511,1980,661,1943,1971">regulator</WORD>
<WORD coords="685,1980,776,1943,1971">ready</WORD>
<WORD coords="807,1971,879,1948,1971">state</WORD>
</LINE>
<LINE>
<WORD coords="248,2021,253,1993,2021">!</WORD>
<WORD coords="262,2021,267,1993,2021">!</WORD>
<WORD coords="276,2021,281,1993,2021">!</WORD>
<WORD coords="311,2021,389,1994,2021">How</WORD>
<WORD coords="401,2021,431,1998,2021">to</WORD>
<WORD coords="450,2021,547,1993,2021">detect</WORD>
<WORD coords="573,2030,664,1993,2021">ready</WORD>
<WORD coords="695,2021,767,1998,2021">state</WORD>
<WORD coords="781,2021,795,1993,2021">?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2121,326,2092,2120">21.13</WORD>
<WORD coords="350,2121,426,2092,2120">USB</WORD>
<WORD coords="441,2121,587,2092,2120">Software</WORD>
<WORD coords="600,2129,763,2092,2120">Operating</WORD>
<WORD coords="778,2120,884,2092,2120">modes</WORD>
<WORD coords="898,2129,987,2092,2120">(page</WORD>
<WORD coords="1003,2127,1076,2092,2122">268)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2171,290,2142,2170">Set</WORD>
<WORD coords="312,2171,388,2142,2170">USB</WORD>
<WORD coords="404,2179,534,2142,2170">suspend</WORD>
<WORD coords="547,2170,636,2142,2170">clock</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,2221,328,2192,2220">Clear</WORD>
<WORD coords="350,2221,426,2192,2220">USB</WORD>
<WORD coords="441,2229,571,2192,2220">suspend</WORD>
<WORD coords="584,2220,673,2192,2220">clock</WORD>
</LINE>
<LINE>
<WORD coords="248,2270,253,2242,2270">!</WORD>
<WORD coords="262,2270,267,2242,2270">!</WORD>
<WORD coords="276,2270,281,2242,2270">!</WORD>
<WORD coords="311,2270,400,2242,2270">What</WORD>
<WORD coords="413,2270,438,2242,2270">is</WORD>
<WORD coords="462,2279,592,2242,2270">suspend</WORD>
<WORD coords="612,2270,701,2242,2270">clock</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,2370,308,2341,2369">22.6</WORD>
<WORD coords="330,2378,480,2341,2369">Endpoint</WORD>
<WORD coords="509,2370,654,2341,2369">selection</WORD>
<WORD coords="688,2378,780,2341,2369">(page</WORD>
<WORD coords="797,2376,870,2341,2371">270)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2428,380,2391,2419">Clearing</WORD>
<WORD coords="405,2420,569,2391,2419">EPNUMS</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,2469,253,2441,2469">!</WORD>
<WORD coords="262,2469,267,2441,2469">!</WORD>
<WORD coords="276,2469,281,2441,2469">!</WORD>
<WORD coords="317,2478,454,2441,2469">Register</WORD>
<WORD coords="480,2470,644,2441,2469">EPNUMS</WORD>
<WORD coords="658,2469,731,2441,2469">does</WORD>
<WORD coords="745,2469,796,2446,2469">not</WORD>
<WORD coords="808,2469,899,2441,2469">exists</WORD>
<WORD coords="906,2469,911,2441,0">!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="239,2578,345,2541,2569">Figure</WORD>
<WORD coords="367,2569,468,2541,2567">22—2.</WORD>
<WORD coords="483,2578,632,2541,2569">Endpoint</WORD>
<WORD coords="660,2570,820,2541,2569">activation</WORD>
<WORD coords="855,2569,938,2541,2569">flow:</WORD>
<WORD coords="969,2578,1060,2542,2569">(page</WORD>
<WORD coords="1077,2576,1151,2541,2570">271)</WORD>
</LINE>
<LINE>
<WORD coords="239,2618,288,2590,2618">the</WORD>
<WORD coords="311,2618,372,2590,2618">Not</WORD>
<WORD coords="386,2618,441,2590,2618">Yet</WORD>
<WORD coords="463,2619,587,2590,2618">Disable</WORD>
<WORD coords="618,2618,731,2590,2618">feature</WORD>
</LINE>
<LINE>
<WORD coords="248,2668,253,2640,2668">!</WORD>
<WORD coords="262,2668,267,2640,2668">!</WORD>
<WORD coords="276,2668,281,2640,2668">!</WORD>
<WORD coords="311,2668,400,2640,2668">What</WORD>
<WORD coords="413,2668,438,2640,2668">is</WORD>
<WORD coords="464,2668,512,2640,2668">the</WORD>
<WORD coords="535,2668,596,2640,2668">Not</WORD>
<WORD coords="610,2668,665,2640,2668">Yet</WORD>
<WORD coords="687,2669,811,2640,2668">Disable</WORD>
<WORD coords="842,2668,955,2640,2668">feature</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2769,326,2740,2768">22.13</WORD>
<WORD coords="349,2769,542,2740,2768">CONTROL</WORD>
<WORD coords="554,2777,697,2740,2768">endpoint</WORD>
<WORD coords="709,2777,920,2745,2768">management</WORD>
<WORD coords="933,2777,1021,2740,2768">(page</WORD>
<WORD coords="1034,2775,1108,2740,2769">274)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,2819,430,2790,2818">CONTROL</WORD>
<WORD coords="441,2827,600,2790,2818">endpoints</WORD>
<WORD coords="614,2818,721,2790,2818">should</WORD>
<WORD coords="734,2818,786,2795,2818">not</WORD>
<WORD coords="797,2818,835,2790,2818">be</WORD>
<WORD coords="847,2827,994,2790,2818">managed</WORD>
<WORD coords="1007,2827,1047,2790,2818">by</WORD>
<WORD coords="1064,2827,1220,2790,2818">interrupts</WORD>
<WORD coords="1232,2824,1238,2814,2824">,</WORD>
<WORD coords="1265,2818,1317,2790,2818">but</WORD>
<WORD coords="1339,2827,1410,2790,2818">only</WORD>
<WORD coords="1431,2827,1472,2790,2818">by</WORD>
<WORD coords="1494,2827,1610,2790,2818">polling</WORD>
<WORD coords="1640,2818,1689,2790,2818">the</WORD>
<WORD coords="1722,2819,1813,2795,2818">status</WORD>
<WORD coords="1850,2818,1907,2790,2818">bits</WORD>
<WORD coords="1924,2819,1929,2814,2819">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,2868,281,2840,2868">!!!</WORD>
<WORD coords="311,2868,400,2840,2868">What</WORD>
<WORD coords="412,2868,485,2840,2868">does</WORD>
<WORD coords="506,2868,563,2840,2868">this</WORD>
<WORD coords="592,2868,698,2840,2868">mean?</WORD>
<WORD coords="710,2877,807,2840,2868">Using</WORD>
<WORD coords="832,2877,988,2840,2868">interrupts</WORD>
<WORD coords="1022,2868,1121,2849,2868">seems</WORD>
<WORD coords="1136,2868,1165,2845,2868">to</WORD>
<WORD coords="1189,2868,1274,2840,2868">work</WORD>
<WORD coords="1291,2868,1374,2840,2868">fine?</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,2968,362,2939,2967">22.12.2</WORD>
<WORD coords="387,2968,510,2939,2967">STALL</WORD>
<WORD coords="522,2967,694,2939,2967">handshake</WORD>
<WORD coords="708,2967,764,2939,2967">and</WORD>
<WORD coords="777,2976,867,2940,2967">Retry</WORD>
<WORD coords="880,2967,1068,2939,2967">mechanism</WORD>
<WORD coords="1080,2976,1169,2939,2967">(page</WORD>
<WORD coords="1182,2974,1255,2939,2968">274)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,3017,299,2989,3017">The</WORD>
<WORD coords="312,3026,403,2990,3017">Retry</WORD>
<WORD coords="424,3017,611,2989,3017">mechanism</WORD>
<WORD coords="623,3018,676,2989,3017">has</WORD>
<WORD coords="698,3026,822,2989,3017">priority</WORD>
<WORD coords="854,3017,926,2998,3017">over</WORD>
<WORD coords="949,3017,998,2989,3017">the</WORD>
<WORD coords="1022,3018,1145,2989,3017">STALL</WORD>
<WORD coords="1157,3017,1338,2989,3017">handshake.</WORD>
<WORD coords="1352,3017,1380,2989,3017">A</WORD>
<WORD coords="1394,3018,1517,2989,3017">STALL</WORD>
<WORD coords="1528,3017,1701,2989,3017">handshake</WORD>
<WORD coords="1714,3017,1738,2989,3017">is</WORD>
<WORD coords="1753,3017,1816,2994,3017">sent</WORD>
<WORD coords="1833,3017,1859,2989,3017">if</WORD>
<WORD coords="1883,3017,1932,2989,3017">the</WORD>
</LINE>
<LINE>
<WORD coords="238,3074,418,3039,3067">STALLRQ</WORD>
<WORD coords="430,3076,548,3044,3067">request</WORD>
<WORD coords="559,3067,603,3039,3067">bit</WORD>
<WORD coords="617,3067,642,3039,3067">is</WORD>
<WORD coords="672,3067,716,3044,3067">set</WORD>
<WORD coords="742,3067,798,3039,3067">and</WORD>
<WORD coords="822,3067,848,3039,3067">if</WORD>
<WORD coords="877,3067,958,3039,3067">there</WORD>
<WORD coords="989,3067,1013,3039,3067">is</WORD>
<WORD coords="1040,3067,1079,3048,3067">no</WORD>
<WORD coords="1103,3076,1179,3044,3067">retry</WORD>
<WORD coords="1213,3076,1350,3039,3067">required</WORD>
<WORD coords="1364,3067,1368,3063,3067">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,3117,281,3089,3117">!!!</WORD>
<WORD coords="311,3117,400,3089,3117">What</WORD>
<WORD coords="413,3117,438,3089,3117">is</WORD>
<WORD coords="464,3117,512,3089,3117">the</WORD>
<WORD coords="536,3126,644,3089,3117">’’Retry</WORD>
<WORD coords="666,3118,890,3089,3117">mechanism”?</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0057.djvu"/>
<OBJECT data="file://localhost//var/tmp/autoclean/derive/AtmelAVRUSB//sources.djvu" height="3508" type="image/x.djvu" usemap="sources_0058.djvu" width="2481">
<PARAM name="PAGE" value="sources_0058.djvu"/>
<PARAM name="DPI" value="300"/>
<HIDDENTEXT>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="237,132,310,104,132">Free</WORD>
<WORD coords="323,137,336,105,133">(</WORD>
<WORD coords="337,139,426,104,132">GPL)</WORD>
<WORD coords="442,133,516,104,132">USB</WORD>
<WORD coords="528,132,689,104,132">Firmware</WORD>
<WORD coords="700,132,750,104,132">for</WORD>
<WORD coords="759,132,877,104,132">Atmels</WORD>
<WORD coords="889,133,1060,104,132">AT90USB</WORD>
<WORD coords="1074,133,1151,104,132">8-bit</WORD>
<WORD coords="1161,141,1419,104,132">microprocessor</WORD>
<WORD coords="1427,124,1469,121,129">—</WORD>
<WORD coords="1478,133,1849,103,132">AT90USB-Errata.txt</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="2381,133,2419,104,133">59</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="0" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="240,328,359,299,327">22.19.1</WORD>
<WORD coords="386,328,462,299,327">USB</WORD>
<WORD coords="477,327,582,299,327">device</WORD>
<WORD coords="598,336,717,299,327">general</WORD>
<WORD coords="754,336,892,299,327">registers</WORD>
<WORD coords="931,336,1022,299,327">(page</WORD>
<WORD coords="1040,334,1113,299,329">281)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,378,309,349,375">2—0</WORD>
<WORD coords="323,368,349,366,372">—</WORD>
<WORD coords="363,378,554,349,377">FNUM10:8</WORD>
<WORD coords="570,368,596,366,372">—</WORD>
<WORD coords="609,378,714,349,377">Frame</WORD>
<WORD coords="727,377,862,349,377">Number</WORD>
<WORD coords="874,386,976,349,377">Upper</WORD>
<WORD coords="987,386,1059,349,377">Flag</WORD>
</LINE>
<LINE>
<WORD coords="237,428,355,399,427">FNUM</WORD>
<WORD coords="367,427,392,399,427">is</WORD>
<WORD coords="404,436,534,399,427">updated</WORD>
<WORD coords="547,427,574,399,427">if</WORD>
<WORD coords="592,428,609,408,428">a</WORD>
<WORD coords="634,436,790,399,427">corrupted</WORD>
<WORD coords="817,428,891,399,427">SOF</WORD>
<WORD coords="902,427,927,399,427">is</WORD>
<WORD coords="951,427,1088,399,427">received</WORD>
<WORD coords="1102,427,1106,423,427">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,476,253,448,476">!</WORD>
<WORD coords="262,476,267,448,476">!</WORD>
<WORD coords="276,476,281,448,477">!</WORD>
<WORD coords="314,485,438,448,476">Strange</WORD>
<WORD coords="466,476,623,453,476">statement</WORD>
<WORD coords="635,476,640,448,0">!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,577,362,548,576">22.19.2</WORD>
<WORD coords="386,577,463,548,576">USB</WORD>
<WORD coords="477,576,582,548,576">device</WORD>
<WORD coords="595,585,739,548,576">endpoint</WORD>
<WORD coords="772,585,896,548,576">register</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,627,309,598,624">6—0</WORD>
<WORD coords="323,616,349,615,621">—</WORD>
<WORD coords="363,627,539,598,626">EPRST6:0</WORD>
<WORD coords="553,617,579,614,621">—</WORD>
<WORD coords="594,635,745,598,626">Endpoint</WORD>
<WORD coords="757,627,844,598,626">FIFO</WORD>
<WORD coords="857,626,948,599,626">Reset</WORD>
<WORD coords="960,626,1023,598,626">Bits</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,681,329,648,676">Then,</WORD>
<WORD coords="354,676,472,648,676">cleared</WORD>
<WORD coords="497,685,538,648,677">by</WORD>
<WORD coords="559,676,698,648,676">software</WORD>
<WORD coords="725,676,755,653,676">to</WORD>
<WORD coords="778,685,928,648,676">complete</WORD>
<WORD coords="949,676,998,648,676">the</WORD>
<WORD coords="1028,676,1106,653,676">reset</WORD>
<WORD coords="1139,685,1294,648,676">operation</WORD>
<WORD coords="1321,676,1377,648,676">and</WORD>
<WORD coords="1407,677,1476,653,676">start</WORD>
<WORD coords="1508,685,1596,648,676">using</WORD>
<WORD coords="1622,676,1670,648,676">the</WORD>
<WORD coords="1696,685,1854,648,676">endpoint.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,726,281,698,726">!!!</WORD>
<WORD coords="315,727,343,698,726">Is</WORD>
<WORD coords="375,735,506,698,726">clearing</WORD>
<WORD coords="535,735,575,698,726">by</WORD>
<WORD coords="596,726,735,698,726">software</WORD>
<WORD coords="768,735,860,698,726">really</WORD>
<WORD coords="894,735,1075,698,726">necessary?</WORD>
<WORD coords="1097,726,1130,698,726">In</WORD>
<WORD coords="1152,727,1231,703,726">most</WORD>
<WORD coords="1254,726,1368,698,726">similar</WORD>
<WORD coords="1398,727,1482,707,726">cases</WORD>
<WORD coords="1514,726,1571,698,726">this</WORD>
<WORD coords="1605,726,1630,698,726">is</WORD>
<WORD coords="1656,726,1735,698,726">done</WORD>
<WORD coords="1749,735,1790,698,726">by</WORD>
<WORD coords="1806,726,1969,698,726">hardware!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="240,826,362,797,825">22.19.2</WORD>
<WORD coords="386,826,462,797,825">USB</WORD>
<WORD coords="477,825,582,797,825">device</WORD>
<WORD coords="595,834,738,797,825">endpoint</WORD>
<WORD coords="773,834,911,797,825">registers</WORD>
<WORD coords="950,834,1041,798,825">(page</WORD>
<WORD coords="1059,832,1132,797,828">285)</WORD>
<WORD coords="1154,825,1307,797,825">***NEW</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="243,884,379,847,875">Register</WORD>
<WORD coords="405,876,585,847,875">UECONX:</WORD>
<WORD coords="600,875,649,847,875">Bit</WORD>
<WORD coords="661,876,678,847,876">5</WORD>
<WORD coords="694,866,720,864,871">—</WORD>
<WORD coords="736,882,916,847,875">STALLRQ</WORD>
<WORD coords="930,866,956,864,871">—</WORD>
<WORD coords="972,876,1094,847,875">STALL</WORD>
<WORD coords="1106,884,1238,848,875">Request</WORD>
<WORD coords="1250,875,1432,847,875">Handshake</WORD>
<WORD coords="1445,875,1494,847,875">Bit</WORD>
<WORD coords="1506,875,1530,847,875">is</WORD>
<WORD coords="1544,875,1665,847,875">marked</WORD>
<WORD coords="1678,875,1838,847,875">WRITE—</WORD>
<WORD coords="1842,876,1951,847,875">ONLY</WORD>
</LINE>
<LINE>
<WORD coords="248,925,253,897,925">!</WORD>
<WORD coords="262,925,267,897,925">!</WORD>
<WORD coords="276,925,281,897,925">!</WORD>
<WORD coords="312,925,383,897,925">This</WORD>
<WORD coords="406,925,503,906,925">seems</WORD>
<WORD coords="519,925,549,902,925">to</WORD>
<WORD coords="572,925,610,897,925">be</WORD>
<WORD coords="629,934,742,906,925">wrong,</WORD>
<WORD coords="760,925,806,906,925">we</WORD>
<WORD coords="819,925,874,906,925">can</WORD>
<WORD coords="891,925,962,897,925">read</WORD>
<WORD coords="991,925,1048,897,925">this</WORD>
<WORD coords="1082,925,1126,897,925">bit</WORD>
<WORD coords="1139,925,1144,921,925">.</WORD>
<WORD coords="1171,934,1306,897,925">Reading</WORD>
<WORD coords="1325,925,1350,897,925">is</WORD>
<WORD coords="1380,934,1539,906,925">necessary</WORD>
<WORD coords="1566,925,1596,902,925">to</WORD>
<WORD coords="1619,934,1711,906,925">query</WORD>
<WORD coords="1743,925,1848,897,925">stalled</WORD>
<WORD coords="1890,926,1963,901,925">state</WORD>
<WORD coords="1980,925,1985,897,925">!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1025,327,996,1024">22.16</WORD>
<WORD coords="350,1025,551,996,1024">Isochronous</WORD>
<WORD coords="573,1024,663,996,1024">mode</WORD>
<WORD coords="677,1033,765,996,1024">(page</WORD>
<WORD coords="778,1031,852,996,1026">278)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1074,293,1046,1074">For</WORD>
<WORD coords="313,1074,512,1046,1074">Isochronous</WORD>
<WORD coords="536,1074,577,1046,1074">IN</WORD>
<WORD coords="595,1083,753,1046,1074">endpoints</WORD>
<WORD coords="765,1079,771,1070,1079">,</WORD>
<WORD coords="804,1074,826,1046,1074">it</WORD>
<WORD coords="858,1075,884,1046,1074">is</WORD>
<WORD coords="915,1083,1050,1046,1074">possible</WORD>
<WORD coords="1080,1074,1110,1051,1074">to</WORD>
<WORD coords="1142,1083,1366,1046,1074">automatically</WORD>
<WORD coords="1398,1074,1503,1046,1074">switch</WORD>
<WORD coords="1528,1074,1577,1046,1074">the</WORD>
<WORD coords="1599,1074,1694,1046,1074">banks</WORD>
<WORD coords="1712,1074,1752,1055,1074">on</WORD>
<WORD coords="1768,1074,1843,1046,1074">each</WORD>
<WORD coords="1874,1074,1943,1051,1074">start</WORD>
<WORD coords="1975,1074,2011,1046,1074">of</WORD>
</LINE>
<LINE>
<WORD coords="237,1124,331,1096,1124">frame</WORD>
<WORD coords="352,1131,463,1096,1124">(SOF).</WORD>
<WORD coords="480,1124,551,1096,1124">This</WORD>
<WORD coords="578,1124,602,1096,1124">is</WORD>
<WORD coords="629,1124,707,1096,1124">done</WORD>
<WORD coords="721,1133,762,1096,1124">by</WORD>
<WORD coords="789,1133,896,1096,1124">setting</WORD>
<WORD coords="928,1125,1014,1096,1124">ISOS</WORD>
<WORD coords="1018,1124,1063,1096,1124">W.</WORD>
<WORD coords="1078,1124,1140,1096,1124">The</WORD>
<WORD coords="1153,1125,1230,1096,1124">CPU</WORD>
<WORD coords="1244,1124,1296,1096,1124">has</WORD>
<WORD coords="1310,1125,1340,1101,1124">to</WORD>
<WORD coords="1361,1124,1403,1096,1124">fill</WORD>
<WORD coords="1435,1124,1483,1096,1124">the</WORD>
<WORD coords="1506,1124,1587,1096,1124">bank</WORD>
<WORD coords="1602,1124,1637,1096,1124">of</WORD>
<WORD coords="1659,1124,1707,1096,1124">the</WORD>
<WORD coords="1733,1133,1892,1095,1124">endpoint;</WORD>
<WORD coords="1921,1124,1969,1096,1124">the</WORD>
</LINE>
<LINE>
<WORD coords="236,1174,317,1146,1174">bank</WORD>
<WORD coords="334,1183,492,1146,1174">switching</WORD>
<WORD coords="522,1174,584,1146,1174">will</WORD>
<WORD coords="609,1174,647,1146,1174">be</WORD>
<WORD coords="670,1175,830,1146,1174">automatic</WORD>
<WORD coords="855,1175,886,1155,1175">as</WORD>
<WORD coords="910,1174,986,1155,1174">soon</WORD>
<WORD coords="1004,1175,1036,1155,1175">as</WORD>
<WORD coords="1059,1175,1076,1155,1175">a</WORD>
<WORD coords="1097,1175,1171,1146,1174">SOF</WORD>
<WORD coords="1183,1174,1207,1146,1174">is</WORD>
<WORD coords="1228,1174,1299,1155,1174">seen</WORD>
<WORD coords="1319,1183,1359,1146,1174">by</WORD>
<WORD coords="1379,1174,1427,1146,1174">the</WORD>
<WORD coords="1451,1174,1613,1146,1174">hardware.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1224,281,1196,1224">!!!</WORD>
<WORD coords="311,1225,438,1196,1224">ISOSW</WORD>
<WORD coords="451,1224,475,1196,1224">is</WORD>
<WORD coords="489,1224,662,1196,1224">mentioned</WORD>
<WORD coords="675,1224,744,1196,1224">here</WORD>
<WORD coords="761,1224,817,1196,1224">and</WORD>
<WORD coords="837,1224,868,1196,1224">in</WORD>
<WORD coords="893,1224,941,1196,1224">the</WORD>
<WORD coords="968,1225,1016,1196,1224">31.</WORD>
<WORD coords="1046,1233,1183,1196,1224">Register</WORD>
<WORD coords="1209,1233,1368,1196,1224">Summary</WORD>
<WORD coords="1381,1233,1470,1196,1224">(page</WORD>
<WORD coords="1481,1231,1566,1196,1226">414),</WORD>
<WORD coords="1583,1224,1634,1196,1224">but</WORD>
<WORD coords="1656,1224,1695,1205,1224">no</WORD>
<WORD coords="1712,1224,1811,1196,1224">where</WORD>
<WORD coords="1830,1224,1892,1196,1224">else</WORD>
<WORD coords="1905,1224,1909,1220,1224">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1273,281,1245,1273">!!!</WORD>
<WORD coords="313,1273,346,1246,1273">In</WORD>
<WORD coords="392,1282,529,1245,1273">Register</WORD>
<WORD coords="555,1282,713,1245,1273">Summary</WORD>
<WORD coords="727,1282,816,1245,1273">(page</WORD>
<WORD coords="828,1280,902,1245,1275">414)</WORD>
<WORD coords="915,1282,1002,1245,1273">Flags</WORD>
<WORD coords="1022,1274,1093,1245,1273">SOS</WORD>
<WORD coords="1097,1276,1144,1245,1276">W,</WORD>
<WORD coords="1157,1274,1289,1245,1273">AUTOS</WORD>
<WORD coords="1293,1276,1339,1245,1276">W,</WORD>
<WORD coords="1353,1274,1549,1245,1273">NYETSDIS</WORD>
<WORD coords="1565,1273,1612,1254,1273">are</WORD>
<WORD coords="1625,1276,1807,1245,1273">mentioned,</WORD>
<WORD coords="1820,1273,1870,1245,1273">but</WORD>
<WORD coords="1883,1273,1935,1250,1273">not</WORD>
<WORD coords="1947,1282,2116,1245,1273">explained!</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="238,1374,309,1345,1373">25.4</WORD>
<WORD coords="337,1382,507,1345,1373">Prescaling</WORD>
<WORD coords="537,1373,593,1345,1373">and</WORD>
<WORD coords="610,1374,798,1345,1373">Conversion</WORD>
<WORD coords="816,1382,934,1345,1373">Timing</WORD>
<WORD coords="950,1382,1041,1345,1373">(page</WORD>
<WORD coords="1060,1380,1132,1345,1376">319)</WORD>
<WORD coords="1154,1373,1307,1345,1373">***NEW</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1432,355,1395,1423">setting</WORD>
<WORD coords="389,1423,437,1395,1423">the</WORD>
<WORD coords="461,1424,609,1395,1423">ADHSM</WORD>
<WORD coords="620,1423,663,1395,1423">bit</WORD>
<WORD coords="675,1423,706,1395,1423">in</WORD>
<WORD coords="718,1424,880,1395,1423">ADCSRB</WORD>
<WORD coords="895,1423,999,1395,1423">allows</WORD>
<WORD coords="1013,1423,1050,1404,1423">an</WORD>
<WORD coords="1062,1423,1217,1395,1423">increased</WORD>
<WORD coords="1229,1423,1314,1395,1423">ADC</WORD>
<WORD coords="1327,1423,1416,1395,1423">clock</WORD>
<WORD coords="1427,1432,1591,1395,1423">frequency</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1473,253,1445,1473">!</WORD>
<WORD coords="262,1473,267,1445,1473">!</WORD>
<WORD coords="276,1473,281,1445,1473">!</WORD>
<WORD coords="311,1473,459,1445,1473">ADHSM</WORD>
<WORD coords="471,1473,514,1445,1473">bit</WORD>
<WORD coords="526,1473,550,1445,1473">is</WORD>
<WORD coords="564,1473,736,1445,1473">mentioned</WORD>
<WORD coords="751,1482,887,1445,1473">multiple</WORD>
<WORD coords="911,1473,998,1445,1473">times</WORD>
<WORD coords="1024,1473,1054,1445,1473">in</WORD>
<WORD coords="1084,1474,1237,1445,1473">datasheet</WORD>
<WORD coords="1251,1478,1257,1469,1478">,</WORD>
<WORD coords="1284,1473,1335,1445,1473">but</WORD>
<WORD coords="1365,1473,1386,1445,1473">it</WORD>
<WORD coords="1414,1473,1486,1445,1473">does</WORD>
<WORD coords="1508,1473,1560,1450,1473">not</WORD>
<WORD coords="1589,1473,1666,1445,1473">exist</WORD>
<WORD coords="1681,1474,1686,1469,0">.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="241,1573,342,1544,1572">25.8.2</WORD>
<WORD coords="367,1573,452,1544,1572">ADC</WORD>
<WORD coords="465,1573,590,1544,1572">Control</WORD>
<WORD coords="604,1572,661,1544,1572">and</WORD>
<WORD coords="676,1573,773,1544,1572">Status</WORD>
<WORD coords="803,1581,940,1544,1572">Register</WORD>
<WORD coords="965,1572,993,1544,1572">A</WORD>
<WORD coords="1008,1563,1034,1560,1567">—</WORD>
<WORD coords="1048,1572,1215,1544,1572">ADCSRA</WORD>
<WORD coords="1228,1579,1314,1544,1575">(332)</WORD>
<WORD coords="1329,1572,1482,1544,1572">***NEW</WORD>
</LINE>
<LINE>
<WORD coords="241,1622,304,1594,1622">Bits</WORD>
<WORD coords="332,1623,383,1594,1622">2:0</WORD>
<WORD coords="407,1612,433,1611,1617">—</WORD>
<WORD coords="447,1623,614,1594,1622">ADPS2:0:</WORD>
<WORD coords="629,1622,713,1594,1622">ADC</WORD>
<WORD coords="727,1622,878,1594,1622">Prescaler</WORD>
<WORD coords="890,1623,989,1594,1622">Select</WORD>
<WORD coords="1006,1622,1070,1594,1622">Bits</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="237,1672,333,1644,1672">These</WORD>
<WORD coords="355,1673,413,1644,1672">bits</WORD>
<WORD coords="443,1672,607,1644,1672">determine</WORD>
<WORD coords="632,1672,680,1644,1672">the</WORD>
<WORD coords="712,1672,843,1644,1672">division</WORD>
<WORD coords="880,1672,975,1644,1672">factor</WORD>
<WORD coords="1002,1672,1139,1644,1672">between</WORD>
<WORD coords="1155,1672,1203,1644,1672">the</WORD>
<WORD coords="1226,1672,1331,1644,1672">XTAL</WORD>
<WORD coords="1344,1681,1508,1644,1672">frequency</WORD>
<WORD coords="1521,1672,1577,1644,1672">and</WORD>
<WORD coords="1590,1672,1638,1644,1672">the</WORD>
<WORD coords="1660,1681,1744,1644,1672">input</WORD>
<WORD coords="1770,1672,1859,1644,1672">clock</WORD>
<WORD coords="1883,1672,1913,1649,1672">to</WORD>
<WORD coords="1939,1672,1988,1644,1672">the</WORD>
<WORD coords="2011,1672,2105,1644,1672">ADC.</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1722,253,1694,1722">!</WORD>
<WORD coords="262,1722,267,1694,1722">!</WORD>
<WORD coords="276,1722,281,1694,1722">!</WORD>
<WORD coords="314,1731,400,1695,1722">Input</WORD>
<WORD coords="425,1722,514,1694,1722">clock</WORD>
<WORD coords="537,1722,573,1694,1722">of</WORD>
<WORD coords="592,1722,677,1694,1722">ADC</WORD>
<WORD coords="689,1731,839,1694,1722">prescaler</WORD>
<WORD coords="854,1723,951,1703,1722">seems</WORD>
<WORD coords="968,1722,998,1699,1722">to</WORD>
<WORD coords="1020,1722,1058,1694,1722">be</WORD>
<WORD coords="1079,1722,1130,1699,1722">not</WORD>
<WORD coords="1155,1722,1203,1694,1722">the</WORD>
<WORD coords="1226,1722,1331,1694,1722">XTAL</WORD>
<WORD coords="1344,1731,1516,1694,1722">frequency,</WORD>
<WORD coords="1529,1723,1581,1694,1722">but</WORD>
<WORD coords="1603,1722,1651,1694,1722">the</WORD>
<WORD coords="1678,1728,1688,1694,1722">(</WORD>
<WORD coords="1699,1731,1817,1694,1722">already</WORD>
<WORD coords="1848,1731,2003,1694,1722">prescaled</WORD>
<WORD coords="2015,1726,2025,1695,1726">)</WORD>
</LINE>
</PARAGRAPH>
<PARAGRAPH>
<LINE>
<WORD coords="248,1772,281,1744,1772">!!!</WORD>
<WORD coords="311,1781,383,1753,1772">mpu</WORD>
<WORD coords="396,1781,568,1744,1772">frequency.</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN>
<REGION backgroundColor="65793" inverted="true">
<PARAGRAPH>
<LINE>
<WORD coords="241,1872,344,1843,1871">Stefan</WORD>
<WORD coords="369,1876,528,1843,1871">Salewski,</WORD>
<WORD coords="554,1872,835,1843,1871">20-MAR-2007</WORD>
</LINE>
</PARAGRAPH>
</REGION>
</PAGECOLUMN>
<PAGECOLUMN></PAGECOLUMN>
</HIDDENTEXT>
</OBJECT>
<MAP name="sources_0058.djvu"/>
</BODY>
</DjVuXML>
