fastio.h 84 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057
  1. /*
  2. This code contributed by Triffid_Hunter and modified by Kliment
  3. why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
  4. */
  5. #ifndef _FASTIO_ARDUINO_H
  6. #define _FASTIO_ARDUINO_H
  7. #include <avr/io.h>
  8. #include "macros.h"
  9. #ifndef CRITICAL_SECTION_START
  10. #define CRITICAL_SECTION_START unsigned char _sreg = SREG; cli();
  11. #define CRITICAL_SECTION_END SREG = _sreg;
  12. #include <avr/interrupt.h>
  13. #endif //CRITICAL_SECTION_START
  14. /*
  15. magic I/O routines
  16. now you can simply SET_OUTPUT(STEP); WRITE(STEP, 1); WRITE(STEP, 0);
  17. */
  18. /// Read a pin
  19. #define _READ(IO) ((bool)(DIO ## IO ## _RPORT & _BV(DIO ## IO ## _PIN)))
  20. /// write to a pin
  21. // On some boards pins > 0x100 are used. These are not converted to atomic actions. An critical section is needed.
  22. #define _WRITE_NC(IO, v) do { if (v) {DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); } else {DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); }; } while (0)
  23. #define _WRITE_C(IO, v) do { if (v) { \
  24. CRITICAL_SECTION_START; \
  25. {DIO ## IO ## _WPORT |= _BV(DIO ## IO ## _PIN); }\
  26. CRITICAL_SECTION_END; \
  27. }\
  28. else {\
  29. CRITICAL_SECTION_START; \
  30. {DIO ## IO ## _WPORT &= ~_BV(DIO ## IO ## _PIN); }\
  31. CRITICAL_SECTION_END; \
  32. }\
  33. }\
  34. while (0)
  35. #define _WRITE(IO, v) do { if (&(DIO ## IO ## _RPORT) >= (uint8_t *)0x100) {_WRITE_C(IO, v); } else {_WRITE_NC(IO, v); }; } while (0)
  36. /// toggle a pin
  37. #define _TOGGLE(IO) do {DIO ## IO ## _RPORT = _BV(DIO ## IO ## _PIN); } while (0)
  38. /// set pin as input
  39. #define _SET_INPUT(IO) do {DIO ## IO ## _DDR &= ~_BV(DIO ## IO ## _PIN); } while (0)
  40. /// set pin as output
  41. #define _SET_OUTPUT(IO) do {DIO ## IO ## _DDR |= _BV(DIO ## IO ## _PIN); } while (0)
  42. /// check if pin is an input
  43. #define _GET_INPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) == 0)
  44. /// check if pin is an output
  45. #define _GET_OUTPUT(IO) ((DIO ## IO ## _DDR & _BV(DIO ## IO ## _PIN)) != 0)
  46. /// check if pin is an timer
  47. #define _GET_TIMER(IO) (DIO ## IO ## _PWM)
  48. // why double up on these macros? see http://gcc.gnu.org/onlinedocs/cpp/Stringification.html
  49. /// Read a pin wrapper
  50. #define READ(IO) _READ(IO)
  51. /// Write to a pin wrapper
  52. #define WRITE(IO, v) _WRITE(IO, v)
  53. /// Write to a pin wrapper, non critical.
  54. /// This macro is cheaper than WRITE(IO,v) on ports H,I,J,K,L, as _WRITE_C disables / enables interrupts
  55. /// and stores the old CPU flags on the stack.
  56. /// This macro should only be called, where it cannot be interrupted.
  57. #define WRITE_NC(IO, v) _WRITE_NC(IO, v)
  58. /// toggle a pin wrapper
  59. #define TOGGLE(IO) _TOGGLE(IO)
  60. /// set pin as input wrapper
  61. #define SET_INPUT(IO) _SET_INPUT(IO)
  62. /// set pin as output wrapper
  63. #define SET_OUTPUT(IO) _SET_OUTPUT(IO)
  64. /// check if pin is an input wrapper
  65. #define GET_INPUT(IO) _GET_INPUT(IO)
  66. /// check if pin is an output wrapper
  67. #define GET_OUTPUT(IO) _GET_OUTPUT(IO)
  68. /// check if pin is an timer wrapper
  69. #define GET_TIMER(IO) _GET_TIMER(IO)
  70. /*
  71. ports and functions
  72. added as necessary or if I feel like it- not a comprehensive list!
  73. */
  74. #if defined (__AVR_ATmega168__) || defined (__AVR_ATmega328__) || defined (__AVR_ATmega328P__)
  75. // UART
  76. #define RXD DIO0
  77. #define TXD DIO1
  78. // SPI
  79. #define SCK DIO13
  80. #define MISO DIO12
  81. #define MOSI DIO11
  82. #define SS DIO10
  83. // TWI (I2C)
  84. #define SCL AIO5
  85. #define SDA AIO4
  86. // timers and PWM
  87. #define OC0A DIO6
  88. #define OC0B DIO5
  89. #define OC1A DIO9
  90. #define OC1B DIO10
  91. #define OC2A DIO11
  92. #define OC2B DIO3
  93. #define DEBUG_LED AIO5
  94. /*
  95. pins
  96. */
  97. #define DIO0_PIN PIND0
  98. #define DIO0_RPORT PIND
  99. #define DIO0_WPORT PORTD
  100. #define DIO0_DDR DDRD
  101. #define DIO0_PWM NULL
  102. #define DIO1_PIN PIND1
  103. #define DIO1_RPORT PIND
  104. #define DIO1_WPORT PORTD
  105. #define DIO1_DDR DDRD
  106. #define DIO1_PWM NULL
  107. #define DIO2_PIN PIND2
  108. #define DIO2_RPORT PIND
  109. #define DIO2_WPORT PORTD
  110. #define DIO2_DDR DDRD
  111. #define DIO2_PWM NULL
  112. #define DIO3_PIN PIND3
  113. #define DIO3_RPORT PIND
  114. #define DIO3_WPORT PORTD
  115. #define DIO3_DDR DDRD
  116. #define DIO3_PWM &OCR2B
  117. #define DIO4_PIN PIND4
  118. #define DIO4_RPORT PIND
  119. #define DIO4_WPORT PORTD
  120. #define DIO4_DDR DDRD
  121. #define DIO4_PWM NULL
  122. #define DIO5_PIN PIND5
  123. #define DIO5_RPORT PIND
  124. #define DIO5_WPORT PORTD
  125. #define DIO5_DDR DDRD
  126. #define DIO5_PWM &OCR0B
  127. #define DIO6_PIN PIND6
  128. #define DIO6_RPORT PIND
  129. #define DIO6_WPORT PORTD
  130. #define DIO6_DDR DDRD
  131. #define DIO6_PWM &OCR0A
  132. #define DIO7_PIN PIND7
  133. #define DIO7_RPORT PIND
  134. #define DIO7_WPORT PORTD
  135. #define DIO7_DDR DDRD
  136. #define DIO7_PWM NULL
  137. #define DIO8_PIN PINB0
  138. #define DIO8_RPORT PINB
  139. #define DIO8_WPORT PORTB
  140. #define DIO8_DDR DDRB
  141. #define DIO8_PWM NULL
  142. #define DIO9_PIN PINB1
  143. #define DIO9_RPORT PINB
  144. #define DIO9_WPORT PORTB
  145. #define DIO9_DDR DDRB
  146. #define DIO9_PWM NULL
  147. #define DIO10_PIN PINB2
  148. #define DIO10_RPORT PINB
  149. #define DIO10_WPORT PORTB
  150. #define DIO10_DDR DDRB
  151. #define DIO10_PWM NULL
  152. #define DIO11_PIN PINB3
  153. #define DIO11_RPORT PINB
  154. #define DIO11_WPORT PORTB
  155. #define DIO11_DDR DDRB
  156. #define DIO11_PWM &OCR2A
  157. #define DIO12_PIN PINB4
  158. #define DIO12_RPORT PINB
  159. #define DIO12_WPORT PORTB
  160. #define DIO12_DDR DDRB
  161. #define DIO12_PWM NULL
  162. #define DIO13_PIN PINB5
  163. #define DIO13_RPORT PINB
  164. #define DIO13_WPORT PORTB
  165. #define DIO13_DDR DDRB
  166. #define DIO13_PWM NULL
  167. #define DIO14_PIN PINC0
  168. #define DIO14_RPORT PINC
  169. #define DIO14_WPORT PORTC
  170. #define DIO14_DDR DDRC
  171. #define DIO14_PWM NULL
  172. #define DIO15_PIN PINC1
  173. #define DIO15_RPORT PINC
  174. #define DIO15_WPORT PORTC
  175. #define DIO15_DDR DDRC
  176. #define DIO15_PWM NULL
  177. #define DIO16_PIN PINC2
  178. #define DIO16_RPORT PINC
  179. #define DIO16_WPORT PORTC
  180. #define DIO16_DDR DDRC
  181. #define DIO16_PWM NULL
  182. #define DIO17_PIN PINC3
  183. #define DIO17_RPORT PINC
  184. #define DIO17_WPORT PORTC
  185. #define DIO17_DDR DDRC
  186. #define DIO17_PWM NULL
  187. #define DIO18_PIN PINC4
  188. #define DIO18_RPORT PINC
  189. #define DIO18_WPORT PORTC
  190. #define DIO18_DDR DDRC
  191. #define DIO18_PWM NULL
  192. #define DIO19_PIN PINC5
  193. #define DIO19_RPORT PINC
  194. #define DIO19_WPORT PORTC
  195. #define DIO19_DDR DDRC
  196. #define DIO19_PWM NULL
  197. #define DIO20_PIN PINC6
  198. #define DIO20_RPORT PINC
  199. #define DIO20_WPORT PORTC
  200. #define DIO20_DDR DDRC
  201. #define DIO20_PWM NULL
  202. #define DIO21_PIN PINC7
  203. #define DIO21_RPORT PINC
  204. #define DIO21_WPORT PORTC
  205. #define DIO21_DDR DDRC
  206. #define DIO21_PWM NULL
  207. #undef PB0
  208. #define PB0_PIN PINB0
  209. #define PB0_RPORT PINB
  210. #define PB0_WPORT PORTB
  211. #define PB0_DDR DDRB
  212. #define PB0_PWM NULL
  213. #undef PB1
  214. #define PB1_PIN PINB1
  215. #define PB1_RPORT PINB
  216. #define PB1_WPORT PORTB
  217. #define PB1_DDR DDRB
  218. #define PB1_PWM NULL
  219. #undef PB2
  220. #define PB2_PIN PINB2
  221. #define PB2_RPORT PINB
  222. #define PB2_WPORT PORTB
  223. #define PB2_DDR DDRB
  224. #define PB2_PWM NULL
  225. #undef PB3
  226. #define PB3_PIN PINB3
  227. #define PB3_RPORT PINB
  228. #define PB3_WPORT PORTB
  229. #define PB3_DDR DDRB
  230. #define PB3_PWM &OCR2A
  231. #undef PB4
  232. #define PB4_PIN PINB4
  233. #define PB4_RPORT PINB
  234. #define PB4_WPORT PORTB
  235. #define PB4_DDR DDRB
  236. #define PB4_PWM NULL
  237. #undef PB5
  238. #define PB5_PIN PINB5
  239. #define PB5_RPORT PINB
  240. #define PB5_WPORT PORTB
  241. #define PB5_DDR DDRB
  242. #define PB5_PWM NULL
  243. #undef PB6
  244. #define PB6_PIN PINB6
  245. #define PB6_RPORT PINB
  246. #define PB6_WPORT PORTB
  247. #define PB6_DDR DDRB
  248. #define PB6_PWM NULL
  249. #undef PB7
  250. #define PB7_PIN PINB7
  251. #define PB7_RPORT PINB
  252. #define PB7_WPORT PORTB
  253. #define PB7_DDR DDRB
  254. #define PB7_PWM NULL
  255. #undef PC0
  256. #define PC0_PIN PINC0
  257. #define PC0_RPORT PINC
  258. #define PC0_WPORT PORTC
  259. #define PC0_DDR DDRC
  260. #define PC0_PWM NULL
  261. #undef PC1
  262. #define PC1_PIN PINC1
  263. #define PC1_RPORT PINC
  264. #define PC1_WPORT PORTC
  265. #define PC1_DDR DDRC
  266. #define PC1_PWM NULL
  267. #undef PC2
  268. #define PC2_PIN PINC2
  269. #define PC2_RPORT PINC
  270. #define PC2_WPORT PORTC
  271. #define PC2_DDR DDRC
  272. #define PC2_PWM NULL
  273. #undef PC3
  274. #define PC3_PIN PINC3
  275. #define PC3_RPORT PINC
  276. #define PC3_WPORT PORTC
  277. #define PC3_DDR DDRC
  278. #define PC3_PWM NULL
  279. #undef PC4
  280. #define PC4_PIN PINC4
  281. #define PC4_RPORT PINC
  282. #define PC4_WPORT PORTC
  283. #define PC4_DDR DDRC
  284. #define PC4_PWM NULL
  285. #undef PC5
  286. #define PC5_PIN PINC5
  287. #define PC5_RPORT PINC
  288. #define PC5_WPORT PORTC
  289. #define PC5_DDR DDRC
  290. #define PC5_PWM NULL
  291. #undef PC6
  292. #define PC6_PIN PINC6
  293. #define PC6_RPORT PINC
  294. #define PC6_WPORT PORTC
  295. #define PC6_DDR DDRC
  296. #define PC6_PWM NULL
  297. #undef PC7
  298. #define PC7_PIN PINC7
  299. #define PC7_RPORT PINC
  300. #define PC7_WPORT PORTC
  301. #define PC7_DDR DDRC
  302. #define PC7_PWM NULL
  303. #undef PD0
  304. #define PD0_PIN PIND0
  305. #define PD0_RPORT PIND
  306. #define PD0_WPORT PORTD
  307. #define PD0_DDR DDRD
  308. #define PD0_PWM NULL
  309. #undef PD1
  310. #define PD1_PIN PIND1
  311. #define PD1_RPORT PIND
  312. #define PD1_WPORT PORTD
  313. #define PD1_DDR DDRD
  314. #define PD1_PWM NULL
  315. #undef PD2
  316. #define PD2_PIN PIND2
  317. #define PD2_RPORT PIND
  318. #define PD2_WPORT PORTD
  319. #define PD2_DDR DDRD
  320. #define PD2_PWM NULL
  321. #undef PD3
  322. #define PD3_PIN PIND3
  323. #define PD3_RPORT PIND
  324. #define PD3_WPORT PORTD
  325. #define PD3_DDR DDRD
  326. #define PD3_PWM &OCR2B
  327. #undef PD4
  328. #define PD4_PIN PIND4
  329. #define PD4_RPORT PIND
  330. #define PD4_WPORT PORTD
  331. #define PD4_DDR DDRD
  332. #define PD4_PWM NULL
  333. #undef PD5
  334. #define PD5_PIN PIND5
  335. #define PD5_RPORT PIND
  336. #define PD5_WPORT PORTD
  337. #define PD5_DDR DDRD
  338. #define PD5_PWM &OCR0B
  339. #undef PD6
  340. #define PD6_PIN PIND6
  341. #define PD6_RPORT PIND
  342. #define PD6_WPORT PORTD
  343. #define PD6_DDR DDRD
  344. #define PD6_PWM &OCR0A
  345. #undef PD7
  346. #define PD7_PIN PIND7
  347. #define PD7_RPORT PIND
  348. #define PD7_WPORT PORTD
  349. #define PD7_DDR DDRD
  350. #define PD7_PWM NULL
  351. #endif /* _AVR_ATmega{168,328,328P}__ */
  352. #if defined (__AVR_ATmega644__) || defined (__AVR_ATmega644P__) || defined (__AVR_ATmega644PA__) || defined (__AVR_ATmega1284P__)
  353. // UART
  354. #define RXD DIO8
  355. #define TXD DIO9
  356. #define RXD0 DIO8
  357. #define TXD0 DIO9
  358. #define RXD1 DIO10
  359. #define TXD1 DIO11
  360. // SPI
  361. #define SCK DIO7
  362. #define MISO DIO6
  363. #define MOSI DIO5
  364. #define SS DIO4
  365. // TWI (I2C)
  366. #define SCL DIO16
  367. #define SDA DIO17
  368. // timers and PWM
  369. #define OC0A DIO3
  370. #define OC0B DIO4
  371. #define OC1A DIO13
  372. #define OC1B DIO12
  373. #define OC2A DIO15
  374. #define OC2B DIO14
  375. #define DEBUG_LED DIO0
  376. /*
  377. pins
  378. */
  379. #define DIO0_PIN PINB0
  380. #define DIO0_RPORT PINB
  381. #define DIO0_WPORT PORTB
  382. #define DIO0_DDR DDRB
  383. #define DIO0_PWM NULL
  384. #define DIO1_PIN PINB1
  385. #define DIO1_RPORT PINB
  386. #define DIO1_WPORT PORTB
  387. #define DIO1_DDR DDRB
  388. #define DIO1_PWM NULL
  389. #define DIO2_PIN PINB2
  390. #define DIO2_RPORT PINB
  391. #define DIO2_WPORT PORTB
  392. #define DIO2_DDR DDRB
  393. #define DIO2_PWM NULL
  394. #define DIO3_PIN PINB3
  395. #define DIO3_RPORT PINB
  396. #define DIO3_WPORT PORTB
  397. #define DIO3_DDR DDRB
  398. #define DIO3_PWM OCR0A
  399. #define DIO4_PIN PINB4
  400. #define DIO4_RPORT PINB
  401. #define DIO4_WPORT PORTB
  402. #define DIO4_DDR DDRB
  403. #define DIO4_PWM OCR0B
  404. #define DIO5_PIN PINB5
  405. #define DIO5_RPORT PINB
  406. #define DIO5_WPORT PORTB
  407. #define DIO5_DDR DDRB
  408. #define DIO5_PWM NULL
  409. #define DIO6_PIN PINB6
  410. #define DIO6_RPORT PINB
  411. #define DIO6_WPORT PORTB
  412. #define DIO6_DDR DDRB
  413. #define DIO6_PWM NULL
  414. #define DIO7_PIN PINB7
  415. #define DIO7_RPORT PINB
  416. #define DIO7_WPORT PORTB
  417. #define DIO7_DDR DDRB
  418. #define DIO7_PWM NULL
  419. #define DIO8_PIN PIND0
  420. #define DIO8_RPORT PIND
  421. #define DIO8_WPORT PORTD
  422. #define DIO8_DDR DDRD
  423. #define DIO8_PWM NULL
  424. #define DIO9_PIN PIND1
  425. #define DIO9_RPORT PIND
  426. #define DIO9_WPORT PORTD
  427. #define DIO9_DDR DDRD
  428. #define DIO9_PWM NULL
  429. #define DIO10_PIN PIND2
  430. #define DIO10_RPORT PIND
  431. #define DIO10_WPORT PORTD
  432. #define DIO10_DDR DDRD
  433. #define DIO10_PWM NULL
  434. #define DIO11_PIN PIND3
  435. #define DIO11_RPORT PIND
  436. #define DIO11_WPORT PORTD
  437. #define DIO11_DDR DDRD
  438. #define DIO11_PWM NULL
  439. #define DIO12_PIN PIND4
  440. #define DIO12_RPORT PIND
  441. #define DIO12_WPORT PORTD
  442. #define DIO12_DDR DDRD
  443. #define DIO12_PWM OCR1B
  444. #define DIO13_PIN PIND5
  445. #define DIO13_RPORT PIND
  446. #define DIO13_WPORT PORTD
  447. #define DIO13_DDR DDRD
  448. #define DIO13_PWM OCR1A
  449. #define DIO14_PIN PIND6
  450. #define DIO14_RPORT PIND
  451. #define DIO14_WPORT PORTD
  452. #define DIO14_DDR DDRD
  453. #define DIO14_PWM OCR2B
  454. #define DIO15_PIN PIND7
  455. #define DIO15_RPORT PIND
  456. #define DIO15_WPORT PORTD
  457. #define DIO15_DDR DDRD
  458. #define DIO15_PWM OCR2A
  459. #define DIO16_PIN PINC0
  460. #define DIO16_RPORT PINC
  461. #define DIO16_WPORT PORTC
  462. #define DIO16_DDR DDRC
  463. #define DIO16_PWM NULL
  464. #define DIO17_PIN PINC1
  465. #define DIO17_RPORT PINC
  466. #define DIO17_WPORT PORTC
  467. #define DIO17_DDR DDRC
  468. #define DIO17_PWM NULL
  469. #define DIO18_PIN PINC2
  470. #define DIO18_RPORT PINC
  471. #define DIO18_WPORT PORTC
  472. #define DIO18_DDR DDRC
  473. #define DIO18_PWM NULL
  474. #define DIO19_PIN PINC3
  475. #define DIO19_RPORT PINC
  476. #define DIO19_WPORT PORTC
  477. #define DIO19_DDR DDRC
  478. #define DIO19_PWM NULL
  479. #define DIO20_PIN PINC4
  480. #define DIO20_RPORT PINC
  481. #define DIO20_WPORT PORTC
  482. #define DIO20_DDR DDRC
  483. #define DIO20_PWM NULL
  484. #define DIO21_PIN PINC5
  485. #define DIO21_RPORT PINC
  486. #define DIO21_WPORT PORTC
  487. #define DIO21_DDR DDRC
  488. #define DIO21_PWM NULL
  489. #define DIO22_PIN PINC6
  490. #define DIO22_RPORT PINC
  491. #define DIO22_WPORT PORTC
  492. #define DIO22_DDR DDRC
  493. #define DIO22_PWM NULL
  494. #define DIO23_PIN PINC7
  495. #define DIO23_RPORT PINC
  496. #define DIO23_WPORT PORTC
  497. #define DIO23_DDR DDRC
  498. #define DIO23_PWM NULL
  499. #define DIO24_PIN PINA7
  500. #define DIO24_RPORT PINA
  501. #define DIO24_WPORT PORTA
  502. #define DIO24_DDR DDRA
  503. #define DIO24_PWM NULL
  504. #define DIO25_PIN PINA6
  505. #define DIO25_RPORT PINA
  506. #define DIO25_WPORT PORTA
  507. #define DIO25_DDR DDRA
  508. #define DIO25_PWM NULL
  509. #define DIO26_PIN PINA5
  510. #define DIO26_RPORT PINA
  511. #define DIO26_WPORT PORTA
  512. #define DIO26_DDR DDRA
  513. #define DIO26_PWM NULL
  514. #define DIO27_PIN PINA4
  515. #define DIO27_RPORT PINA
  516. #define DIO27_WPORT PORTA
  517. #define DIO27_DDR DDRA
  518. #define DIO27_PWM NULL
  519. #define DIO28_PIN PINA3
  520. #define DIO28_RPORT PINA
  521. #define DIO28_WPORT PORTA
  522. #define DIO28_DDR DDRA
  523. #define DIO28_PWM NULL
  524. #define DIO29_PIN PINA2
  525. #define DIO29_RPORT PINA
  526. #define DIO29_WPORT PORTA
  527. #define DIO29_DDR DDRA
  528. #define DIO29_PWM NULL
  529. #define DIO30_PIN PINA1
  530. #define DIO30_RPORT PINA
  531. #define DIO30_WPORT PORTA
  532. #define DIO30_DDR DDRA
  533. #define DIO30_PWM NULL
  534. #define DIO31_PIN PINA0
  535. #define DIO31_RPORT PINA
  536. #define DIO31_WPORT PORTA
  537. #define DIO31_DDR DDRA
  538. #define DIO31_PWM NULL
  539. #define AIO0_PIN PINA0
  540. #define AIO0_RPORT PINA
  541. #define AIO0_WPORT PORTA
  542. #define AIO0_DDR DDRA
  543. #define AIO0_PWM NULL
  544. #define AIO1_PIN PINA1
  545. #define AIO1_RPORT PINA
  546. #define AIO1_WPORT PORTA
  547. #define AIO1_DDR DDRA
  548. #define AIO1_PWM NULL
  549. #define AIO2_PIN PINA2
  550. #define AIO2_RPORT PINA
  551. #define AIO2_WPORT PORTA
  552. #define AIO2_DDR DDRA
  553. #define AIO2_PWM NULL
  554. #define AIO3_PIN PINA3
  555. #define AIO3_RPORT PINA
  556. #define AIO3_WPORT PORTA
  557. #define AIO3_DDR DDRA
  558. #define AIO3_PWM NULL
  559. #define AIO4_PIN PINA4
  560. #define AIO4_RPORT PINA
  561. #define AIO4_WPORT PORTA
  562. #define AIO4_DDR DDRA
  563. #define AIO4_PWM NULL
  564. #define AIO5_PIN PINA5
  565. #define AIO5_RPORT PINA
  566. #define AIO5_WPORT PORTA
  567. #define AIO5_DDR DDRA
  568. #define AIO5_PWM NULL
  569. #define AIO6_PIN PINA6
  570. #define AIO6_RPORT PINA
  571. #define AIO6_WPORT PORTA
  572. #define AIO6_DDR DDRA
  573. #define AIO6_PWM NULL
  574. #define AIO7_PIN PINA7
  575. #define AIO7_RPORT PINA
  576. #define AIO7_WPORT PORTA
  577. #define AIO7_DDR DDRA
  578. #define AIO7_PWM NULL
  579. #undef PA0
  580. #define PA0_PIN PINA0
  581. #define PA0_RPORT PINA
  582. #define PA0_WPORT PORTA
  583. #define PA0_DDR DDRA
  584. #define PA0_PWM NULL
  585. #undef PA1
  586. #define PA1_PIN PINA1
  587. #define PA1_RPORT PINA
  588. #define PA1_WPORT PORTA
  589. #define PA1_DDR DDRA
  590. #define PA1_PWM NULL
  591. #undef PA2
  592. #define PA2_PIN PINA2
  593. #define PA2_RPORT PINA
  594. #define PA2_WPORT PORTA
  595. #define PA2_DDR DDRA
  596. #define PA2_PWM NULL
  597. #undef PA3
  598. #define PA3_PIN PINA3
  599. #define PA3_RPORT PINA
  600. #define PA3_WPORT PORTA
  601. #define PA3_DDR DDRA
  602. #define PA3_PWM NULL
  603. #undef PA4
  604. #define PA4_PIN PINA4
  605. #define PA4_RPORT PINA
  606. #define PA4_WPORT PORTA
  607. #define PA4_DDR DDRA
  608. #define PA4_PWM NULL
  609. #undef PA5
  610. #define PA5_PIN PINA5
  611. #define PA5_RPORT PINA
  612. #define PA5_WPORT PORTA
  613. #define PA5_DDR DDRA
  614. #define PA5_PWM NULL
  615. #undef PA6
  616. #define PA6_PIN PINA6
  617. #define PA6_RPORT PINA
  618. #define PA6_WPORT PORTA
  619. #define PA6_DDR DDRA
  620. #define PA6_PWM NULL
  621. #undef PA7
  622. #define PA7_PIN PINA7
  623. #define PA7_RPORT PINA
  624. #define PA7_WPORT PORTA
  625. #define PA7_DDR DDRA
  626. #define PA7_PWM NULL
  627. #undef PB0
  628. #define PB0_PIN PINB0
  629. #define PB0_RPORT PINB
  630. #define PB0_WPORT PORTB
  631. #define PB0_DDR DDRB
  632. #define PB0_PWM NULL
  633. #undef PB1
  634. #define PB1_PIN PINB1
  635. #define PB1_RPORT PINB
  636. #define PB1_WPORT PORTB
  637. #define PB1_DDR DDRB
  638. #define PB1_PWM NULL
  639. #undef PB2
  640. #define PB2_PIN PINB2
  641. #define PB2_RPORT PINB
  642. #define PB2_WPORT PORTB
  643. #define PB2_DDR DDRB
  644. #define PB2_PWM NULL
  645. #undef PB3
  646. #define PB3_PIN PINB3
  647. #define PB3_RPORT PINB
  648. #define PB3_WPORT PORTB
  649. #define PB3_DDR DDRB
  650. #define PB3_PWM OCR0A
  651. #undef PB4
  652. #define PB4_PIN PINB4
  653. #define PB4_RPORT PINB
  654. #define PB4_WPORT PORTB
  655. #define PB4_DDR DDRB
  656. #define PB4_PWM OCR0B
  657. #undef PB5
  658. #define PB5_PIN PINB5
  659. #define PB5_RPORT PINB
  660. #define PB5_WPORT PORTB
  661. #define PB5_DDR DDRB
  662. #define PB5_PWM NULL
  663. #undef PB6
  664. #define PB6_PIN PINB6
  665. #define PB6_RPORT PINB
  666. #define PB6_WPORT PORTB
  667. #define PB6_DDR DDRB
  668. #define PB6_PWM NULL
  669. #undef PB7
  670. #define PB7_PIN PINB7
  671. #define PB7_RPORT PINB
  672. #define PB7_WPORT PORTB
  673. #define PB7_DDR DDRB
  674. #define PB7_PWM NULL
  675. #undef PC0
  676. #define PC0_PIN PINC0
  677. #define PC0_RPORT PINC
  678. #define PC0_WPORT PORTC
  679. #define PC0_DDR DDRC
  680. #define PC0_PWM NULL
  681. #undef PC1
  682. #define PC1_PIN PINC1
  683. #define PC1_RPORT PINC
  684. #define PC1_WPORT PORTC
  685. #define PC1_DDR DDRC
  686. #define PC1_PWM NULL
  687. #undef PC2
  688. #define PC2_PIN PINC2
  689. #define PC2_RPORT PINC
  690. #define PC2_WPORT PORTC
  691. #define PC2_DDR DDRC
  692. #define PC2_PWM NULL
  693. #undef PC3
  694. #define PC3_PIN PINC3
  695. #define PC3_RPORT PINC
  696. #define PC3_WPORT PORTC
  697. #define PC3_DDR DDRC
  698. #define PC3_PWM NULL
  699. #undef PC4
  700. #define PC4_PIN PINC4
  701. #define PC4_RPORT PINC
  702. #define PC4_WPORT PORTC
  703. #define PC4_DDR DDRC
  704. #define PC4_PWM NULL
  705. #undef PC5
  706. #define PC5_PIN PINC5
  707. #define PC5_RPORT PINC
  708. #define PC5_WPORT PORTC
  709. #define PC5_DDR DDRC
  710. #define PC5_PWM NULL
  711. #undef PC6
  712. #define PC6_PIN PINC6
  713. #define PC6_RPORT PINC
  714. #define PC6_WPORT PORTC
  715. #define PC6_DDR DDRC
  716. #define PC6_PWM NULL
  717. #undef PC7
  718. #define PC7_PIN PINC7
  719. #define PC7_RPORT PINC
  720. #define PC7_WPORT PORTC
  721. #define PC7_DDR DDRC
  722. #define PC7_PWM NULL
  723. #undef PD0
  724. #define PD0_PIN PIND0
  725. #define PD0_RPORT PIND
  726. #define PD0_WPORT PORTD
  727. #define PD0_DDR DDRD
  728. #define PD0_PWM NULL
  729. #undef PD1
  730. #define PD1_PIN PIND1
  731. #define PD1_RPORT PIND
  732. #define PD1_WPORT PORTD
  733. #define PD1_DDR DDRD
  734. #define PD1_PWM NULL
  735. #undef PD2
  736. #define PD2_PIN PIND2
  737. #define PD2_RPORT PIND
  738. #define PD2_WPORT PORTD
  739. #define PD2_DDR DDRD
  740. #define PD2_PWM NULL
  741. #undef PD3
  742. #define PD3_PIN PIND3
  743. #define PD3_RPORT PIND
  744. #define PD3_WPORT PORTD
  745. #define PD3_DDR DDRD
  746. #define PD3_PWM NULL
  747. #undef PD4
  748. #define PD4_PIN PIND4
  749. #define PD4_RPORT PIND
  750. #define PD4_WPORT PORTD
  751. #define PD4_DDR DDRD
  752. #define PD4_PWM NULL
  753. #undef PD5
  754. #define PD5_PIN PIND5
  755. #define PD5_RPORT PIND
  756. #define PD5_WPORT PORTD
  757. #define PD5_DDR DDRD
  758. #define PD5_PWM NULL
  759. #undef PD6
  760. #define PD6_PIN PIND6
  761. #define PD6_RPORT PIND
  762. #define PD6_WPORT PORTD
  763. #define PD6_DDR DDRD
  764. #define PD6_PWM OCR2B
  765. #undef PD7
  766. #define PD7_PIN PIND7
  767. #define PD7_RPORT PIND
  768. #define PD7_WPORT PORTD
  769. #define PD7_DDR DDRD
  770. #define PD7_PWM OCR2A
  771. #endif /* _AVR_ATmega{644,644P,644PA}__ */
  772. #if defined (__AVR_ATmega1280__) || defined (__AVR_ATmega2560__)
  773. // UART
  774. #define RXD DIO0
  775. #define TXD DIO1
  776. // SPI
  777. #define SCK DIO52
  778. #define MISO DIO50
  779. #define MOSI DIO51
  780. #define SS DIO53
  781. // TWI (I2C)
  782. #define SCL DIO21
  783. #define SDA DIO20
  784. // timers and PWM
  785. #define OC0A DIO13
  786. #define OC0B DIO4
  787. #define OC1A DIO11
  788. #define OC1B DIO12
  789. #define OC2A DIO10
  790. #define OC2B DIO9
  791. #define OC3A DIO5
  792. #define OC3B DIO2
  793. #define OC3C DIO3
  794. #define OC4A DIO6
  795. #define OC4B DIO7
  796. #define OC4C DIO8
  797. #define OC5A DIO46
  798. #define OC5B DIO45
  799. #define OC5C DIO44
  800. // change for your board
  801. #define DEBUG_LED DIO21
  802. /*
  803. pins
  804. */
  805. #define DIO0_PIN PINE0
  806. #define DIO0_RPORT PINE
  807. #define DIO0_WPORT PORTE
  808. #define DIO0_DDR DDRE
  809. #define DIO0_PWM NULL
  810. #define DIO1_PIN PINE1
  811. #define DIO1_RPORT PINE
  812. #define DIO1_WPORT PORTE
  813. #define DIO1_DDR DDRE
  814. #define DIO1_PWM NULL
  815. #define DIO2_PIN PINE4
  816. #define DIO2_RPORT PINE
  817. #define DIO2_WPORT PORTE
  818. #define DIO2_DDR DDRE
  819. #define DIO2_PWM &OCR3BL
  820. #define DIO3_PIN PINE5
  821. #define DIO3_RPORT PINE
  822. #define DIO3_WPORT PORTE
  823. #define DIO3_DDR DDRE
  824. #define DIO3_PWM &OCR3CL
  825. #define DIO4_PIN PING5
  826. #define DIO4_RPORT PING
  827. #define DIO4_WPORT PORTG
  828. #define DIO4_DDR DDRG
  829. #define DIO4_PWM &OCR0B
  830. #define DIO5_PIN PINE3
  831. #define DIO5_RPORT PINE
  832. #define DIO5_WPORT PORTE
  833. #define DIO5_DDR DDRE
  834. #define DIO5_PWM &OCR3AL
  835. #define DIO6_PIN PINH3
  836. #define DIO6_RPORT PINH
  837. #define DIO6_WPORT PORTH
  838. #define DIO6_DDR DDRH
  839. #define DIO6_PWM &OCR4AL
  840. #define DIO7_PIN PINH4
  841. #define DIO7_RPORT PINH
  842. #define DIO7_WPORT PORTH
  843. #define DIO7_DDR DDRH
  844. #define DIO7_PWM &OCR4BL
  845. #define DIO8_PIN PINH5
  846. #define DIO8_RPORT PINH
  847. #define DIO8_WPORT PORTH
  848. #define DIO8_DDR DDRH
  849. #define DIO8_PWM &OCR4CL
  850. #define DIO9_PIN PINH6
  851. #define DIO9_RPORT PINH
  852. #define DIO9_WPORT PORTH
  853. #define DIO9_DDR DDRH
  854. #define DIO9_PWM &OCR2B
  855. #define DIO10_PIN PINB4
  856. #define DIO10_RPORT PINB
  857. #define DIO10_WPORT PORTB
  858. #define DIO10_DDR DDRB
  859. #define DIO10_PWM &OCR2A
  860. #define DIO11_PIN PINB5
  861. #define DIO11_RPORT PINB
  862. #define DIO11_WPORT PORTB
  863. #define DIO11_DDR DDRB
  864. #define DIO11_PWM NULL
  865. #define DIO12_PIN PINB6
  866. #define DIO12_RPORT PINB
  867. #define DIO12_WPORT PORTB
  868. #define DIO12_DDR DDRB
  869. #define DIO12_PWM NULL
  870. #define DIO13_PIN PINB7
  871. #define DIO13_RPORT PINB
  872. #define DIO13_WPORT PORTB
  873. #define DIO13_DDR DDRB
  874. #define DIO13_PWM &OCR0A
  875. #define DIO14_PIN PINJ1
  876. #define DIO14_RPORT PINJ
  877. #define DIO14_WPORT PORTJ
  878. #define DIO14_DDR DDRJ
  879. #define DIO14_PWM NULL
  880. #define DIO15_PIN PINJ0
  881. #define DIO15_RPORT PINJ
  882. #define DIO15_WPORT PORTJ
  883. #define DIO15_DDR DDRJ
  884. #define DIO15_PWM NULL
  885. #define DIO16_PIN PINH1
  886. #define DIO16_RPORT PINH
  887. #define DIO16_WPORT PORTH
  888. #define DIO16_DDR DDRH
  889. #define DIO16_PWM NULL
  890. #define DIO17_PIN PINH0
  891. #define DIO17_RPORT PINH
  892. #define DIO17_WPORT PORTH
  893. #define DIO17_DDR DDRH
  894. #define DIO17_PWM NULL
  895. #define DIO18_PIN PIND3
  896. #define DIO18_RPORT PIND
  897. #define DIO18_WPORT PORTD
  898. #define DIO18_DDR DDRD
  899. #define DIO18_PWM NULL
  900. #define DIO19_PIN PIND2
  901. #define DIO19_RPORT PIND
  902. #define DIO19_WPORT PORTD
  903. #define DIO19_DDR DDRD
  904. #define DIO19_PWM NULL
  905. #define DIO20_PIN PIND1
  906. #define DIO20_RPORT PIND
  907. #define DIO20_WPORT PORTD
  908. #define DIO20_DDR DDRD
  909. #define DIO20_PWM NULL
  910. #define DIO21_PIN PIND0
  911. #define DIO21_RPORT PIND
  912. #define DIO21_WPORT PORTD
  913. #define DIO21_DDR DDRD
  914. #define DIO21_PWM NULL
  915. #define DIO22_PIN PINA0
  916. #define DIO22_RPORT PINA
  917. #define DIO22_WPORT PORTA
  918. #define DIO22_DDR DDRA
  919. #define DIO22_PWM NULL
  920. #define DIO23_PIN PINA1
  921. #define DIO23_RPORT PINA
  922. #define DIO23_WPORT PORTA
  923. #define DIO23_DDR DDRA
  924. #define DIO23_PWM NULL
  925. #define DIO24_PIN PINA2
  926. #define DIO24_RPORT PINA
  927. #define DIO24_WPORT PORTA
  928. #define DIO24_DDR DDRA
  929. #define DIO24_PWM NULL
  930. #define DIO25_PIN PINA3
  931. #define DIO25_RPORT PINA
  932. #define DIO25_WPORT PORTA
  933. #define DIO25_DDR DDRA
  934. #define DIO25_PWM NULL
  935. #define DIO26_PIN PINA4
  936. #define DIO26_RPORT PINA
  937. #define DIO26_WPORT PORTA
  938. #define DIO26_DDR DDRA
  939. #define DIO26_PWM NULL
  940. #define DIO27_PIN PINA5
  941. #define DIO27_RPORT PINA
  942. #define DIO27_WPORT PORTA
  943. #define DIO27_DDR DDRA
  944. #define DIO27_PWM NULL
  945. #define DIO28_PIN PINA6
  946. #define DIO28_RPORT PINA
  947. #define DIO28_WPORT PORTA
  948. #define DIO28_DDR DDRA
  949. #define DIO28_PWM NULL
  950. #define DIO29_PIN PINA7
  951. #define DIO29_RPORT PINA
  952. #define DIO29_WPORT PORTA
  953. #define DIO29_DDR DDRA
  954. #define DIO29_PWM NULL
  955. #define DIO30_PIN PINC7
  956. #define DIO30_RPORT PINC
  957. #define DIO30_WPORT PORTC
  958. #define DIO30_DDR DDRC
  959. #define DIO30_PWM NULL
  960. #define DIO31_PIN PINC6
  961. #define DIO31_RPORT PINC
  962. #define DIO31_WPORT PORTC
  963. #define DIO31_DDR DDRC
  964. #define DIO31_PWM NULL
  965. #define DIO32_PIN PINC5
  966. #define DIO32_RPORT PINC
  967. #define DIO32_WPORT PORTC
  968. #define DIO32_DDR DDRC
  969. #define DIO32_PWM NULL
  970. #define DIO33_PIN PINC4
  971. #define DIO33_RPORT PINC
  972. #define DIO33_WPORT PORTC
  973. #define DIO33_DDR DDRC
  974. #define DIO33_PWM NULL
  975. #define DIO34_PIN PINC3
  976. #define DIO34_RPORT PINC
  977. #define DIO34_WPORT PORTC
  978. #define DIO34_DDR DDRC
  979. #define DIO34_PWM NULL
  980. #define DIO35_PIN PINC2
  981. #define DIO35_RPORT PINC
  982. #define DIO35_WPORT PORTC
  983. #define DIO35_DDR DDRC
  984. #define DIO35_PWM NULL
  985. #define DIO36_PIN PINC1
  986. #define DIO36_RPORT PINC
  987. #define DIO36_WPORT PORTC
  988. #define DIO36_DDR DDRC
  989. #define DIO36_PWM NULL
  990. #define DIO37_PIN PINC0
  991. #define DIO37_RPORT PINC
  992. #define DIO37_WPORT PORTC
  993. #define DIO37_DDR DDRC
  994. #define DIO37_PWM NULL
  995. #define DIO38_PIN PIND7
  996. #define DIO38_RPORT PIND
  997. #define DIO38_WPORT PORTD
  998. #define DIO38_DDR DDRD
  999. #define DIO38_PWM NULL
  1000. #define DIO39_PIN PING2
  1001. #define DIO39_RPORT PING
  1002. #define DIO39_WPORT PORTG
  1003. #define DIO39_DDR DDRG
  1004. #define DIO39_PWM NULL
  1005. #define DIO40_PIN PING1
  1006. #define DIO40_RPORT PING
  1007. #define DIO40_WPORT PORTG
  1008. #define DIO40_DDR DDRG
  1009. #define DIO40_PWM NULL
  1010. #define DIO41_PIN PING0
  1011. #define DIO41_RPORT PING
  1012. #define DIO41_WPORT PORTG
  1013. #define DIO41_DDR DDRG
  1014. #define DIO41_PWM NULL
  1015. #define DIO42_PIN PINL7
  1016. #define DIO42_RPORT PINL
  1017. #define DIO42_WPORT PORTL
  1018. #define DIO42_DDR DDRL
  1019. #define DIO42_PWM NULL
  1020. #define DIO43_PIN PINL6
  1021. #define DIO43_RPORT PINL
  1022. #define DIO43_WPORT PORTL
  1023. #define DIO43_DDR DDRL
  1024. #define DIO43_PWM NULL
  1025. #define DIO44_PIN PINL5
  1026. #define DIO44_RPORT PINL
  1027. #define DIO44_WPORT PORTL
  1028. #define DIO44_DDR DDRL
  1029. #define DIO44_PWM &OCR5CL
  1030. #define DIO45_PIN PINL4
  1031. #define DIO45_RPORT PINL
  1032. #define DIO45_WPORT PORTL
  1033. #define DIO45_DDR DDRL
  1034. #define DIO45_PWM &OCR5BL
  1035. #define DIO46_PIN PINL3
  1036. #define DIO46_RPORT PINL
  1037. #define DIO46_WPORT PORTL
  1038. #define DIO46_DDR DDRL
  1039. #define DIO46_PWM &OCR5AL
  1040. #define DIO47_PIN PINL2
  1041. #define DIO47_RPORT PINL
  1042. #define DIO47_WPORT PORTL
  1043. #define DIO47_DDR DDRL
  1044. #define DIO47_PWM NULL
  1045. #define DIO48_PIN PINL1
  1046. #define DIO48_RPORT PINL
  1047. #define DIO48_WPORT PORTL
  1048. #define DIO48_DDR DDRL
  1049. #define DIO48_PWM NULL
  1050. #define DIO49_PIN PINL0
  1051. #define DIO49_RPORT PINL
  1052. #define DIO49_WPORT PORTL
  1053. #define DIO49_DDR DDRL
  1054. #define DIO49_PWM NULL
  1055. #define DIO50_PIN PINB3
  1056. #define DIO50_RPORT PINB
  1057. #define DIO50_WPORT PORTB
  1058. #define DIO50_DDR DDRB
  1059. #define DIO50_PWM NULL
  1060. #define DIO51_PIN PINB2
  1061. #define DIO51_RPORT PINB
  1062. #define DIO51_WPORT PORTB
  1063. #define DIO51_DDR DDRB
  1064. #define DIO51_PWM NULL
  1065. #define DIO52_PIN PINB1
  1066. #define DIO52_RPORT PINB
  1067. #define DIO52_WPORT PORTB
  1068. #define DIO52_DDR DDRB
  1069. #define DIO52_PWM NULL
  1070. #define DIO53_PIN PINB0
  1071. #define DIO53_RPORT PINB
  1072. #define DIO53_WPORT PORTB
  1073. #define DIO53_DDR DDRB
  1074. #define DIO53_PWM NULL
  1075. #define DIO54_PIN PINF0
  1076. #define DIO54_RPORT PINF
  1077. #define DIO54_WPORT PORTF
  1078. #define DIO54_DDR DDRF
  1079. #define DIO54_PWM NULL
  1080. #define DIO55_PIN PINF1
  1081. #define DIO55_RPORT PINF
  1082. #define DIO55_WPORT PORTF
  1083. #define DIO55_DDR DDRF
  1084. #define DIO55_PWM NULL
  1085. #define DIO56_PIN PINF2
  1086. #define DIO56_RPORT PINF
  1087. #define DIO56_WPORT PORTF
  1088. #define DIO56_DDR DDRF
  1089. #define DIO56_PWM NULL
  1090. #define DIO57_PIN PINF3
  1091. #define DIO57_RPORT PINF
  1092. #define DIO57_WPORT PORTF
  1093. #define DIO57_DDR DDRF
  1094. #define DIO57_PWM NULL
  1095. #define DIO58_PIN PINF4
  1096. #define DIO58_RPORT PINF
  1097. #define DIO58_WPORT PORTF
  1098. #define DIO58_DDR DDRF
  1099. #define DIO58_PWM NULL
  1100. #define DIO59_PIN PINF5
  1101. #define DIO59_RPORT PINF
  1102. #define DIO59_WPORT PORTF
  1103. #define DIO59_DDR DDRF
  1104. #define DIO59_PWM NULL
  1105. #define DIO60_PIN PINF6
  1106. #define DIO60_RPORT PINF
  1107. #define DIO60_WPORT PORTF
  1108. #define DIO60_DDR DDRF
  1109. #define DIO60_PWM NULL
  1110. #define DIO61_PIN PINF7
  1111. #define DIO61_RPORT PINF
  1112. #define DIO61_WPORT PORTF
  1113. #define DIO61_DDR DDRF
  1114. #define DIO61_PWM NULL
  1115. #define DIO62_PIN PINK0
  1116. #define DIO62_RPORT PINK
  1117. #define DIO62_WPORT PORTK
  1118. #define DIO62_DDR DDRK
  1119. #define DIO62_PWM NULL
  1120. #define DIO63_PIN PINK1
  1121. #define DIO63_RPORT PINK
  1122. #define DIO63_WPORT PORTK
  1123. #define DIO63_DDR DDRK
  1124. #define DIO63_PWM NULL
  1125. #define DIO64_PIN PINK2
  1126. #define DIO64_RPORT PINK
  1127. #define DIO64_WPORT PORTK
  1128. #define DIO64_DDR DDRK
  1129. #define DIO64_PWM NULL
  1130. #define DIO65_PIN PINK3
  1131. #define DIO65_RPORT PINK
  1132. #define DIO65_WPORT PORTK
  1133. #define DIO65_DDR DDRK
  1134. #define DIO65_PWM NULL
  1135. #define DIO66_PIN PINK4
  1136. #define DIO66_RPORT PINK
  1137. #define DIO66_WPORT PORTK
  1138. #define DIO66_DDR DDRK
  1139. #define DIO66_PWM NULL
  1140. #define DIO67_PIN PINK5
  1141. #define DIO67_RPORT PINK
  1142. #define DIO67_WPORT PORTK
  1143. #define DIO67_DDR DDRK
  1144. #define DIO67_PWM NULL
  1145. #define DIO68_PIN PINK6
  1146. #define DIO68_RPORT PINK
  1147. #define DIO68_WPORT PORTK
  1148. #define DIO68_DDR DDRK
  1149. #define DIO68_PWM NULL
  1150. #define DIO69_PIN PINK7
  1151. #define DIO69_RPORT PINK
  1152. #define DIO69_WPORT PORTK
  1153. #define DIO69_DDR DDRK
  1154. #define DIO69_PWM NULL
  1155. #define DIO76_PIN PINJ5
  1156. #define DIO76_RPORT PINJ
  1157. #define DIO76_WPORT PORTJ
  1158. #define DIO76_DDR DDRJ
  1159. #define DIO76_PWM NULL
  1160. #define DIO77_PIN PINJ6
  1161. #define DIO77_RPORT PINJ
  1162. #define DIO77_WPORT PORTJ
  1163. #define DIO77_DDR DDRJ
  1164. #define DIO77_PWM NULL
  1165. #define DIO78_PIN PINE2
  1166. #define DIO78_RPORT PINE
  1167. #define DIO78_WPORT PORTE
  1168. #define DIO78_DDR DDRE
  1169. #define DIO78_PWM NULL
  1170. #define DIO79_PIN PINE6
  1171. #define DIO79_RPORT PINE
  1172. #define DIO79_WPORT PORTE
  1173. #define DIO79_DDR DDRE
  1174. #define DIO79_PWM NULL
  1175. #define DIO80_PIN PINE7
  1176. #define DIO80_RPORT PINE
  1177. #define DIO80_WPORT PORTE
  1178. #define DIO80_DDR DDRE
  1179. #define DIO80_PWM NULL
  1180. #define DIO81_PIN PIND4
  1181. #define DIO81_RPORT PIND
  1182. #define DIO81_WPORT PORTD
  1183. #define DIO81_DDR DDRD
  1184. #define DIO81_PWM NULL
  1185. #define DIO70_PIN PING4
  1186. #define DIO70_RPORT PING
  1187. #define DIO70_WPORT PORTG
  1188. #define DIO70_DDR DDRG
  1189. #define DIO70_PWM NULL
  1190. #define DIO71_PIN PING3
  1191. #define DIO71_RPORT PING
  1192. #define DIO71_WPORT PORTG
  1193. #define DIO71_DDR DDRG
  1194. #define DIO71_PWM NULL
  1195. #define DIO72_PIN PINJ2
  1196. #define DIO72_RPORT PINJ
  1197. #define DIO72_WPORT PORTJ
  1198. #define DIO72_DDR DDRJ
  1199. #define DIO72_PWM NULL
  1200. #define DIO73_PIN PINJ3
  1201. #define DIO73_RPORT PINJ
  1202. #define DIO73_WPORT PORTJ
  1203. #define DIO73_DDR DDRJ
  1204. #define DIO73_PWM NULL
  1205. #define DIO74_PIN PINJ7
  1206. #define DIO74_RPORT PINJ
  1207. #define DIO74_WPORT PORTJ
  1208. #define DIO74_DDR DDRJ
  1209. #define DIO74_PWM NULL
  1210. #define DIO75_PIN PINJ4
  1211. #define DIO75_RPORT PINJ
  1212. #define DIO75_WPORT PORTJ
  1213. #define DIO75_DDR DDRJ
  1214. #define DIO75_PWM NULL
  1215. #define DIO76_PIN PINJ5
  1216. #define DIO76_RPORT PINJ
  1217. #define DIO76_WPORT PORTJ
  1218. #define DIO76_DDR DDRJ
  1219. #define DIO76_PWM NULL
  1220. #define DIO77_PIN PINJ6
  1221. #define DIO77_RPORT PINJ
  1222. #define DIO77_WPORT PORTJ
  1223. #define DIO77_DDR DDRJ
  1224. #define DIO77_PWM NULL
  1225. #define DIO78_PIN PINE2
  1226. #define DIO78_RPORT PINE
  1227. #define DIO78_WPORT PORTE
  1228. #define DIO78_DDR DDRE
  1229. #define DIO78_PWM NULL
  1230. #define DIO79_PIN PINE6
  1231. #define DIO79_RPORT PINE
  1232. #define DIO79_WPORT PORTE
  1233. #define DIO79_DDR DDRE
  1234. #define DIO79_PWM NULL
  1235. #define DIO80_PIN PINE7
  1236. #define DIO80_RPORT PINE
  1237. #define DIO80_WPORT PORTE
  1238. #define DIO80_DDR DDRE
  1239. #define DIO80_PWM NULL
  1240. #define DIO81_PIN PIND4
  1241. #define DIO81_RPORT PIND
  1242. #define DIO81_WPORT PORTD
  1243. #define DIO81_DDR DDRD
  1244. #define DIO81_PWM NULL
  1245. #define DIO82_PIN PIND5
  1246. #define DIO82_RPORT PIND
  1247. #define DIO82_WPORT PORTD
  1248. #define DIO82_DDR DDRD
  1249. #define DIO82_PWM NULL
  1250. #define DIO83_PIN PIND6
  1251. #define DIO83_RPORT PIND
  1252. #define DIO83_WPORT PORTD
  1253. #define DIO83_DDR DDRD
  1254. #define DIO83_PWM NULL
  1255. #define DIO84_PIN PINH2
  1256. #define DIO84_RPORT PINH
  1257. #define DIO84_WPORT PORTH
  1258. #define DIO84_DDR DDRH
  1259. #define DIO84_PWM NULL
  1260. #define DIO85_PIN PINH7
  1261. #define DIO85_RPORT PINH
  1262. #define DIO85_WPORT PORTH
  1263. #define DIO85_DDR DDRH
  1264. #define DIO85_PWM NULL
  1265. #undef PA0
  1266. #define PA0_PIN PINA0
  1267. #define PA0_RPORT PINA
  1268. #define PA0_WPORT PORTA
  1269. #define PA0_DDR DDRA
  1270. #define PA0_PWM NULL
  1271. #undef PA1
  1272. #define PA1_PIN PINA1
  1273. #define PA1_RPORT PINA
  1274. #define PA1_WPORT PORTA
  1275. #define PA1_DDR DDRA
  1276. #define PA1_PWM NULL
  1277. #undef PA2
  1278. #define PA2_PIN PINA2
  1279. #define PA2_RPORT PINA
  1280. #define PA2_WPORT PORTA
  1281. #define PA2_DDR DDRA
  1282. #define PA2_PWM NULL
  1283. #undef PA3
  1284. #define PA3_PIN PINA3
  1285. #define PA3_RPORT PINA
  1286. #define PA3_WPORT PORTA
  1287. #define PA3_DDR DDRA
  1288. #define PA3_PWM NULL
  1289. #undef PA4
  1290. #define PA4_PIN PINA4
  1291. #define PA4_RPORT PINA
  1292. #define PA4_WPORT PORTA
  1293. #define PA4_DDR DDRA
  1294. #define PA4_PWM NULL
  1295. #undef PA5
  1296. #define PA5_PIN PINA5
  1297. #define PA5_RPORT PINA
  1298. #define PA5_WPORT PORTA
  1299. #define PA5_DDR DDRA
  1300. #define PA5_PWM NULL
  1301. #undef PA6
  1302. #define PA6_PIN PINA6
  1303. #define PA6_RPORT PINA
  1304. #define PA6_WPORT PORTA
  1305. #define PA6_DDR DDRA
  1306. #define PA6_PWM NULL
  1307. #undef PA7
  1308. #define PA7_PIN PINA7
  1309. #define PA7_RPORT PINA
  1310. #define PA7_WPORT PORTA
  1311. #define PA7_DDR DDRA
  1312. #define PA7_PWM NULL
  1313. #undef PB0
  1314. #define PB0_PIN PINB0
  1315. #define PB0_RPORT PINB
  1316. #define PB0_WPORT PORTB
  1317. #define PB0_DDR DDRB
  1318. #define PB0_PWM NULL
  1319. #undef PB1
  1320. #define PB1_PIN PINB1
  1321. #define PB1_RPORT PINB
  1322. #define PB1_WPORT PORTB
  1323. #define PB1_DDR DDRB
  1324. #define PB1_PWM NULL
  1325. #undef PB2
  1326. #define PB2_PIN PINB2
  1327. #define PB2_RPORT PINB
  1328. #define PB2_WPORT PORTB
  1329. #define PB2_DDR DDRB
  1330. #define PB2_PWM NULL
  1331. #undef PB3
  1332. #define PB3_PIN PINB3
  1333. #define PB3_RPORT PINB
  1334. #define PB3_WPORT PORTB
  1335. #define PB3_DDR DDRB
  1336. #define PB3_PWM NULL
  1337. #undef PB4
  1338. #define PB4_PIN PINB4
  1339. #define PB4_RPORT PINB
  1340. #define PB4_WPORT PORTB
  1341. #define PB4_DDR DDRB
  1342. #define PB4_PWM &OCR2A
  1343. #undef PB5
  1344. #define PB5_PIN PINB5
  1345. #define PB5_RPORT PINB
  1346. #define PB5_WPORT PORTB
  1347. #define PB5_DDR DDRB
  1348. #define PB5_PWM NULL
  1349. #undef PB6
  1350. #define PB6_PIN PINB6
  1351. #define PB6_RPORT PINB
  1352. #define PB6_WPORT PORTB
  1353. #define PB6_DDR DDRB
  1354. #define PB6_PWM NULL
  1355. #undef PB7
  1356. #define PB7_PIN PINB7
  1357. #define PB7_RPORT PINB
  1358. #define PB7_WPORT PORTB
  1359. #define PB7_DDR DDRB
  1360. #define PB7_PWM &OCR0A
  1361. #undef PC0
  1362. #define PC0_PIN PINC0
  1363. #define PC0_RPORT PINC
  1364. #define PC0_WPORT PORTC
  1365. #define PC0_DDR DDRC
  1366. #define PC0_PWM NULL
  1367. #undef PC1
  1368. #define PC1_PIN PINC1
  1369. #define PC1_RPORT PINC
  1370. #define PC1_WPORT PORTC
  1371. #define PC1_DDR DDRC
  1372. #define PC1_PWM NULL
  1373. #undef PC2
  1374. #define PC2_PIN PINC2
  1375. #define PC2_RPORT PINC
  1376. #define PC2_WPORT PORTC
  1377. #define PC2_DDR DDRC
  1378. #define PC2_PWM NULL
  1379. #undef PC3
  1380. #define PC3_PIN PINC3
  1381. #define PC3_RPORT PINC
  1382. #define PC3_WPORT PORTC
  1383. #define PC3_DDR DDRC
  1384. #define PC3_PWM NULL
  1385. #undef PC4
  1386. #define PC4_PIN PINC4
  1387. #define PC4_RPORT PINC
  1388. #define PC4_WPORT PORTC
  1389. #define PC4_DDR DDRC
  1390. #define PC4_PWM NULL
  1391. #undef PC5
  1392. #define PC5_PIN PINC5
  1393. #define PC5_RPORT PINC
  1394. #define PC5_WPORT PORTC
  1395. #define PC5_DDR DDRC
  1396. #define PC5_PWM NULL
  1397. #undef PC6
  1398. #define PC6_PIN PINC6
  1399. #define PC6_RPORT PINC
  1400. #define PC6_WPORT PORTC
  1401. #define PC6_DDR DDRC
  1402. #define PC6_PWM NULL
  1403. #undef PC7
  1404. #define PC7_PIN PINC7
  1405. #define PC7_RPORT PINC
  1406. #define PC7_WPORT PORTC
  1407. #define PC7_DDR DDRC
  1408. #define PC7_PWM NULL
  1409. #undef PD0
  1410. #define PD0_PIN PIND0
  1411. #define PD0_RPORT PIND
  1412. #define PD0_WPORT PORTD
  1413. #define PD0_DDR DDRD
  1414. #define PD0_PWM NULL
  1415. #undef PD1
  1416. #define PD1_PIN PIND1
  1417. #define PD1_RPORT PIND
  1418. #define PD1_WPORT PORTD
  1419. #define PD1_DDR DDRD
  1420. #define PD1_PWM NULL
  1421. #undef PD2
  1422. #define PD2_PIN PIND2
  1423. #define PD2_RPORT PIND
  1424. #define PD2_WPORT PORTD
  1425. #define PD2_DDR DDRD
  1426. #define PD2_PWM NULL
  1427. #undef PD3
  1428. #define PD3_PIN PIND3
  1429. #define PD3_RPORT PIND
  1430. #define PD3_WPORT PORTD
  1431. #define PD3_DDR DDRD
  1432. #define PD3_PWM NULL
  1433. #undef PD4
  1434. #define PD4_PIN PIND4
  1435. #define PD4_RPORT PIND
  1436. #define PD4_WPORT PORTD
  1437. #define PD4_DDR DDRD
  1438. #define PD4_PWM NULL
  1439. #undef PD5
  1440. #define PD5_PIN PIND5
  1441. #define PD5_RPORT PIND
  1442. #define PD5_WPORT PORTD
  1443. #define PD5_DDR DDRD
  1444. #define PD5_PWM NULL
  1445. #undef PD6
  1446. #define PD6_PIN PIND6
  1447. #define PD6_RPORT PIND
  1448. #define PD6_WPORT PORTD
  1449. #define PD6_DDR DDRD
  1450. #define PD6_PWM NULL
  1451. #undef PD7
  1452. #define PD7_PIN PIND7
  1453. #define PD7_RPORT PIND
  1454. #define PD7_WPORT PORTD
  1455. #define PD7_DDR DDRD
  1456. #define PD7_PWM NULL
  1457. #undef PE0
  1458. #define PE0_PIN PINE0
  1459. #define PE0_RPORT PINE
  1460. #define PE0_WPORT PORTE
  1461. #define PE0_DDR DDRE
  1462. #define PE0_PWM NULL
  1463. #undef PE1
  1464. #define PE1_PIN PINE1
  1465. #define PE1_RPORT PINE
  1466. #define PE1_WPORT PORTE
  1467. #define PE1_DDR DDRE
  1468. #define PE1_PWM NULL
  1469. #undef PE2
  1470. #define PE2_PIN PINE2
  1471. #define PE2_RPORT PINE
  1472. #define PE2_WPORT PORTE
  1473. #define PE2_DDR DDRE
  1474. #define PE2_PWM NULL
  1475. #undef PE3
  1476. #define PE3_PIN PINE3
  1477. #define PE3_RPORT PINE
  1478. #define PE3_WPORT PORTE
  1479. #define PE3_DDR DDRE
  1480. #define PE3_PWM &OCR3AL
  1481. #undef PE4
  1482. #define PE4_PIN PINE4
  1483. #define PE4_RPORT PINE
  1484. #define PE4_WPORT PORTE
  1485. #define PE4_DDR DDRE
  1486. #define PE4_PWM &OCR3BL
  1487. #undef PE5
  1488. #define PE5_PIN PINE5
  1489. #define PE5_RPORT PINE
  1490. #define PE5_WPORT PORTE
  1491. #define PE5_DDR DDRE
  1492. #define PE5_PWM &OCR3CL
  1493. #undef PE6
  1494. #define PE6_PIN PINE6
  1495. #define PE6_RPORT PINE
  1496. #define PE6_WPORT PORTE
  1497. #define PE6_DDR DDRE
  1498. #define PE6_PWM NULL
  1499. #undef PE7
  1500. #define PE7_PIN PINE7
  1501. #define PE7_RPORT PINE
  1502. #define PE7_WPORT PORTE
  1503. #define PE7_DDR DDRE
  1504. #define PE7_PWM NULL
  1505. #undef PF0
  1506. #define PF0_PIN PINF0
  1507. #define PF0_RPORT PINF
  1508. #define PF0_WPORT PORTF
  1509. #define PF0_DDR DDRF
  1510. #define PF0_PWM NULL
  1511. #undef PF1
  1512. #define PF1_PIN PINF1
  1513. #define PF1_RPORT PINF
  1514. #define PF1_WPORT PORTF
  1515. #define PF1_DDR DDRF
  1516. #define PF1_PWM NULL
  1517. #undef PF2
  1518. #define PF2_PIN PINF2
  1519. #define PF2_RPORT PINF
  1520. #define PF2_WPORT PORTF
  1521. #define PF2_DDR DDRF
  1522. #define PF2_PWM NULL
  1523. #undef PF3
  1524. #define PF3_PIN PINF3
  1525. #define PF3_RPORT PINF
  1526. #define PF3_WPORT PORTF
  1527. #define PF3_DDR DDRF
  1528. #define PF3_PWM NULL
  1529. #undef PF4
  1530. #define PF4_PIN PINF4
  1531. #define PF4_RPORT PINF
  1532. #define PF4_WPORT PORTF
  1533. #define PF4_DDR DDRF
  1534. #define PF4_PWM NULL
  1535. #undef PF5
  1536. #define PF5_PIN PINF5
  1537. #define PF5_RPORT PINF
  1538. #define PF5_WPORT PORTF
  1539. #define PF5_DDR DDRF
  1540. #define PF5_PWM NULL
  1541. #undef PF6
  1542. #define PF6_PIN PINF6
  1543. #define PF6_RPORT PINF
  1544. #define PF6_WPORT PORTF
  1545. #define PF6_DDR DDRF
  1546. #define PF6_PWM NULL
  1547. #undef PF7
  1548. #define PF7_PIN PINF7
  1549. #define PF7_RPORT PINF
  1550. #define PF7_WPORT PORTF
  1551. #define PF7_DDR DDRF
  1552. #define PF7_PWM NULL
  1553. #undef PG0
  1554. #define PG0_PIN PING0
  1555. #define PG0_RPORT PING
  1556. #define PG0_WPORT PORTG
  1557. #define PG0_DDR DDRG
  1558. #define PG0_PWM NULL
  1559. #undef PG1
  1560. #define PG1_PIN PING1
  1561. #define PG1_RPORT PING
  1562. #define PG1_WPORT PORTG
  1563. #define PG1_DDR DDRG
  1564. #define PG1_PWM NULL
  1565. #undef PG2
  1566. #define PG2_PIN PING2
  1567. #define PG2_RPORT PING
  1568. #define PG2_WPORT PORTG
  1569. #define PG2_DDR DDRG
  1570. #define PG2_PWM NULL
  1571. #undef PG3
  1572. #define PG3_PIN PING3
  1573. #define PG3_RPORT PING
  1574. #define PG3_WPORT PORTG
  1575. #define PG3_DDR DDRG
  1576. #define PG3_PWM NULL
  1577. #undef PG4
  1578. #define PG4_PIN PING4
  1579. #define PG4_RPORT PING
  1580. #define PG4_WPORT PORTG
  1581. #define PG4_DDR DDRG
  1582. #define PG4_PWM NULL
  1583. #undef PG5
  1584. #define PG5_PIN PING5
  1585. #define PG5_RPORT PING
  1586. #define PG5_WPORT PORTG
  1587. #define PG5_DDR DDRG
  1588. #define PG5_PWM &OCR0B
  1589. #undef PG6
  1590. #define PG6_PIN PING6
  1591. #define PG6_RPORT PING
  1592. #define PG6_WPORT PORTG
  1593. #define PG6_DDR DDRG
  1594. #define PG6_PWM NULL
  1595. #undef PG7
  1596. #define PG7_PIN PING7
  1597. #define PG7_RPORT PING
  1598. #define PG7_WPORT PORTG
  1599. #define PG7_DDR DDRG
  1600. #define PG7_PWM NULL
  1601. #undef PH0
  1602. #define PH0_PIN PINH0
  1603. #define PH0_RPORT PINH
  1604. #define PH0_WPORT PORTH
  1605. #define PH0_DDR DDRH
  1606. #define PH0_PWM NULL
  1607. #undef PH1
  1608. #define PH1_PIN PINH1
  1609. #define PH1_RPORT PINH
  1610. #define PH1_WPORT PORTH
  1611. #define PH1_DDR DDRH
  1612. #define PH1_PWM NULL
  1613. #undef PH2
  1614. #define PH2_PIN PINH2
  1615. #define PH2_RPORT PINH
  1616. #define PH2_WPORT PORTH
  1617. #define PH2_DDR DDRH
  1618. #define PH2_PWM NULL
  1619. #undef PH3
  1620. #define PH3_PIN PINH3
  1621. #define PH3_RPORT PINH
  1622. #define PH3_WPORT PORTH
  1623. #define PH3_DDR DDRH
  1624. #define PH3_PWM &OCR4AL
  1625. #undef PH4
  1626. #define PH4_PIN PINH4
  1627. #define PH4_RPORT PINH
  1628. #define PH4_WPORT PORTH
  1629. #define PH4_DDR DDRH
  1630. #define PH4_PWM &OCR4BL
  1631. #undef PH5
  1632. #define PH5_PIN PINH5
  1633. #define PH5_RPORT PINH
  1634. #define PH5_WPORT PORTH
  1635. #define PH5_DDR DDRH
  1636. #define PH5_PWM &OCR4CL
  1637. #undef PH6
  1638. #define PH6_PIN PINH6
  1639. #define PH6_RPORT PINH
  1640. #define PH6_WPORT PORTH
  1641. #define PH6_DDR DDRH
  1642. #define PH6_PWM &OCR2B
  1643. #undef PH7
  1644. #define PH7_PIN PINH7
  1645. #define PH7_RPORT PINH
  1646. #define PH7_WPORT PORTH
  1647. #define PH7_DDR DDRH
  1648. #define PH7_PWM NULL
  1649. #undef PJ0
  1650. #define PJ0_PIN PINJ0
  1651. #define PJ0_RPORT PINJ
  1652. #define PJ0_WPORT PORTJ
  1653. #define PJ0_DDR DDRJ
  1654. #define PJ0_PWM NULL
  1655. #undef PJ1
  1656. #define PJ1_PIN PINJ1
  1657. #define PJ1_RPORT PINJ
  1658. #define PJ1_WPORT PORTJ
  1659. #define PJ1_DDR DDRJ
  1660. #define PJ1_PWM NULL
  1661. #undef PJ2
  1662. #define PJ2_PIN PINJ2
  1663. #define PJ2_RPORT PINJ
  1664. #define PJ2_WPORT PORTJ
  1665. #define PJ2_DDR DDRJ
  1666. #define PJ2_PWM NULL
  1667. #undef PJ3
  1668. #define PJ3_PIN PINJ3
  1669. #define PJ3_RPORT PINJ
  1670. #define PJ3_WPORT PORTJ
  1671. #define PJ3_DDR DDRJ
  1672. #define PJ3_PWM NULL
  1673. #undef PJ4
  1674. #define PJ4_PIN PINJ4
  1675. #define PJ4_RPORT PINJ
  1676. #define PJ4_WPORT PORTJ
  1677. #define PJ4_DDR DDRJ
  1678. #define PJ4_PWM NULL
  1679. #undef PJ5
  1680. #define PJ5_PIN PINJ5
  1681. #define PJ5_RPORT PINJ
  1682. #define PJ5_WPORT PORTJ
  1683. #define PJ5_DDR DDRJ
  1684. #define PJ5_PWM NULL
  1685. #undef PJ6
  1686. #define PJ6_PIN PINJ6
  1687. #define PJ6_RPORT PINJ
  1688. #define PJ6_WPORT PORTJ
  1689. #define PJ6_DDR DDRJ
  1690. #define PJ6_PWM NULL
  1691. #undef PJ7
  1692. #define PJ7_PIN PINJ7
  1693. #define PJ7_RPORT PINJ
  1694. #define PJ7_WPORT PORTJ
  1695. #define PJ7_DDR DDRJ
  1696. #define PJ7_PWM NULL
  1697. #undef PK0
  1698. #define PK0_PIN PINK0
  1699. #define PK0_RPORT PINK
  1700. #define PK0_WPORT PORTK
  1701. #define PK0_DDR DDRK
  1702. #define PK0_PWM NULL
  1703. #undef PK1
  1704. #define PK1_PIN PINK1
  1705. #define PK1_RPORT PINK
  1706. #define PK1_WPORT PORTK
  1707. #define PK1_DDR DDRK
  1708. #define PK1_PWM NULL
  1709. #undef PK2
  1710. #define PK2_PIN PINK2
  1711. #define PK2_RPORT PINK
  1712. #define PK2_WPORT PORTK
  1713. #define PK2_DDR DDRK
  1714. #define PK2_PWM NULL
  1715. #undef PK3
  1716. #define PK3_PIN PINK3
  1717. #define PK3_RPORT PINK
  1718. #define PK3_WPORT PORTK
  1719. #define PK3_DDR DDRK
  1720. #define PK3_PWM NULL
  1721. #undef PK4
  1722. #define PK4_PIN PINK4
  1723. #define PK4_RPORT PINK
  1724. #define PK4_WPORT PORTK
  1725. #define PK4_DDR DDRK
  1726. #define PK4_PWM NULL
  1727. #undef PK5
  1728. #define PK5_PIN PINK5
  1729. #define PK5_RPORT PINK
  1730. #define PK5_WPORT PORTK
  1731. #define PK5_DDR DDRK
  1732. #define PK5_PWM NULL
  1733. #undef PK6
  1734. #define PK6_PIN PINK6
  1735. #define PK6_RPORT PINK
  1736. #define PK6_WPORT PORTK
  1737. #define PK6_DDR DDRK
  1738. #define PK6_PWM NULL
  1739. #undef PK7
  1740. #define PK7_PIN PINK7
  1741. #define PK7_RPORT PINK
  1742. #define PK7_WPORT PORTK
  1743. #define PK7_DDR DDRK
  1744. #define PK7_PWM NULL
  1745. #undef PL0
  1746. #define PL0_PIN PINL0
  1747. #define PL0_RPORT PINL
  1748. #define PL0_WPORT PORTL
  1749. #define PL0_DDR DDRL
  1750. #define PL0_PWM NULL
  1751. #undef PL1
  1752. #define PL1_PIN PINL1
  1753. #define PL1_RPORT PINL
  1754. #define PL1_WPORT PORTL
  1755. #define PL1_DDR DDRL
  1756. #define PL1_PWM NULL
  1757. #undef PL2
  1758. #define PL2_PIN PINL2
  1759. #define PL2_RPORT PINL
  1760. #define PL2_WPORT PORTL
  1761. #define PL2_DDR DDRL
  1762. #define PL2_PWM NULL
  1763. #undef PL3
  1764. #define PL3_PIN PINL3
  1765. #define PL3_RPORT PINL
  1766. #define PL3_WPORT PORTL
  1767. #define PL3_DDR DDRL
  1768. #define PL3_PWM &OCR5AL
  1769. #undef PL4
  1770. #define PL4_PIN PINL4
  1771. #define PL4_RPORT PINL
  1772. #define PL4_WPORT PORTL
  1773. #define PL4_DDR DDRL
  1774. #define PL4_PWM &OCR5BL
  1775. #undef PL5
  1776. #define PL5_PIN PINL5
  1777. #define PL5_RPORT PINL
  1778. #define PL5_WPORT PORTL
  1779. #define PL5_DDR DDRL
  1780. #define PL5_PWM &OCR5CL
  1781. #undef PL6
  1782. #define PL6_PIN PINL6
  1783. #define PL6_RPORT PINL
  1784. #define PL6_WPORT PORTL
  1785. #define PL6_DDR DDRL
  1786. #define PL6_PWM NULL
  1787. #undef PL7
  1788. #define PL7_PIN PINL7
  1789. #define PL7_RPORT PINL
  1790. #define PL7_WPORT PORTL
  1791. #define PL7_DDR DDRL
  1792. #define PL7_PWM NULL
  1793. #endif
  1794. #if defined (__AVR_AT90USB1287__) || defined (__AVR_AT90USB1286__) || defined (__AVR_AT90USB646__) || defined(__AVR_AT90USB647__)
  1795. // SPI
  1796. #define SCK DIO9
  1797. #define MISO DIO11
  1798. #define MOSI DIO10
  1799. #define SS DIO8
  1800. // change for your board
  1801. #define DEBUG_LED DIO31 /* led D5 red */
  1802. /*
  1803. pins
  1804. */
  1805. //#define AT90USBxx_TEENSYPP_ASSIGNMENTS // Use Teensy++ 2.0 assignments
  1806. #ifndef AT90USBxx_TEENSYPP_ASSIGNMENTS // Use traditional Marlin pin assignments
  1807. #define DIO0_PIN PINA0
  1808. #define DIO0_RPORT PINA
  1809. #define DIO0_WPORT PORTA
  1810. #define DIO0_PWM NULL
  1811. #define DIO0_DDR DDRA
  1812. #define DIO1_PIN PINA1
  1813. #define DIO1_RPORT PINA
  1814. #define DIO1_WPORT PORTA
  1815. #define DIO1_PWM NULL
  1816. #define DIO1_DDR DDRA
  1817. #define DIO2_PIN PINA2
  1818. #define DIO2_RPORT PINA
  1819. #define DIO2_WPORT PORTA
  1820. #define DIO2_PWM NULL
  1821. #define DIO2_DDR DDRA
  1822. #define DIO3_PIN PINA3
  1823. #define DIO3_RPORT PINA
  1824. #define DIO3_WPORT PORTA
  1825. #define DIO3_PWM NULL
  1826. #define DIO3_DDR DDRA
  1827. #define DIO4_PIN PINA4
  1828. #define DIO4_RPORT PINA
  1829. #define DIO4_WPORT PORTA
  1830. #define DIO4_PWM NULL
  1831. #define DIO4_DDR DDRA
  1832. #define DIO5_PIN PINA5
  1833. #define DIO5_RPORT PINA
  1834. #define DIO5_WPORT PORTA
  1835. #define DIO5_PWM NULL
  1836. #define DIO5_DDR DDRA
  1837. #define DIO6_PIN PINA6
  1838. #define DIO6_RPORT PINA
  1839. #define DIO6_WPORT PORTA
  1840. #define DIO6_PWM NULL
  1841. #define DIO6_DDR DDRA
  1842. #define DIO7_PIN PINA7
  1843. #define DIO7_RPORT PINA
  1844. #define DIO7_WPORT PORTA
  1845. #define DIO7_PWM NULL
  1846. #define DIO7_DDR DDRA
  1847. #define DIO8_PIN PINB0
  1848. #define DIO8_RPORT PINB
  1849. #define DIO8_WPORT PORTB
  1850. #define DIO8_PWM NULL
  1851. #define DIO8_DDR DDRB
  1852. #define DIO9_PIN PINB1
  1853. #define DIO9_RPORT PINB
  1854. #define DIO9_WPORT PORTB
  1855. #define DIO9_PWM NULL
  1856. #define DIO9_DDR DDRB
  1857. #define DIO10_PIN PINB2
  1858. #define DIO10_RPORT PINB
  1859. #define DIO10_WPORT PORTB
  1860. #define DIO10_PWM NULL
  1861. #define DIO10_DDR DDRB
  1862. #define DIO11_PIN PINB3
  1863. #define DIO11_RPORT PINB
  1864. #define DIO11_WPORT PORTB
  1865. #define DIO11_PWM NULL
  1866. #define DIO11_DDR DDRB
  1867. #define DIO12_PIN PINB4
  1868. #define DIO12_RPORT PINB
  1869. #define DIO12_WPORT PORTB
  1870. #define DIO12_PWM NULL
  1871. #define DIO12_DDR DDRB
  1872. #define DIO13_PIN PINB5
  1873. #define DIO13_RPORT PINB
  1874. #define DIO13_WPORT PORTB
  1875. #define DIO13_PWM NULL
  1876. #define DIO13_DDR DDRB
  1877. #define DIO14_PIN PINB6
  1878. #define DIO14_RPORT PINB
  1879. #define DIO14_WPORT PORTB
  1880. #define DIO14_PWM NULL
  1881. #define DIO14_DDR DDRB
  1882. #define DIO15_PIN PINB7
  1883. #define DIO15_RPORT PINB
  1884. #define DIO15_WPORT PORTB
  1885. #define DIO15_PWM NULL
  1886. #define DIO15_DDR DDRB
  1887. #define DIO16_PIN PINC0
  1888. #define DIO16_RPORT PINC
  1889. #define DIO16_WPORT PORTC
  1890. #define DIO16_PWM NULL
  1891. #define DIO16_DDR DDRC
  1892. #define DIO17_PIN PINC1
  1893. #define DIO17_RPORT PINC
  1894. #define DIO17_WPORT PORTC
  1895. #define DIO17_PWM NULL
  1896. #define DIO17_DDR DDRC
  1897. #define DIO18_PIN PINC2
  1898. #define DIO18_RPORT PINC
  1899. #define DIO18_WPORT PORTC
  1900. #define DIO18_PWM NULL
  1901. #define DIO18_DDR DDRC
  1902. #define DIO19_PIN PINC3
  1903. #define DIO19_RPORT PINC
  1904. #define DIO19_WPORT PORTC
  1905. #define DIO19_PWM NULL
  1906. #define DIO19_DDR DDRC
  1907. #define DIO20_PIN PINC4
  1908. #define DIO20_RPORT PINC
  1909. #define DIO20_WPORT PORTC
  1910. #define DIO20_PWM NULL
  1911. #define DIO20_DDR DDRC
  1912. #define DIO21_PIN PINC5
  1913. #define DIO21_RPORT PINC
  1914. #define DIO21_WPORT PORTC
  1915. #define DIO21_PWM NULL
  1916. #define DIO21_DDR DDRC
  1917. #define DIO22_PIN PINC6
  1918. #define DIO22_RPORT PINC
  1919. #define DIO22_WPORT PORTC
  1920. #define DIO22_PWM NULL
  1921. #define DIO22_DDR DDRC
  1922. #define DIO23_PIN PINC7
  1923. #define DIO23_RPORT PINC
  1924. #define DIO23_WPORT PORTC
  1925. #define DIO23_PWM NULL
  1926. #define DIO23_DDR DDRC
  1927. #define DIO24_PIN PIND0
  1928. #define DIO24_RPORT PIND
  1929. #define DIO24_WPORT PORTD
  1930. #define DIO24_PWM NULL
  1931. #define DIO24_DDR DDRD
  1932. #define DIO25_PIN PIND1
  1933. #define DIO25_RPORT PIND
  1934. #define DIO25_WPORT PORTD
  1935. #define DIO25_PWM NULL
  1936. #define DIO25_DDR DDRD
  1937. #define DIO26_PIN PIND2
  1938. #define DIO26_RPORT PIND
  1939. #define DIO26_WPORT PORTD
  1940. #define DIO26_PWM NULL
  1941. #define DIO26_DDR DDRD
  1942. #define DIO27_PIN PIND3
  1943. #define DIO27_RPORT PIND
  1944. #define DIO27_WPORT PORTD
  1945. #define DIO27_PWM NULL
  1946. #define DIO27_DDR DDRD
  1947. #define DIO28_PIN PIND4
  1948. #define DIO28_RPORT PIND
  1949. #define DIO28_WPORT PORTD
  1950. #define DIO28_PWM NULL
  1951. #define DIO28_DDR DDRD
  1952. #define DIO29_PIN PIND5
  1953. #define DIO29_RPORT PIND
  1954. #define DIO29_WPORT PORTD
  1955. #define DIO29_PWM NULL
  1956. #define DIO29_DDR DDRD
  1957. #define DIO30_PIN PIND6
  1958. #define DIO30_RPORT PIND
  1959. #define DIO30_WPORT PORTD
  1960. #define DIO30_PWM NULL
  1961. #define DIO30_DDR DDRD
  1962. #define DIO31_PIN PIND7
  1963. #define DIO31_RPORT PIND
  1964. #define DIO31_WPORT PORTD
  1965. #define DIO31_PWM NULL
  1966. #define DIO31_DDR DDRD
  1967. #define DIO32_PIN PINE0
  1968. #define DIO32_RPORT PINE
  1969. #define DIO32_WPORT PORTE
  1970. #define DIO32_PWM NULL
  1971. #define DIO32_DDR DDRE
  1972. #define DIO33_PIN PINE1
  1973. #define DIO33_RPORT PINE
  1974. #define DIO33_WPORT PORTE
  1975. #define DIO33_PWM NULL
  1976. #define DIO33_DDR DDRE
  1977. #define DIO34_PIN PINE2
  1978. #define DIO34_RPORT PINE
  1979. #define DIO34_WPORT PORTE
  1980. #define DIO34_PWM NULL
  1981. #define DIO34_DDR DDRE
  1982. #define DIO35_PIN PINE3
  1983. #define DIO35_RPORT PINE
  1984. #define DIO35_WPORT PORTE
  1985. #define DIO35_PWM NULL
  1986. #define DIO35_DDR DDRE
  1987. #define DIO36_PIN PINE4
  1988. #define DIO36_RPORT PINE
  1989. #define DIO36_WPORT PORTE
  1990. #define DIO36_PWM NULL
  1991. #define DIO36_DDR DDRE
  1992. #define DIO37_PIN PINE5
  1993. #define DIO37_RPORT PINE
  1994. #define DIO37_WPORT PORTE
  1995. #define DIO37_PWM NULL
  1996. #define DIO37_DDR DDRE
  1997. #define DIO38_PIN PINE6
  1998. #define DIO38_RPORT PINE
  1999. #define DIO38_WPORT PORTE
  2000. #define DIO38_PWM NULL
  2001. #define DIO38_DDR DDRE
  2002. #define DIO39_PIN PINE7
  2003. #define DIO39_RPORT PINE
  2004. #define DIO39_WPORT PORTE
  2005. #define DIO39_PWM NULL
  2006. #define DIO39_DDR DDRE
  2007. #define AIO0_PIN PINF0
  2008. #define AIO0_RPORT PINF
  2009. #define AIO0_WPORT PORTF
  2010. #define AIO0_PWM NULL
  2011. #define AIO0_DDR DDRF
  2012. #define AIO1_PIN PINF1
  2013. #define AIO1_RPORT PINF
  2014. #define AIO1_WPORT PORTF
  2015. #define AIO1_PWM NULL
  2016. #define AIO1_DDR DDRF
  2017. #define AIO2_PIN PINF2
  2018. #define AIO2_RPORT PINF
  2019. #define AIO2_WPORT PORTF
  2020. #define AIO2_PWM NULL
  2021. #define AIO2_DDR DDRF
  2022. #define AIO3_PIN PINF3
  2023. #define AIO3_RPORT PINF
  2024. #define AIO3_WPORT PORTF
  2025. #define AIO3_PWM NULL
  2026. #define AIO3_DDR DDRF
  2027. #define AIO4_PIN PINF4
  2028. #define AIO4_RPORT PINF
  2029. #define AIO4_WPORT PORTF
  2030. #define AIO4_PWM NULL
  2031. #define AIO4_DDR DDRF
  2032. #define AIO5_PIN PINF5
  2033. #define AIO5_RPORT PINF
  2034. #define AIO5_WPORT PORTF
  2035. #define AIO5_PWM NULL
  2036. #define AIO5_DDR DDRF
  2037. #define AIO6_PIN PINF6
  2038. #define AIO6_RPORT PINF
  2039. #define AIO6_WPORT PORTF
  2040. #define AIO6_PWM NULL
  2041. #define AIO6_DDR DDRF
  2042. #define AIO7_PIN PINF7
  2043. #define AIO7_RPORT PINF
  2044. #define AIO7_WPORT PORTF
  2045. #define AIO7_PWM NULL
  2046. #define AIO7_DDR DDRF
  2047. #define DIO40_PIN PINF0
  2048. #define DIO40_RPORT PINF
  2049. #define DIO40_WPORT PORTF
  2050. #define DIO40_PWM NULL
  2051. #define DIO40_DDR DDRF
  2052. #define DIO41_PIN PINF1
  2053. #define DIO41_RPORT PINF
  2054. #define DIO41_WPORT PORTF
  2055. #define DIO41_PWM NULL
  2056. #define DIO41_DDR DDRF
  2057. #define DIO42_PIN PINF2
  2058. #define DIO42_RPORT PINF
  2059. #define DIO42_WPORT PORTF
  2060. #define DIO42_PWM NULL
  2061. #define DIO42_DDR DDRF
  2062. #define DIO43_PIN PINF3
  2063. #define DIO43_RPORT PINF
  2064. #define DIO43_WPORT PORTF
  2065. #define DIO43_PWM NULL
  2066. #define DIO43_DDR DDRF
  2067. #define DIO44_PIN PINF4
  2068. #define DIO44_RPORT PINF
  2069. #define DIO44_WPORT PORTF
  2070. #define DIO44_PWM NULL
  2071. #define DIO44_DDR DDRF
  2072. #define DIO45_PIN PINF5
  2073. #define DIO45_RPORT PINF
  2074. #define DIO45_WPORT PORTF
  2075. #define DIO45_PWM NULL
  2076. #define DIO45_DDR DDRF
  2077. #define DIO46_PIN PINF6
  2078. #define DIO46_RPORT PINF
  2079. #define DIO46_WPORT PORTF
  2080. #define DIO46_PWM NULL
  2081. #define DIO46_DDR DDRF
  2082. #define DIO47_PIN PINF7
  2083. #define DIO47_RPORT PINF
  2084. #define DIO47_WPORT PORTF
  2085. #define DIO47_PWM NULL
  2086. #define DIO47_DDR DDRF
  2087. #undef PA0
  2088. #define PA0_PIN PINA0
  2089. #define PA0_RPORT PINA
  2090. #define PA0_WPORT PORTA
  2091. #define PA0_PWM NULL
  2092. #define PA0_DDR DDRA
  2093. #undef PA1
  2094. #define PA1_PIN PINA1
  2095. #define PA1_RPORT PINA
  2096. #define PA1_WPORT PORTA
  2097. #define PA1_PWM NULL
  2098. #define PA1_DDR DDRA
  2099. #undef PA2
  2100. #define PA2_PIN PINA2
  2101. #define PA2_RPORT PINA
  2102. #define PA2_WPORT PORTA
  2103. #define PA2_PWM NULL
  2104. #define PA2_DDR DDRA
  2105. #undef PA3
  2106. #define PA3_PIN PINA3
  2107. #define PA3_RPORT PINA
  2108. #define PA3_WPORT PORTA
  2109. #define PA3_PWM NULL
  2110. #define PA3_DDR DDRA
  2111. #undef PA4
  2112. #define PA4_PIN PINA4
  2113. #define PA4_RPORT PINA
  2114. #define PA4_WPORT PORTA
  2115. #define PA4_PWM NULL
  2116. #define PA4_DDR DDRA
  2117. #undef PA5
  2118. #define PA5_PIN PINA5
  2119. #define PA5_RPORT PINA
  2120. #define PA5_WPORT PORTA
  2121. #define PA5_PWM NULL
  2122. #define PA5_DDR DDRA
  2123. #undef PA6
  2124. #define PA6_PIN PINA6
  2125. #define PA6_RPORT PINA
  2126. #define PA6_WPORT PORTA
  2127. #define PA6_PWM NULL
  2128. #define PA6_DDR DDRA
  2129. #undef PA7
  2130. #define PA7_PIN PINA7
  2131. #define PA7_RPORT PINA
  2132. #define PA7_WPORT PORTA
  2133. #define PA7_PWM NULL
  2134. #define PA7_DDR DDRA
  2135. #undef PB0
  2136. #define PB0_PIN PINB0
  2137. #define PB0_RPORT PINB
  2138. #define PB0_WPORT PORTB
  2139. #define PB0_PWM NULL
  2140. #define PB0_DDR DDRB
  2141. #undef PB1
  2142. #define PB1_PIN PINB1
  2143. #define PB1_RPORT PINB
  2144. #define PB1_WPORT PORTB
  2145. #define PB1_PWM NULL
  2146. #define PB1_DDR DDRB
  2147. #undef PB2
  2148. #define PB2_PIN PINB2
  2149. #define PB2_RPORT PINB
  2150. #define PB2_WPORT PORTB
  2151. #define PB2_PWM NULL
  2152. #define PB2_DDR DDRB
  2153. #undef PB3
  2154. #define PB3_PIN PINB3
  2155. #define PB3_RPORT PINB
  2156. #define PB3_WPORT PORTB
  2157. #define PB3_PWM NULL
  2158. #define PB3_DDR DDRB
  2159. #undef PB4
  2160. #define PB4_PIN PINB4
  2161. #define PB4_RPORT PINB
  2162. #define PB4_WPORT PORTB
  2163. #define PB4_PWM NULL
  2164. #define PB4_DDR DDRB
  2165. #undef PB5
  2166. #define PB5_PIN PINB5
  2167. #define PB5_RPORT PINB
  2168. #define PB5_WPORT PORTB
  2169. #define PB5_PWM NULL
  2170. #define PB5_DDR DDRB
  2171. #undef PB6
  2172. #define PB6_PIN PINB6
  2173. #define PB6_RPORT PINB
  2174. #define PB6_WPORT PORTB
  2175. #define PB6_PWM NULL
  2176. #define PB6_DDR DDRB
  2177. #undef PB7
  2178. #define PB7_PIN PINB7
  2179. #define PB7_RPORT PINB
  2180. #define PB7_WPORT PORTB
  2181. #define PB7_PWM NULL
  2182. #define PB7_DDR DDRB
  2183. #undef PC0
  2184. #define PC0_PIN PINC0
  2185. #define PC0_RPORT PINC
  2186. #define PC0_WPORT PORTC
  2187. #define PC0_PWM NULL
  2188. #define PC0_DDR DDRC
  2189. #undef PC1
  2190. #define PC1_PIN PINC1
  2191. #define PC1_RPORT PINC
  2192. #define PC1_WPORT PORTC
  2193. #define PC1_PWM NULL
  2194. #define PC1_DDR DDRC
  2195. #undef PC2
  2196. #define PC2_PIN PINC2
  2197. #define PC2_RPORT PINC
  2198. #define PC2_WPORT PORTC
  2199. #define PC2_PWM NULL
  2200. #define PC2_DDR DDRC
  2201. #undef PC3
  2202. #define PC3_PIN PINC3
  2203. #define PC3_RPORT PINC
  2204. #define PC3_WPORT PORTC
  2205. #define PC3_PWM NULL
  2206. #define PC3_DDR DDRC
  2207. #undef PC4
  2208. #define PC4_PIN PINC4
  2209. #define PC4_RPORT PINC
  2210. #define PC4_WPORT PORTC
  2211. #define PC4_PWM NULL
  2212. #define PC4_DDR DDRC
  2213. #undef PC5
  2214. #define PC5_PIN PINC5
  2215. #define PC5_RPORT PINC
  2216. #define PC5_WPORT PORTC
  2217. #define PC5_PWM NULL
  2218. #define PC5_DDR DDRC
  2219. #undef PC6
  2220. #define PC6_PIN PINC6
  2221. #define PC6_RPORT PINC
  2222. #define PC6_WPORT PORTC
  2223. #define PC6_PWM NULL
  2224. #define PC6_DDR DDRC
  2225. #undef PC7
  2226. #define PC7_PIN PINC7
  2227. #define PC7_RPORT PINC
  2228. #define PC7_WPORT PORTC
  2229. #define PC7_PWM NULL
  2230. #define PC7_DDR DDRC
  2231. #undef PD0
  2232. #define PD0_PIN PIND0
  2233. #define PD0_RPORT PIND
  2234. #define PD0_WPORT PORTD
  2235. #define PD0_PWM NULL
  2236. #define PD0_DDR DDRD
  2237. #undef PD1
  2238. #define PD1_PIN PIND1
  2239. #define PD1_RPORT PIND
  2240. #define PD1_WPORT PORTD
  2241. #define PD1_PWM NULL
  2242. #define PD1_DDR DDRD
  2243. #undef PD2
  2244. #define PD2_PIN PIND2
  2245. #define PD2_RPORT PIND
  2246. #define PD2_WPORT PORTD
  2247. #define PD2_PWM NULL
  2248. #define PD2_DDR DDRD
  2249. #undef PD3
  2250. #define PD3_PIN PIND3
  2251. #define PD3_RPORT PIND
  2252. #define PD3_WPORT PORTD
  2253. #define PD3_PWM NULL
  2254. #define PD3_DDR DDRD
  2255. #undef PD4
  2256. #define PD4_PIN PIND4
  2257. #define PD4_RPORT PIND
  2258. #define PD4_WPORT PORTD
  2259. #define PD4_PWM NULL
  2260. #define PD4_DDR DDRD
  2261. #undef PD5
  2262. #define PD5_PIN PIND5
  2263. #define PD5_RPORT PIND
  2264. #define PD5_WPORT PORTD
  2265. #define PD5_PWM NULL
  2266. #define PD5_DDR DDRD
  2267. #undef PD6
  2268. #define PD6_PIN PIND6
  2269. #define PD6_RPORT PIND
  2270. #define PD6_WPORT PORTD
  2271. #define PD6_PWM NULL
  2272. #define PD6_DDR DDRD
  2273. #undef PD7
  2274. #define PD7_PIN PIND7
  2275. #define PD7_RPORT PIND
  2276. #define PD7_WPORT PORTD
  2277. #define PD7_PWM NULL
  2278. #define PD7_DDR DDRD
  2279. #undef PE0
  2280. #define PE0_PIN PINE0
  2281. #define PE0_RPORT PINE
  2282. #define PE0_WPORT PORTE
  2283. #define PE0_PWM NULL
  2284. #define PE0_DDR DDRE
  2285. #undef PE1
  2286. #define PE1_PIN PINE1
  2287. #define PE1_RPORT PINE
  2288. #define PE1_WPORT PORTE
  2289. #define PE1_PWM NULL
  2290. #define PE1_DDR DDRE
  2291. #undef PE2
  2292. #define PE2_PIN PINE2
  2293. #define PE2_RPORT PINE
  2294. #define PE2_WPORT PORTE
  2295. #define PE2_PWM NULL
  2296. #define PE2_DDR DDRE
  2297. #undef PE3
  2298. #define PE3_PIN PINE3
  2299. #define PE3_RPORT PINE
  2300. #define PE3_WPORT PORTE
  2301. #define PE3_PWM NULL
  2302. #define PE3_DDR DDRE
  2303. #undef PE4
  2304. #define PE4_PIN PINE4
  2305. #define PE4_RPORT PINE
  2306. #define PE4_WPORT PORTE
  2307. #define PE4_PWM NULL
  2308. #define PE4_DDR DDRE
  2309. #undef PE5
  2310. #define PE5_PIN PINE5
  2311. #define PE5_RPORT PINE
  2312. #define PE5_WPORT PORTE
  2313. #define PE5_PWM NULL
  2314. #define PE5_DDR DDRE
  2315. #undef PE6
  2316. #define PE6_PIN PINE6
  2317. #define PE6_RPORT PINE
  2318. #define PE6_WPORT PORTE
  2319. #define PE6_PWM NULL
  2320. #define PE6_DDR DDRE
  2321. #undef PE7
  2322. #define PE7_PIN PINE7
  2323. #define PE7_RPORT PINE
  2324. #define PE7_WPORT PORTE
  2325. #define PE7_PWM NULL
  2326. #define PE7_DDR DDRE
  2327. #undef PF0
  2328. #define PF0_PIN PINF0
  2329. #define PF0_RPORT PINF
  2330. #define PF0_WPORT PORTF
  2331. #define PF0_PWM NULL
  2332. #define PF0_DDR DDRF
  2333. #undef PF1
  2334. #define PF1_PIN PINF1
  2335. #define PF1_RPORT PINF
  2336. #define PF1_WPORT PORTF
  2337. #define PF1_PWM NULL
  2338. #define PF1_DDR DDRF
  2339. #undef PF2
  2340. #define PF2_PIN PINF2
  2341. #define PF2_RPORT PINF
  2342. #define PF2_WPORT PORTF
  2343. #define PF2_PWM NULL
  2344. #define PF2_DDR DDRF
  2345. #undef PF3
  2346. #define PF3_PIN PINF3
  2347. #define PF3_RPORT PINF
  2348. #define PF3_WPORT PORTF
  2349. #define PF3_PWM NULL
  2350. #define PF3_DDR DDRF
  2351. #undef PF4
  2352. #define PF4_PIN PINF4
  2353. #define PF4_RPORT PINF
  2354. #define PF4_WPORT PORTF
  2355. #define PF4_PWM NULL
  2356. #define PF4_DDR DDRF
  2357. #undef PF5
  2358. #define PF5_PIN PINF5
  2359. #define PF5_RPORT PINF
  2360. #define PF5_WPORT PORTF
  2361. #define PF5_PWM NULL
  2362. #define PF5_DDR DDRF
  2363. #undef PF6
  2364. #define PF6_PIN PINF6
  2365. #define PF6_RPORT PINF
  2366. #define PF6_WPORT PORTF
  2367. #define PF6_PWM NULL
  2368. #define PF6_DDR DDRF
  2369. #undef PF7
  2370. #define PF7_PIN PINF7
  2371. #define PF7_RPORT PINF
  2372. #define PF7_WPORT PORTF
  2373. #define PF7_PWM NULL
  2374. #define PF7_DDR DDRF
  2375. #else // AT90USBxx_TEENSYPP_ASSIGNMENTS -- Use Teensyduino Teensy++2.0 assignments.
  2376. /*
  2377. AT90USB 51 50 49 48 47 46 45 44 10 11 12 13 14 15 16 17 35 36 37 38 39 40 41 42 25 26 27 28 29 30 31 32 33 34 43 09 18 19 01 02 61 60 59 58 57 56 55 54
  2378. Port A0 A1 A2 A3 A4 A5 A6 A7 B0 B1 B2 B3 B4 B5 B6 B7 C0 C1 C2 C3 C4 C5 C6 C7 D0 D1 D2 D3 D4 D5 D6 D7 E0 E1 E2 E3 E4 E5 E6 E7 F0 F1 F2 F3 F4 F5 F6 F7
  2379. Marlin 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
  2380. Teensy 28 29 30 31 32 33 34 35 20 21 22 23 24 25 26 27 10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07 08 09(46*47)36 37 18 19 38 39 40 41 42 43 44 45
  2381. The pins 46 and 47 are not supported by Teensyduino, but are supported below.
  2382. */
  2383. #define DIO0_PIN PIND0
  2384. #define DIO0_RPORT PIND
  2385. #define DIO0_WPORT PORTD
  2386. #define DIO0_PWM NULL
  2387. #define DIO0_DDR DDRD
  2388. #define DIO1_PIN PIND1
  2389. #define DIO1_RPORT PIND
  2390. #define DIO1_WPORT PORTD
  2391. #define DIO1_PWM NULL
  2392. #define DIO1_DDR DDRD
  2393. #define DIO2_PIN PIND2
  2394. #define DIO2_RPORT PIND
  2395. #define DIO2_WPORT PORTD
  2396. #define DIO2_PWM NULL
  2397. #define DIO2_DDR DDRD
  2398. #define DIO3_PIN PIND3
  2399. #define DIO3_RPORT PIND
  2400. #define DIO3_WPORT PORTD
  2401. #define DIO3_PWM NULL
  2402. #define DIO3_DDR DDRD
  2403. #define DIO4_PIN PIND4
  2404. #define DIO4_RPORT PIND
  2405. #define DIO4_WPORT PORTD
  2406. #define DIO4_PWM NULL
  2407. #define DIO4_DDR DDRD
  2408. #define DIO5_PIN PIND5
  2409. #define DIO5_RPORT PIND
  2410. #define DIO5_WPORT PORTD
  2411. #define DIO5_PWM NULL
  2412. #define DIO5_DDR DDRD
  2413. #define DIO6_PIN PIND6
  2414. #define DIO6_RPORT PIND
  2415. #define DIO6_WPORT PORTD
  2416. #define DIO6_PWM NULL
  2417. #define DIO6_DDR DDRD
  2418. #define DIO7_PIN PIND7
  2419. #define DIO7_RPORT PIND
  2420. #define DIO7_WPORT PORTD
  2421. #define DIO7_PWM NULL
  2422. #define DIO7_DDR DDRD
  2423. #define DIO8_PIN PINE0
  2424. #define DIO8_RPORT PINE
  2425. #define DIO8_WPORT PORTE
  2426. #define DIO8_PWM NULL
  2427. #define DIO8_DDR DDRE
  2428. #define DIO9_PIN PINE1
  2429. #define DIO9_RPORT PINE
  2430. #define DIO9_WPORT PORTE
  2431. #define DIO9_PWM NULL
  2432. #define DIO9_DDR DDRE
  2433. #define DIO10_PIN PINC0
  2434. #define DIO10_RPORT PINC
  2435. #define DIO10_WPORT PORTC
  2436. #define DIO10_PWM NULL
  2437. #define DIO10_DDR DDRC
  2438. #define DIO11_PIN PINC1
  2439. #define DIO11_RPORT PINC
  2440. #define DIO11_WPORT PORTC
  2441. #define DIO11_PWM NULL
  2442. #define DIO11_DDR DDRC
  2443. #define DIO12_PIN PINC2
  2444. #define DIO12_RPORT PINC
  2445. #define DIO12_WPORT PORTC
  2446. #define DIO12_PWM NULL
  2447. #define DIO12_DDR DDRC
  2448. #define DIO13_PIN PINC3
  2449. #define DIO13_RPORT PINC
  2450. #define DIO13_WPORT PORTC
  2451. #define DIO13_PWM NULL
  2452. #define DIO13_DDR DDRC
  2453. #define DIO14_PIN PINC4
  2454. #define DIO14_RPORT PINC
  2455. #define DIO14_WPORT PORTC
  2456. #define DIO14_PWM NULL
  2457. #define DIO14_DDR DDRC
  2458. #define DIO15_PIN PINC5
  2459. #define DIO15_RPORT PINC
  2460. #define DIO15_WPORT PORTC
  2461. #define DIO15_PWM NULL
  2462. #define DIO15_DDR DDRC
  2463. #define DIO16_PIN PINC6
  2464. #define DIO16_RPORT PINC
  2465. #define DIO16_WPORT PORTC
  2466. #define DIO16_PWM NULL
  2467. #define DIO16_DDR DDRC
  2468. #define DIO17_PIN PINC7
  2469. #define DIO17_RPORT PINC
  2470. #define DIO17_WPORT PORTC
  2471. #define DIO17_PWM NULL
  2472. #define DIO17_DDR DDRC
  2473. #define DIO18_PIN PINE6
  2474. #define DIO18_RPORT PINE
  2475. #define DIO18_WPORT PORTE
  2476. #define DIO18_PWM NULL
  2477. #define DIO18_DDR DDRE
  2478. #define DIO19_PIN PINE7
  2479. #define DIO19_RPORT PINE
  2480. #define DIO19_WPORT PORTE
  2481. #define DIO19_PWM NULL
  2482. #define DIO19_DDR DDRE
  2483. #define DIO20_PIN PINB0
  2484. #define DIO20_RPORT PINB
  2485. #define DIO20_WPORT PORTB
  2486. #define DIO20_PWM NULL
  2487. #define DIO20_DDR DDRB
  2488. #define DIO21_PIN PINB1
  2489. #define DIO21_RPORT PINB
  2490. #define DIO21_WPORT PORTB
  2491. #define DIO21_PWM NULL
  2492. #define DIO21_DDR DDRB
  2493. #define DIO22_PIN PINB2
  2494. #define DIO22_RPORT PINB
  2495. #define DIO22_WPORT PORTB
  2496. #define DIO22_PWM NULL
  2497. #define DIO22_DDR DDRB
  2498. #define DIO23_PIN PINB3
  2499. #define DIO23_RPORT PINB
  2500. #define DIO23_WPORT PORTB
  2501. #define DIO23_PWM NULL
  2502. #define DIO23_DDR DDRB
  2503. #define DIO24_PIN PINB4
  2504. #define DIO24_RPORT PINB
  2505. #define DIO24_WPORT PORTB
  2506. #define DIO24_PWM NULL
  2507. #define DIO24_DDR DDRB
  2508. #define DIO25_PIN PINB5
  2509. #define DIO25_RPORT PINB
  2510. #define DIO25_WPORT PORTB
  2511. #define DIO25_PWM NULL
  2512. #define DIO25_DDR DDRB
  2513. #define DIO26_PIN PINB6
  2514. #define DIO26_RPORT PINB
  2515. #define DIO26_WPORT PORTB
  2516. #define DIO26_PWM NULL
  2517. #define DIO26_DDR DDRB
  2518. #define DIO27_PIN PINB7
  2519. #define DIO27_RPORT PINB
  2520. #define DIO27_WPORT PORTB
  2521. #define DIO27_PWM NULL
  2522. #define DIO27_DDR DDRB
  2523. #define DIO28_PIN PINA0
  2524. #define DIO28_RPORT PINA
  2525. #define DIO28_WPORT PORTA
  2526. #define DIO28_PWM NULL
  2527. #define DIO28_DDR DDRA
  2528. #define DIO29_PIN PINA1
  2529. #define DIO29_RPORT PINA
  2530. #define DIO29_WPORT PORTA
  2531. #define DIO29_PWM NULL
  2532. #define DIO29_DDR DDRA
  2533. #define DIO30_PIN PINA2
  2534. #define DIO30_RPORT PINA
  2535. #define DIO30_WPORT PORTA
  2536. #define DIO30_PWM NULL
  2537. #define DIO30_DDR DDRA
  2538. #define DIO31_PIN PINA3
  2539. #define DIO31_RPORT PINA
  2540. #define DIO31_WPORT PORTA
  2541. #define DIO31_PWM NULL
  2542. #define DIO31_DDR DDRA
  2543. #define DIO32_PIN PINA4
  2544. #define DIO32_RPORT PINA
  2545. #define DIO32_WPORT PORTA
  2546. #define DIO32_PWM NULL
  2547. #define DIO32_DDR DDRA
  2548. #define DIO33_PIN PINA5
  2549. #define DIO33_RPORT PINA
  2550. #define DIO33_WPORT PORTA
  2551. #define DIO33_PWM NULL
  2552. #define DIO33_DDR DDRA
  2553. #define DIO34_PIN PINA6
  2554. #define DIO34_RPORT PINA
  2555. #define DIO34_WPORT PORTA
  2556. #define DIO34_PWM NULL
  2557. #define DIO34_DDR DDRA
  2558. #define DIO35_PIN PINA7
  2559. #define DIO35_RPORT PINA
  2560. #define DIO35_WPORT PORTA
  2561. #define DIO35_PWM NULL
  2562. #define DIO35_DDR DDRA
  2563. #define DIO36_PIN PINE4
  2564. #define DIO36_RPORT PINE
  2565. #define DIO36_WPORT PORTE
  2566. #define DIO36_PWM NULL
  2567. #define DIO36_DDR DDRE
  2568. #define DIO37_PIN PINE5
  2569. #define DIO37_RPORT PINE
  2570. #define DIO37_WPORT PORTE
  2571. #define DIO37_PWM NULL
  2572. #define DIO37_DDR DDRE
  2573. #define DIO38_PIN PINF0
  2574. #define DIO38_RPORT PINF
  2575. #define DIO38_WPORT PORTF
  2576. #define DIO38_PWM NULL
  2577. #define DIO38_DDR DDRF
  2578. #define DIO39_PIN PINF1
  2579. #define DIO39_RPORT PINF
  2580. #define DIO39_WPORT PORTF
  2581. #define DIO39_PWM NULL
  2582. #define DIO39_DDR DDRF
  2583. #define DIO40_PIN PINF2
  2584. #define DIO40_RPORT PINF
  2585. #define DIO40_WPORT PORTF
  2586. #define DIO40_PWM NULL
  2587. #define DIO40_DDR DDRF
  2588. #define DIO41_PIN PINF3
  2589. #define DIO41_RPORT PINF
  2590. #define DIO41_WPORT PORTF
  2591. #define DIO41_PWM NULL
  2592. #define DIO41_DDR DDRF
  2593. #define DIO42_PIN PINF4
  2594. #define DIO42_RPORT PINF
  2595. #define DIO42_WPORT PORTF
  2596. #define DIO42_PWM NULL
  2597. #define DIO42_DDR DDRF
  2598. #define DIO43_PIN PINF5
  2599. #define DIO43_RPORT PINF
  2600. #define DIO43_WPORT PORTF
  2601. #define DIO43_PWM NULL
  2602. #define DIO43_DDR DDRF
  2603. #define DIO44_PIN PINF6
  2604. #define DIO44_RPORT PINF
  2605. #define DIO44_WPORT PORTF
  2606. #define DIO44_PWM NULL
  2607. #define DIO44_DDR DDRF
  2608. #define DIO45_PIN PINF7
  2609. #define DIO45_RPORT PINF
  2610. #define DIO45_WPORT PORTF
  2611. #define DIO45_PWM NULL
  2612. #define DIO45_DDR DDRF
  2613. #define AIO0_PIN PINF0
  2614. #define AIO0_RPORT PINF
  2615. #define AIO0_WPORT PORTF
  2616. #define AIO0_PWM NULL
  2617. #define AIO0_DDR DDRF
  2618. #define AIO1_PIN PINF1
  2619. #define AIO1_RPORT PINF
  2620. #define AIO1_WPORT PORTF
  2621. #define AIO1_PWM NULL
  2622. #define AIO1_DDR DDRF
  2623. #define AIO2_PIN PINF2
  2624. #define AIO2_RPORT PINF
  2625. #define AIO2_WPORT PORTF
  2626. #define AIO2_PWM NULL
  2627. #define AIO2_DDR DDRF
  2628. #define AIO3_PIN PINF3
  2629. #define AIO3_RPORT PINF
  2630. #define AIO3_WPORT PORTF
  2631. #define AIO3_PWM NULL
  2632. #define AIO3_DDR DDRF
  2633. #define AIO4_PIN PINF4
  2634. #define AIO4_RPORT PINF
  2635. #define AIO4_WPORT PORTF
  2636. #define AIO4_PWM NULL
  2637. #define AIO4_DDR DDRF
  2638. #define AIO5_PIN PINF5
  2639. #define AIO5_RPORT PINF
  2640. #define AIO5_WPORT PORTF
  2641. #define AIO5_PWM NULL
  2642. #define AIO5_DDR DDRF
  2643. #define AIO6_PIN PINF6
  2644. #define AIO6_RPORT PINF
  2645. #define AIO6_WPORT PORTF
  2646. #define AIO6_PWM NULL
  2647. #define AIO6_DDR DDRF
  2648. #define AIO7_PIN PINF7
  2649. #define AIO7_RPORT PINF
  2650. #define AIO7_WPORT PORTF
  2651. #define AIO7_PWM NULL
  2652. #define AIO7_DDR DDRF
  2653. //-- Begin not supported by Teensyduino
  2654. //-- don't use Arduino functions on these pins pinMode/digitalWrite/etc
  2655. #define DIO46_PIN PINE2
  2656. #define DIO46_RPORT PINE
  2657. #define DIO46_WPORT PORTE
  2658. #define DIO46_PWM NULL
  2659. #define DIO46_DDR DDRE
  2660. #define DIO47_PIN PINE3
  2661. #define DIO47_RPORT PINE
  2662. #define DIO47_WPORT PORTE
  2663. #define DIO47_PWM NULL
  2664. #define DIO47_DDR DDRE
  2665. //-- end not supported by Teensyduino
  2666. #undef PA0
  2667. #define PA0_PIN PINA0
  2668. #define PA0_RPORT PINA
  2669. #define PA0_WPORT PORTA
  2670. #define PA0_PWM NULL
  2671. #define PA0_DDR DDRA
  2672. #undef PA1
  2673. #define PA1_PIN PINA1
  2674. #define PA1_RPORT PINA
  2675. #define PA1_WPORT PORTA
  2676. #define PA1_PWM NULL
  2677. #define PA1_DDR DDRA
  2678. #undef PA2
  2679. #define PA2_PIN PINA2
  2680. #define PA2_RPORT PINA
  2681. #define PA2_WPORT PORTA
  2682. #define PA2_PWM NULL
  2683. #define PA2_DDR DDRA
  2684. #undef PA3
  2685. #define PA3_PIN PINA3
  2686. #define PA3_RPORT PINA
  2687. #define PA3_WPORT PORTA
  2688. #define PA3_PWM NULL
  2689. #define PA3_DDR DDRA
  2690. #undef PA4
  2691. #define PA4_PIN PINA4
  2692. #define PA4_RPORT PINA
  2693. #define PA4_WPORT PORTA
  2694. #define PA4_PWM NULL
  2695. #define PA4_DDR DDRA
  2696. #undef PA5
  2697. #define PA5_PIN PINA5
  2698. #define PA5_RPORT PINA
  2699. #define PA5_WPORT PORTA
  2700. #define PA5_PWM NULL
  2701. #define PA5_DDR DDRA
  2702. #undef PA6
  2703. #define PA6_PIN PINA6
  2704. #define PA6_RPORT PINA
  2705. #define PA6_WPORT PORTA
  2706. #define PA6_PWM NULL
  2707. #define PA6_DDR DDRA
  2708. #undef PA7
  2709. #define PA7_PIN PINA7
  2710. #define PA7_RPORT PINA
  2711. #define PA7_WPORT PORTA
  2712. #define PA7_PWM NULL
  2713. #define PA7_DDR DDRA
  2714. #undef PB0
  2715. #define PB0_PIN PINB0
  2716. #define PB0_RPORT PINB
  2717. #define PB0_WPORT PORTB
  2718. #define PB0_PWM NULL
  2719. #define PB0_DDR DDRB
  2720. #undef PB1
  2721. #define PB1_PIN PINB1
  2722. #define PB1_RPORT PINB
  2723. #define PB1_WPORT PORTB
  2724. #define PB1_PWM NULL
  2725. #define PB1_DDR DDRB
  2726. #undef PB2
  2727. #define PB2_PIN PINB2
  2728. #define PB2_RPORT PINB
  2729. #define PB2_WPORT PORTB
  2730. #define PB2_PWM NULL
  2731. #define PB2_DDR DDRB
  2732. #undef PB3
  2733. #define PB3_PIN PINB3
  2734. #define PB3_RPORT PINB
  2735. #define PB3_WPORT PORTB
  2736. #define PB3_PWM NULL
  2737. #define PB3_DDR DDRB
  2738. #undef PB4
  2739. #define PB4_PIN PINB4
  2740. #define PB4_RPORT PINB
  2741. #define PB4_WPORT PORTB
  2742. #define PB4_PWM NULL
  2743. #define PB4_DDR DDRB
  2744. #undef PB5
  2745. #define PB5_PIN PINB5
  2746. #define PB5_RPORT PINB
  2747. #define PB5_WPORT PORTB
  2748. #define PB5_PWM NULL
  2749. #define PB5_DDR DDRB
  2750. #undef PB6
  2751. #define PB6_PIN PINB6
  2752. #define PB6_RPORT PINB
  2753. #define PB6_WPORT PORTB
  2754. #define PB6_PWM NULL
  2755. #define PB6_DDR DDRB
  2756. #undef PB7
  2757. #define PB7_PIN PINB7
  2758. #define PB7_RPORT PINB
  2759. #define PB7_WPORT PORTB
  2760. #define PB7_PWM NULL
  2761. #define PB7_DDR DDRB
  2762. #undef PC0
  2763. #define PC0_PIN PINC0
  2764. #define PC0_RPORT PINC
  2765. #define PC0_WPORT PORTC
  2766. #define PC0_PWM NULL
  2767. #define PC0_DDR DDRC
  2768. #undef PC1
  2769. #define PC1_PIN PINC1
  2770. #define PC1_RPORT PINC
  2771. #define PC1_WPORT PORTC
  2772. #define PC1_PWM NULL
  2773. #define PC1_DDR DDRC
  2774. #undef PC2
  2775. #define PC2_PIN PINC2
  2776. #define PC2_RPORT PINC
  2777. #define PC2_WPORT PORTC
  2778. #define PC2_PWM NULL
  2779. #define PC2_DDR DDRC
  2780. #undef PC3
  2781. #define PC3_PIN PINC3
  2782. #define PC3_RPORT PINC
  2783. #define PC3_WPORT PORTC
  2784. #define PC3_PWM NULL
  2785. #define PC3_DDR DDRC
  2786. #undef PC4
  2787. #define PC4_PIN PINC4
  2788. #define PC4_RPORT PINC
  2789. #define PC4_WPORT PORTC
  2790. #define PC4_PWM NULL
  2791. #define PC4_DDR DDRC
  2792. #undef PC5
  2793. #define PC5_PIN PINC5
  2794. #define PC5_RPORT PINC
  2795. #define PC5_WPORT PORTC
  2796. #define PC5_PWM NULL
  2797. #define PC5_DDR DDRC
  2798. #undef PC6
  2799. #define PC6_PIN PINC6
  2800. #define PC6_RPORT PINC
  2801. #define PC6_WPORT PORTC
  2802. #define PC6_PWM NULL
  2803. #define PC6_DDR DDRC
  2804. #undef PC7
  2805. #define PC7_PIN PINC7
  2806. #define PC7_RPORT PINC
  2807. #define PC7_WPORT PORTC
  2808. #define PC7_PWM NULL
  2809. #define PC7_DDR DDRC
  2810. #undef PD0
  2811. #define PD0_PIN PIND0
  2812. #define PD0_RPORT PIND
  2813. #define PD0_WPORT PORTD
  2814. #define PD0_PWM NULL
  2815. #define PD0_DDR DDRD
  2816. #undef PD1
  2817. #define PD1_PIN PIND1
  2818. #define PD1_RPORT PIND
  2819. #define PD1_WPORT PORTD
  2820. #define PD1_PWM NULL
  2821. #define PD1_DDR DDRD
  2822. #undef PD2
  2823. #define PD2_PIN PIND2
  2824. #define PD2_RPORT PIND
  2825. #define PD2_WPORT PORTD
  2826. #define PD2_PWM NULL
  2827. #define PD2_DDR DDRD
  2828. #undef PD3
  2829. #define PD3_PIN PIND3
  2830. #define PD3_RPORT PIND
  2831. #define PD3_WPORT PORTD
  2832. #define PD3_PWM NULL
  2833. #define PD3_DDR DDRD
  2834. #undef PD4
  2835. #define PD4_PIN PIND4
  2836. #define PD4_RPORT PIND
  2837. #define PD4_WPORT PORTD
  2838. #define PD4_PWM NULL
  2839. #define PD4_DDR DDRD
  2840. #undef PD5
  2841. #define PD5_PIN PIND5
  2842. #define PD5_RPORT PIND
  2843. #define PD5_WPORT PORTD
  2844. #define PD5_PWM NULL
  2845. #define PD5_DDR DDRD
  2846. #undef PD6
  2847. #define PD6_PIN PIND6
  2848. #define PD6_RPORT PIND
  2849. #define PD6_WPORT PORTD
  2850. #define PD6_PWM NULL
  2851. #define PD6_DDR DDRD
  2852. #undef PD7
  2853. #define PD7_PIN PIND7
  2854. #define PD7_RPORT PIND
  2855. #define PD7_WPORT PORTD
  2856. #define PD7_PWM NULL
  2857. #define PD7_DDR DDRD
  2858. #undef PE0
  2859. #define PE0_PIN PINE0
  2860. #define PE0_RPORT PINE
  2861. #define PE0_WPORT PORTE
  2862. #define PE0_PWM NULL
  2863. #define PE0_DDR DDRE
  2864. #undef PE1
  2865. #define PE1_PIN PINE1
  2866. #define PE1_RPORT PINE
  2867. #define PE1_WPORT PORTE
  2868. #define PE1_PWM NULL
  2869. #define PE1_DDR DDRE
  2870. #undef PE2
  2871. #define PE2_PIN PINE2
  2872. #define PE2_RPORT PINE
  2873. #define PE2_WPORT PORTE
  2874. #define PE2_PWM NULL
  2875. #define PE2_DDR DDRE
  2876. #undef PE3
  2877. #define PE3_PIN PINE3
  2878. #define PE3_RPORT PINE
  2879. #define PE3_WPORT PORTE
  2880. #define PE3_PWM NULL
  2881. #define PE3_DDR DDRE
  2882. #undef PE4
  2883. #define PE4_PIN PINE4
  2884. #define PE4_RPORT PINE
  2885. #define PE4_WPORT PORTE
  2886. #define PE4_PWM NULL
  2887. #define PE4_DDR DDRE
  2888. #undef PE5
  2889. #define PE5_PIN PINE5
  2890. #define PE5_RPORT PINE
  2891. #define PE5_WPORT PORTE
  2892. #define PE5_PWM NULL
  2893. #define PE5_DDR DDRE
  2894. #undef PE6
  2895. #define PE6_PIN PINE6
  2896. #define PE6_RPORT PINE
  2897. #define PE6_WPORT PORTE
  2898. #define PE6_PWM NULL
  2899. #define PE6_DDR DDRE
  2900. #undef PE7
  2901. #define PE7_PIN PINE7
  2902. #define PE7_RPORT PINE
  2903. #define PE7_WPORT PORTE
  2904. #define PE7_PWM NULL
  2905. #define PE7_DDR DDRE
  2906. #undef PF0
  2907. #define PF0_PIN PINF0
  2908. #define PF0_RPORT PINF
  2909. #define PF0_WPORT PORTF
  2910. #define PF0_PWM NULL
  2911. #define PF0_DDR DDRF
  2912. #undef PF1
  2913. #define PF1_PIN PINF1
  2914. #define PF1_RPORT PINF
  2915. #define PF1_WPORT PORTF
  2916. #define PF1_PWM NULL
  2917. #define PF1_DDR DDRF
  2918. #undef PF2
  2919. #define PF2_PIN PINF2
  2920. #define PF2_RPORT PINF
  2921. #define PF2_WPORT PORTF
  2922. #define PF2_PWM NULL
  2923. #define PF2_DDR DDRF
  2924. #undef PF3
  2925. #define PF3_PIN PINF3
  2926. #define PF3_RPORT PINF
  2927. #define PF3_WPORT PORTF
  2928. #define PF3_PWM NULL
  2929. #define PF3_DDR DDRF
  2930. #undef PF4
  2931. #define PF4_PIN PINF4
  2932. #define PF4_RPORT PINF
  2933. #define PF4_WPORT PORTF
  2934. #define PF4_PWM NULL
  2935. #define PF4_DDR DDRF
  2936. #undef PF5
  2937. #define PF5_PIN PINF5
  2938. #define PF5_RPORT PINF
  2939. #define PF5_WPORT PORTF
  2940. #define PF5_PWM NULL
  2941. #define PF5_DDR DDRF
  2942. #undef PF6
  2943. #define PF6_PIN PINF6
  2944. #define PF6_RPORT PINF
  2945. #define PF6_WPORT PORTF
  2946. #define PF6_PWM NULL
  2947. #define PF6_DDR DDRF
  2948. #undef PF7
  2949. #define PF7_PIN PINF7
  2950. #define PF7_RPORT PINF
  2951. #define PF7_WPORT PORTF
  2952. #define PF7_PWM NULL
  2953. #define PF7_DDR DDRF
  2954. #endif // AT90USBxx_TEENSYPP_ASSIGNMENTS Teensyduino assignments
  2955. #endif // __AVR_AT90usbxxx__
  2956. #if defined (__AVR_ATmega1281__) || defined (__AVR_ATmega2561__)
  2957. // UART
  2958. #define RXD DIO0
  2959. #define TXD DIO1
  2960. // SPI
  2961. #define SCK DIO10
  2962. #define MISO DIO12
  2963. #define MOSI DIO11
  2964. #define SS DIO16
  2965. // TWI (I2C)
  2966. #define SCL DIO17
  2967. #define SDA DIO18
  2968. // timers and PWM
  2969. #define OC0A DIO9
  2970. #define OC0B DIO4
  2971. #define OC1A DIO7
  2972. #define OC1B DIO8
  2973. #define OC2A DIO6
  2974. #define OC3A DIO5
  2975. #define OC3B DIO2
  2976. #define OC3C DIO3
  2977. // change for your board
  2978. #define DEBUG_LED DIO46
  2979. /*
  2980. pins
  2981. */
  2982. #define DIO0_PIN PINE0
  2983. #define DIO0_RPORT PINE
  2984. #define DIO0_WPORT PORTE
  2985. #define DIO0_DDR DDRE
  2986. #define DIO0_PWM NULL
  2987. #define DIO1_PIN PINE1
  2988. #define DIO1_RPORT PINE
  2989. #define DIO1_WPORT PORTE
  2990. #define DIO1_DDR DDRE
  2991. #define DIO1_PWM NULL
  2992. #define DIO2_PIN PINE4
  2993. #define DIO2_RPORT PINE
  2994. #define DIO2_WPORT PORTE
  2995. #define DIO2_DDR DDRE
  2996. #define DIO2_PWM &OCR3BL
  2997. #define DIO3_PIN PINE5
  2998. #define DIO3_RPORT PINE
  2999. #define DIO3_WPORT PORTE
  3000. #define DIO3_DDR DDRE
  3001. #define DIO3_PWM &OCR3CL
  3002. #define DIO4_PIN PING5
  3003. #define DIO4_RPORT PING
  3004. #define DIO4_WPORT PORTG
  3005. #define DIO4_DDR DDRG
  3006. #define DIO4_PWM &OCR0B
  3007. #define DIO5_PIN PINE3
  3008. #define DIO5_RPORT PINE
  3009. #define DIO5_WPORT PORTE
  3010. #define DIO5_DDR DDRE
  3011. #define DIO5_PWM &OCR3AL
  3012. #define DIO6_PIN PINB4
  3013. #define DIO6_RPORT PINB
  3014. #define DIO6_WPORT PORTB
  3015. #define DIO6_DDR DDRB
  3016. #define DIO6_PWM &OCR2AL
  3017. #define DIO7_PIN PINB5
  3018. #define DIO7_RPORT PINB
  3019. #define DIO7_WPORT PORTB
  3020. #define DIO7_DDR DDRB
  3021. #define DIO7_PWM &OCR1AL
  3022. #define DIO8_PIN PINB6
  3023. #define DIO8_RPORT PINB
  3024. #define DIO8_WPORT PORTB
  3025. #define DIO8_DDR DDRB
  3026. #define DIO8_PWM &OCR1BL
  3027. #define DIO9_PIN PINB7
  3028. #define DIO9_RPORT PINB
  3029. #define DIO9_WPORT PORTB
  3030. #define DIO9_DDR DDRB
  3031. #define DIO9_PWM &OCR0AL
  3032. #define DIO10_PIN PINB1
  3033. #define DIO10_RPORT PINB
  3034. #define DIO10_WPORT PORTB
  3035. #define DIO10_DDR DDRB
  3036. #define DIO10_PWM NULL
  3037. #define DIO11_PIN PINB2
  3038. #define DIO11_RPORT PINB
  3039. #define DIO11_WPORT PORTB
  3040. #define DIO11_DDR DDRB
  3041. #define DIO11_PWM NULL
  3042. #define DIO12_PIN PINB3
  3043. #define DIO12_RPORT PINB
  3044. #define DIO12_WPORT PORTB
  3045. #define DIO12_DDR DDRB
  3046. #define DIO12_PWM NULL
  3047. #define DIO13_PIN PINE2
  3048. #define DIO13_RPORT PINE
  3049. #define DIO13_WPORT PORTE
  3050. #define DIO13_DDR DDRE
  3051. #define DIO13_PWM NULL
  3052. #define DIO14_PIN PINE6
  3053. #define DIO14_RPORT PINE
  3054. #define DIO14_WPORT PORTE
  3055. #define DIO14_DDR DDRE
  3056. #define DIO14_PWM NULL
  3057. #define DIO15_PIN PINE7
  3058. #define DIO15_RPORT PINE
  3059. #define DIO15_WPORT PORTE
  3060. #define DIO15_DDR DDRE
  3061. #define DIO15_PWM NULL
  3062. #define DIO16_PIN PINB0
  3063. #define DIO16_RPORT PINB
  3064. #define DIO16_WPORT PORTB
  3065. #define DIO16_DDR DDRB
  3066. #define DIO16_PWM NULL
  3067. #define DIO17_PIN PIND0
  3068. #define DIO17_RPORT PIND
  3069. #define DIO17_WPORT PORTD
  3070. #define DIO17_DDR DDRD
  3071. #define DIO17_PWM NULL
  3072. #define DIO18_PIN PIND1
  3073. #define DIO18_RPORT PIND
  3074. #define DIO18_WPORT PORTD
  3075. #define DIO18_DDR DDRD
  3076. #define DIO18_PWM NULL
  3077. #define DIO19_PIN PIND2
  3078. #define DIO19_RPORT PIND
  3079. #define DIO19_WPORT PORTD
  3080. #define DIO19_DDR DDRD
  3081. #define DIO19_PWM NULL
  3082. #define DIO20_PIN PIND3
  3083. #define DIO20_RPORT PIND
  3084. #define DIO20_WPORT PORTD
  3085. #define DIO20_DDR DDRD
  3086. #define DIO20_PWM NULL
  3087. #define DIO21_PIN PIND4
  3088. #define DIO21_RPORT PIND
  3089. #define DIO21_WPORT PORTD
  3090. #define DIO21_DDR DDRD
  3091. #define DIO21_PWM NULL
  3092. #define DIO22_PIN PIND5
  3093. #define DIO22_RPORT PIND
  3094. #define DIO22_WPORT PORTD
  3095. #define DIO22_DDR DDRD
  3096. #define DIO22_PWM NULL
  3097. #define DIO23_PIN PIND6
  3098. #define DIO23_RPORT PIND
  3099. #define DIO23_WPORT PORTD
  3100. #define DIO23_DDR DDRD
  3101. #define DIO23_PWM NULL
  3102. #define DIO24_PIN PIND7
  3103. #define DIO24_RPORT PIND
  3104. #define DIO24_WPORT PORTD
  3105. #define DIO24_DDR DDRD
  3106. #define DIO24_PWM NULL
  3107. #define DIO25_PIN PING0
  3108. #define DIO25_RPORT PING
  3109. #define DIO25_WPORT PORTG
  3110. #define DIO25_DDR DDRG
  3111. #define DIO25_PWM NULL
  3112. #define DIO26_PIN PING1
  3113. #define DIO26_RPORT PING
  3114. #define DIO26_WPORT PORTG
  3115. #define DIO26_DDR DDRG
  3116. #define DIO26_PWM NULL
  3117. #define DIO27_PIN PING2
  3118. #define DIO27_RPORT PING
  3119. #define DIO27_WPORT PORTG
  3120. #define DIO27_DDR DDRG
  3121. #define DIO27_PWM NULL
  3122. #define DIO28_PIN PING3
  3123. #define DIO28_RPORT PING
  3124. #define DIO28_WPORT PORTG
  3125. #define DIO28_DDR DDRG
  3126. #define DIO28_PWM NULL
  3127. #define DIO29_PIN PING4
  3128. #define DIO29_RPORT PING
  3129. #define DIO29_WPORT PORTG
  3130. #define DIO29_DDR DDRG
  3131. #define DIO29_PWM NULL
  3132. #define DIO30_PIN PINC0
  3133. #define DIO30_RPORT PINC
  3134. #define DIO30_WPORT PORTC
  3135. #define DIO30_DDR DDRC
  3136. #define DIO30_PWM NULL
  3137. #define DIO31_PIN PINC1
  3138. #define DIO31_RPORT PINC
  3139. #define DIO31_WPORT PORTC
  3140. #define DIO31_DDR DDRC
  3141. #define DIO31_PWM NULL
  3142. #define DIO32_PIN PINC2
  3143. #define DIO32_RPORT PINC
  3144. #define DIO32_WPORT PORTC
  3145. #define DIO32_DDR DDRC
  3146. #define DIO32_PWM NULL
  3147. #define DIO33_PIN PINC3
  3148. #define DIO33_RPORT PINC
  3149. #define DIO33_WPORT PORTC
  3150. #define DIO33_DDR DDRC
  3151. #define DIO33_PWM NULL
  3152. #define DIO34_PIN PINC4
  3153. #define DIO34_RPORT PINC
  3154. #define DIO34_WPORT PORTC
  3155. #define DIO34_DDR DDRC
  3156. #define DIO34_PWM NULL
  3157. #define DIO35_PIN PINC5
  3158. #define DIO35_RPORT PINC
  3159. #define DIO35_WPORT PORTC
  3160. #define DIO35_DDR DDRC
  3161. #define DIO35_PWM NULL
  3162. #define DIO36_PIN PINC6
  3163. #define DIO36_RPORT PINC
  3164. #define DIO36_WPORT PORTC
  3165. #define DIO36_DDR DDRC
  3166. #define DIO36_PWM NULL
  3167. #define DIO37_PIN PINC7
  3168. #define DIO37_RPORT PINC
  3169. #define DIO37_WPORT PORTC
  3170. #define DIO37_DDR DDRC
  3171. #define DIO37_PWM NULL
  3172. #define DIO38_PIN PINA0
  3173. #define DIO38_RPORT PINA
  3174. #define DIO38_WPORT PORTA
  3175. #define DIO38_DDR DDRA
  3176. #define DIO38_PWM NULL
  3177. #define DIO39_PIN PINA1
  3178. #define DIO39_RPORT PINA
  3179. #define DIO39_WPORT PORTA
  3180. #define DIO39_DDR DDRA
  3181. #define DIO39_PWM NULL
  3182. #define DIO40_PIN PINA2
  3183. #define DIO40_RPORT PINA
  3184. #define DIO40_WPORT PORTA
  3185. #define DIO40_DDR DDRA
  3186. #define DIO40_PWM NULL
  3187. #define DIO41_PIN PINA3
  3188. #define DIO41_RPORT PINA
  3189. #define DIO41_WPORT PORTA
  3190. #define DIO41_DDR DDRA
  3191. #define DIO41_PWM NULL
  3192. #define DIO42_PIN PINA4
  3193. #define DIO42_RPORT PINA
  3194. #define DIO42_WPORT PORTA
  3195. #define DIO42_DDR DDRA
  3196. #define DIO42_PWM NULL
  3197. #define DIO43_PIN PINA5
  3198. #define DIO43_RPORT PINA
  3199. #define DIO43_WPORT PORTA
  3200. #define DIO43_DDR DDRA
  3201. #define DIO43_PWM NULL
  3202. #define DIO44_PIN PINA6
  3203. #define DIO44_RPORT PINA
  3204. #define DIO44_WPORT PORTA
  3205. #define DIO44_DDR DDRA
  3206. #define DIO44_PWM NULL
  3207. #define DIO45_PIN PINA7
  3208. #define DIO45_RPORT PINA
  3209. #define DIO45_WPORT PORTA
  3210. #define DIO45_DDR DDRA
  3211. #define DIO45_PWM NULL
  3212. #define DIO46_PIN PINF0
  3213. #define DIO46_RPORT PINF
  3214. #define DIO46_WPORT PORTF
  3215. #define DIO46_DDR DDRF
  3216. #define DIO46_PWM NULL
  3217. #define DIO47_PIN PINF1
  3218. #define DIO47_RPORT PINF
  3219. #define DIO47_WPORT PORTF
  3220. #define DIO47_DDR DDRF
  3221. #define DIO47_PWM NULL
  3222. #define DIO48_PIN PINF2
  3223. #define DIO48_RPORT PINF
  3224. #define DIO48_WPORT PORTF
  3225. #define DIO48_DDR DDRF
  3226. #define DIO48_PWM NULL
  3227. #define DIO49_PIN PINF3
  3228. #define DIO49_RPORT PINF
  3229. #define DIO49_WPORT PORTF
  3230. #define DIO49_DDR DDRF
  3231. #define DIO49_PWM NULL
  3232. #define DIO50_PIN PINF4
  3233. #define DIO50_RPORT PINF
  3234. #define DIO50_WPORT PORTF
  3235. #define DIO50_DDR DDRF
  3236. #define DIO50_PWM NULL
  3237. #define DIO51_PIN PINF5
  3238. #define DIO51_RPORT PINF
  3239. #define DIO51_WPORT PORTF
  3240. #define DIO51_DDR DDRF
  3241. #define DIO51_PWM NULL
  3242. #define DIO52_PIN PINF6
  3243. #define DIO52_RPORT PINF
  3244. #define DIO52_WPORT PORTF
  3245. #define DIO52_DDR DDRF
  3246. #define DIO52_PWM NULL
  3247. #define DIO53_PIN PINF7
  3248. #define DIO53_RPORT PINF
  3249. #define DIO53_WPORT PORTF
  3250. #define DIO53_DDR DDRF
  3251. #define DIO53_PWM NULL
  3252. #undef PA0
  3253. #define PA0_PIN PINA0
  3254. #define PA0_RPORT PINA
  3255. #define PA0_WPORT PORTA
  3256. #define PA0_DDR DDRA
  3257. #define PA0_PWM NULL
  3258. #undef PA1
  3259. #define PA1_PIN PINA1
  3260. #define PA1_RPORT PINA
  3261. #define PA1_WPORT PORTA
  3262. #define PA1_DDR DDRA
  3263. #define PA1_PWM NULL
  3264. #undef PA2
  3265. #define PA2_PIN PINA2
  3266. #define PA2_RPORT PINA
  3267. #define PA2_WPORT PORTA
  3268. #define PA2_DDR DDRA
  3269. #define PA2_PWM NULL
  3270. #undef PA3
  3271. #define PA3_PIN PINA3
  3272. #define PA3_RPORT PINA
  3273. #define PA3_WPORT PORTA
  3274. #define PA3_DDR DDRA
  3275. #define PA3_PWM NULL
  3276. #undef PA4
  3277. #define PA4_PIN PINA4
  3278. #define PA4_RPORT PINA
  3279. #define PA4_WPORT PORTA
  3280. #define PA4_DDR DDRA
  3281. #define PA4_PWM NULL
  3282. #undef PA5
  3283. #define PA5_PIN PINA5
  3284. #define PA5_RPORT PINA
  3285. #define PA5_WPORT PORTA
  3286. #define PA5_DDR DDRA
  3287. #define PA5_PWM NULL
  3288. #undef PA6
  3289. #define PA6_PIN PINA6
  3290. #define PA6_RPORT PINA
  3291. #define PA6_WPORT PORTA
  3292. #define PA6_DDR DDRA
  3293. #define PA6_PWM NULL
  3294. #undef PA7
  3295. #define PA7_PIN PINA7
  3296. #define PA7_RPORT PINA
  3297. #define PA7_WPORT PORTA
  3298. #define PA7_DDR DDRA
  3299. #define PA7_PWM NULL
  3300. #undef PB0
  3301. #define PB0_PIN PINB0
  3302. #define PB0_RPORT PINB
  3303. #define PB0_WPORT PORTB
  3304. #define PB0_DDR DDRB
  3305. #define PB0_PWM NULL
  3306. #undef PB1
  3307. #define PB1_PIN PINB1
  3308. #define PB1_RPORT PINB
  3309. #define PB1_WPORT PORTB
  3310. #define PB1_DDR DDRB
  3311. #define PB1_PWM NULL
  3312. #undef PB2
  3313. #define PB2_PIN PINB2
  3314. #define PB2_RPORT PINB
  3315. #define PB2_WPORT PORTB
  3316. #define PB2_DDR DDRB
  3317. #define PB2_PWM NULL
  3318. #undef PB3
  3319. #define PB3_PIN PINB3
  3320. #define PB3_RPORT PINB
  3321. #define PB3_WPORT PORTB
  3322. #define PB3_DDR DDRB
  3323. #define PB3_PWM NULL
  3324. #undef PB4
  3325. #define PB4_PIN PINB4
  3326. #define PB4_RPORT PINB
  3327. #define PB4_WPORT PORTB
  3328. #define PB4_DDR DDRB
  3329. #define PB4_PWM &OCR2A
  3330. #undef PB5
  3331. #define PB5_PIN PINB5
  3332. #define PB5_RPORT PINB
  3333. #define PB5_WPORT PORTB
  3334. #define PB5_DDR DDRB
  3335. #define PB5_PWM NULL
  3336. #undef PB6
  3337. #define PB6_PIN PINB6
  3338. #define PB6_RPORT PINB
  3339. #define PB6_WPORT PORTB
  3340. #define PB6_DDR DDRB
  3341. #define PB6_PWM NULL
  3342. #undef PB7
  3343. #define PB7_PIN PINB7
  3344. #define PB7_RPORT PINB
  3345. #define PB7_WPORT PORTB
  3346. #define PB7_DDR DDRB
  3347. #define PB7_PWM &OCR0A
  3348. #undef PC0
  3349. #define PC0_PIN PINC0
  3350. #define PC0_RPORT PINC
  3351. #define PC0_WPORT PORTC
  3352. #define PC0_DDR DDRC
  3353. #define PC0_PWM NULL
  3354. #undef PC1
  3355. #define PC1_PIN PINC1
  3356. #define PC1_RPORT PINC
  3357. #define PC1_WPORT PORTC
  3358. #define PC1_DDR DDRC
  3359. #define PC1_PWM NULL
  3360. #undef PC2
  3361. #define PC2_PIN PINC2
  3362. #define PC2_RPORT PINC
  3363. #define PC2_WPORT PORTC
  3364. #define PC2_DDR DDRC
  3365. #define PC2_PWM NULL
  3366. #undef PC3
  3367. #define PC3_PIN PINC3
  3368. #define PC3_RPORT PINC
  3369. #define PC3_WPORT PORTC
  3370. #define PC3_DDR DDRC
  3371. #define PC3_PWM NULL
  3372. #undef PC4
  3373. #define PC4_PIN PINC4
  3374. #define PC4_RPORT PINC
  3375. #define PC4_WPORT PORTC
  3376. #define PC4_DDR DDRC
  3377. #define PC4_PWM NULL
  3378. #undef PC5
  3379. #define PC5_PIN PINC5
  3380. #define PC5_RPORT PINC
  3381. #define PC5_WPORT PORTC
  3382. #define PC5_DDR DDRC
  3383. #define PC5_PWM NULL
  3384. #undef PC6
  3385. #define PC6_PIN PINC6
  3386. #define PC6_RPORT PINC
  3387. #define PC6_WPORT PORTC
  3388. #define PC6_DDR DDRC
  3389. #define PC6_PWM NULL
  3390. #undef PC7
  3391. #define PC7_PIN PINC7
  3392. #define PC7_RPORT PINC
  3393. #define PC7_WPORT PORTC
  3394. #define PC7_DDR DDRC
  3395. #define PC7_PWM NULL
  3396. #undef PD0
  3397. #define PD0_PIN PIND0
  3398. #define PD0_RPORT PIND
  3399. #define PD0_WPORT PORTD
  3400. #define PD0_DDR DDRD
  3401. #define PD0_PWM NULL
  3402. #undef PD1
  3403. #define PD1_PIN PIND1
  3404. #define PD1_RPORT PIND
  3405. #define PD1_WPORT PORTD
  3406. #define PD1_DDR DDRD
  3407. #define PD1_PWM NULL
  3408. #undef PD2
  3409. #define PD2_PIN PIND2
  3410. #define PD2_RPORT PIND
  3411. #define PD2_WPORT PORTD
  3412. #define PD2_DDR DDRD
  3413. #define PD2_PWM NULL
  3414. #undef PD3
  3415. #define PD3_PIN PIND3
  3416. #define PD3_RPORT PIND
  3417. #define PD3_WPORT PORTD
  3418. #define PD3_DDR DDRD
  3419. #define PD3_PWM NULL
  3420. #undef PD4
  3421. #define PD4_PIN PIND4
  3422. #define PD4_RPORT PIND
  3423. #define PD4_WPORT PORTD
  3424. #define PD4_DDR DDRD
  3425. #define PD4_PWM NULL
  3426. #undef PD5
  3427. #define PD5_PIN PIND5
  3428. #define PD5_RPORT PIND
  3429. #define PD5_WPORT PORTD
  3430. #define PD5_DDR DDRD
  3431. #define PD5_PWM NULL
  3432. #undef PD6
  3433. #define PD6_PIN PIND6
  3434. #define PD6_RPORT PIND
  3435. #define PD6_WPORT PORTD
  3436. #define PD6_DDR DDRD
  3437. #define PD6_PWM NULL
  3438. #undef PD7
  3439. #define PD7_PIN PIND7
  3440. #define PD7_RPORT PIND
  3441. #define PD7_WPORT PORTD
  3442. #define PD7_DDR DDRD
  3443. #define PD7_PWM NULL
  3444. #undef PE0
  3445. #define PE0_PIN PINE0
  3446. #define PE0_RPORT PINE
  3447. #define PE0_WPORT PORTE
  3448. #define PE0_DDR DDRE
  3449. #define PE0_PWM NULL
  3450. #undef PE1
  3451. #define PE1_PIN PINE1
  3452. #define PE1_RPORT PINE
  3453. #define PE1_WPORT PORTE
  3454. #define PE1_DDR DDRE
  3455. #define PE1_PWM NULL
  3456. #undef PE2
  3457. #define PE2_PIN PINE2
  3458. #define PE2_RPORT PINE
  3459. #define PE2_WPORT PORTE
  3460. #define PE2_DDR DDRE
  3461. #define PE2_PWM NULL
  3462. #undef PE3
  3463. #define PE3_PIN PINE3
  3464. #define PE3_RPORT PINE
  3465. #define PE3_WPORT PORTE
  3466. #define PE3_DDR DDRE
  3467. #define PE3_PWM &OCR3AL
  3468. #undef PE4
  3469. #define PE4_PIN PINE4
  3470. #define PE4_RPORT PINE
  3471. #define PE4_WPORT PORTE
  3472. #define PE4_DDR DDRE
  3473. #define PE4_PWM &OCR3BL
  3474. #undef PE5
  3475. #define PE5_PIN PINE5
  3476. #define PE5_RPORT PINE
  3477. #define PE5_WPORT PORTE
  3478. #define PE5_DDR DDRE
  3479. #define PE5_PWM &OCR3CL
  3480. #undef PE6
  3481. #define PE6_PIN PINE6
  3482. #define PE6_RPORT PINE
  3483. #define PE6_WPORT PORTE
  3484. #define PE6_DDR DDRE
  3485. #define PE6_PWM NULL
  3486. #undef PE7
  3487. #define PE7_PIN PINE7
  3488. #define PE7_RPORT PINE
  3489. #define PE7_WPORT PORTE
  3490. #define PE7_DDR DDRE
  3491. #define PE7_PWM NULL
  3492. #undef PF0
  3493. #define PF0_PIN PINF0
  3494. #define PF0_RPORT PINF
  3495. #define PF0_WPORT PORTF
  3496. #define PF0_DDR DDRF
  3497. #define PF0_PWM NULL
  3498. #undef PF1
  3499. #define PF1_PIN PINF1
  3500. #define PF1_RPORT PINF
  3501. #define PF1_WPORT PORTF
  3502. #define PF1_DDR DDRF
  3503. #define PF1_PWM NULL
  3504. #undef PF2
  3505. #define PF2_PIN PINF2
  3506. #define PF2_RPORT PINF
  3507. #define PF2_WPORT PORTF
  3508. #define PF2_DDR DDRF
  3509. #define PF2_PWM NULL
  3510. #undef PF3
  3511. #define PF3_PIN PINF3
  3512. #define PF3_RPORT PINF
  3513. #define PF3_WPORT PORTF
  3514. #define PF3_DDR DDRF
  3515. #define PF3_PWM NULL
  3516. #undef PF4
  3517. #define PF4_PIN PINF4
  3518. #define PF4_RPORT PINF
  3519. #define PF4_WPORT PORTF
  3520. #define PF4_DDR DDRF
  3521. #define PF4_PWM NULL
  3522. #undef PF5
  3523. #define PF5_PIN PINF5
  3524. #define PF5_RPORT PINF
  3525. #define PF5_WPORT PORTF
  3526. #define PF5_DDR DDRF
  3527. #define PF5_PWM NULL
  3528. #undef PF6
  3529. #define PF6_PIN PINF6
  3530. #define PF6_RPORT PINF
  3531. #define PF6_WPORT PORTF
  3532. #define PF6_DDR DDRF
  3533. #define PF6_PWM NULL
  3534. #undef PF7
  3535. #define PF7_PIN PINF7
  3536. #define PF7_RPORT PINF
  3537. #define PF7_WPORT PORTF
  3538. #define PF7_DDR DDRF
  3539. #define PF7_PWM NULL
  3540. #undef PG0
  3541. #define PG0_PIN PING0
  3542. #define PG0_RPORT PING
  3543. #define PG0_WPORT PORTG
  3544. #define PG0_DDR DDRG
  3545. #define PG0_PWM NULL
  3546. #undef PG1
  3547. #define PG1_PIN PING1
  3548. #define PG1_RPORT PING
  3549. #define PG1_WPORT PORTG
  3550. #define PG1_DDR DDRG
  3551. #define PG1_PWM NULL
  3552. #undef PG2
  3553. #define PG2_PIN PING2
  3554. #define PG2_RPORT PING
  3555. #define PG2_WPORT PORTG
  3556. #define PG2_DDR DDRG
  3557. #define PG2_PWM NULL
  3558. #undef PG3
  3559. #define PG3_PIN PING3
  3560. #define PG3_RPORT PING
  3561. #define PG3_WPORT PORTG
  3562. #define PG3_DDR DDRG
  3563. #define PG3_PWM NULL
  3564. #undef PG4
  3565. #define PG4_PIN PING4
  3566. #define PG4_RPORT PING
  3567. #define PG4_WPORT PORTG
  3568. #define PG4_DDR DDRG
  3569. #define PG4_PWM NULL
  3570. #undef PG5
  3571. #define PG5_PIN PING5
  3572. #define PG5_RPORT PING
  3573. #define PG5_WPORT PORTG
  3574. #define PG5_DDR DDRG
  3575. #define PG5_PWM &OCR0B
  3576. #endif
  3577. #ifndef DIO0_PIN
  3578. #error pins for this chip not defined in arduino.h! If you write an appropriate pin definition and have this firmware work on your chip, please submit a pull request
  3579. #endif
  3580. #endif /* _FASTIO_ARDUINO_H */