/avr/avr_lib/at90usb82/avr-at90usb82.ads

http://github.com/tkoskine/avr-ada · Ada · 3235 lines · 2477 code · 179 blank · 579 comment · 337 complexity · 45ce7b17d8820a3017c7cdc78c46bf12 MD5 · raw file

  1. ---------------------------------------------------------------------------
  2. -- The AVR-Ada Library is free software; you can redistribute it and/or --
  3. -- modify it under terms of the GNU General Public License as published --
  4. -- by the Free Software Foundation; either version 2, or (at your --
  5. -- option) any later version. The AVR-Ada Library is distributed in the --
  6. -- hope that it will be useful, but WITHOUT ANY WARRANTY; without even --
  7. -- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR --
  8. -- PURPOSE. See the GNU General Public License for more details. --
  9. -- --
  10. -- As a special exception, if other files instantiate generics from this --
  11. -- unit, or you link this unit with other files to produce an --
  12. -- executable this unit does not by itself cause the resulting --
  13. -- executable to be covered by the GNU General Public License. This --
  14. -- exception does not however invalidate any other reasons why the --
  15. -- executable file might be covered by the GNU Public License. --
  16. ---------------------------------------------------------------------------
  17. with System; use System; -- make Address visible
  18. with Interfaces; use Interfaces;
  19. package AVR.AT90USB82 is
  20. pragma Preelaborate;
  21. CVS_Version : constant String := "$Id$";
  22. --
  23. -- memory sizes
  24. --
  25. Flash_Size : constant := 16#2000#;
  26. Flash_End : constant := 16#1fff#;
  27. EEprom_Size : constant := 16#0200#;
  28. E2end : constant := 16#01ff#;
  29. Int_SRAM_Start_Addr : constant := 16#100#;
  30. Int_SRAM_Size : constant := 16#200#;
  31. --
  32. -- interrupts
  33. --
  34. Number_Of_Interrupts : constant := 38;
  35. -- External Pin,Power-on Reset,Brown-out Reset,Watchdog Reset,and JTAG
  36. -- AVR Reset. See Datasheet.
  37. Sig_RESET : constant := 0;
  38. Sig_RESET_String : constant String := "__vector_0";
  39. -- External Interrupt Request 0
  40. Sig_INT0 : constant := 1;
  41. Sig_INT0_String : constant String := "__vector_1";
  42. -- External Interrupt Request 1
  43. Sig_INT1 : constant := 2;
  44. Sig_INT1_String : constant String := "__vector_2";
  45. -- External Interrupt Request 2
  46. Sig_INT2 : constant := 3;
  47. Sig_INT2_String : constant String := "__vector_3";
  48. -- External Interrupt Request 3
  49. Sig_INT3 : constant := 4;
  50. Sig_INT3_String : constant String := "__vector_4";
  51. -- External Interrupt Request 4
  52. Sig_INT4 : constant := 5;
  53. Sig_INT4_String : constant String := "__vector_5";
  54. -- External Interrupt Request 5
  55. Sig_INT5 : constant := 6;
  56. Sig_INT5_String : constant String := "__vector_6";
  57. -- External Interrupt Request 6
  58. Sig_INT6 : constant := 7;
  59. Sig_INT6_String : constant String := "__vector_7";
  60. -- External Interrupt Request 7
  61. Sig_INT7 : constant := 8;
  62. Sig_INT7_String : constant String := "__vector_8";
  63. -- Pin Change Interrupt Request 0
  64. Sig_PCINT0 : constant := 9;
  65. Sig_PCINT0_String : constant String := "__vector_9";
  66. -- Pin Change Interrupt Request 1
  67. Sig_PCINT1 : constant := 10;
  68. Sig_PCINT1_String : constant String := "__vector_10";
  69. -- USB General Interrupt Request
  70. Sig_USB_GEN : constant := 11;
  71. Sig_USB_GEN_String : constant String := "__vector_11";
  72. -- USB Endpoint/Pipe Interrupt Communication Request
  73. Sig_USB_COM : constant := 12;
  74. Sig_USB_COM_String : constant String := "__vector_12";
  75. -- Watchdog Time-out Interrupt
  76. Sig_WDT : constant := 13;
  77. Sig_WDT_String : constant String := "__vector_13";
  78. -- Timer/Counter2 Capture Event
  79. Sig_TIMER1_CAPT : constant := 14;
  80. Sig_TIMER1_CAPT_String : constant String := "__vector_14";
  81. -- Timer/Counter2 Compare Match B
  82. Sig_TIMER1_COMPA : constant := 15;
  83. Sig_TIMER1_COMPA_String : constant String := "__vector_15";
  84. -- Timer/Counter2 Compare Match B
  85. Sig_TIMER1_COMPB : constant := 16;
  86. Sig_TIMER1_COMPB_String : constant String := "__vector_16";
  87. -- Timer/Counter2 Compare Match C
  88. Sig_TIMER1_COMPC : constant := 17;
  89. Sig_TIMER1_COMPC_String : constant String := "__vector_17";
  90. -- Timer/Counter1 Overflow
  91. Sig_TIMER1_OVF : constant := 18;
  92. Sig_TIMER1_OVF_String : constant String := "__vector_18";
  93. -- Timer/Counter0 Compare Match A
  94. Sig_TIMER0_COMPA : constant := 19;
  95. Sig_TIMER0_COMPA_String : constant String := "__vector_19";
  96. -- Timer/Counter0 Compare Match B
  97. Sig_TIMER0_COMPB : constant := 20;
  98. Sig_TIMER0_COMPB_String : constant String := "__vector_20";
  99. -- Timer/Counter0 Overflow
  100. Sig_TIMER0_OVF : constant := 21;
  101. Sig_TIMER0_OVF_String : constant String := "__vector_21";
  102. -- SPI Serial Transfer Complete
  103. Sig_SPI_STC : constant := 22;
  104. Sig_SPI_STC_String : constant String := "__vector_22";
  105. -- USART1, Rx Complete
  106. Sig_USART1_RX : constant := 23;
  107. Sig_USART1_RX_String : constant String := "__vector_23";
  108. -- USART1 Data register Empty
  109. Sig_USART1_UDRE : constant := 24;
  110. Sig_USART1_UDRE_String : constant String := "__vector_24";
  111. -- USART1, Tx Complete
  112. Sig_USART1_TX : constant := 25;
  113. Sig_USART1_TX_String : constant String := "__vector_25";
  114. -- Analog Comparator
  115. Sig_ANALOG_COMP : constant := 26;
  116. Sig_ANALOG_COMP_String : constant String := "__vector_26";
  117. -- EEPROM Ready
  118. Sig_EE_READY : constant := 27;
  119. Sig_EE_READY_String : constant String := "__vector_27";
  120. -- Store Program Memory Read
  121. Sig_SPM_READY : constant := 28;
  122. Sig_SPM_READY_String : constant String := "__vector_28";
  123. --
  124. -- I/O registers
  125. --
  126. CLKSTA_Addr : constant Address := 16#d2#;
  127. CLKSTA : Unsigned_8 ;
  128. for CLKSTA'Address use CLKSTA_Addr;
  129. pragma Volatile (CLKSTA);
  130. CLKSTA_Bits : Bits_In_Byte;
  131. for CLKSTA_Bits'Address use CLKSTA_Addr;
  132. pragma Volatile (CLKSTA_Bits);
  133. EXTON_Bit : constant Bit_Number := 0;
  134. EXTON_Mask : constant Unsigned_8 := 16#01#;
  135. RCON_Bit : constant Bit_Number := 1;
  136. RCON_Mask : constant Unsigned_8 := 16#02#;
  137. CLKSEL1_Addr : constant Address := 16#d1#;
  138. CLKSEL1 : Unsigned_8 ;
  139. for CLKSEL1'Address use CLKSEL1_Addr;
  140. pragma Volatile (CLKSEL1);
  141. CLKSEL1_Bits : Bits_In_Byte;
  142. for CLKSEL1_Bits'Address use CLKSEL1_Addr;
  143. pragma Volatile (CLKSEL1_Bits);
  144. EXCKSEL0_Bit : constant Bit_Number := 0;
  145. EXCKSEL0_Mask : constant Unsigned_8 := 16#01#;
  146. EXCKSEL1_Bit : constant Bit_Number := 1;
  147. EXCKSEL1_Mask : constant Unsigned_8 := 16#02#;
  148. EXCKSEL2_Bit : constant Bit_Number := 2;
  149. EXCKSEL2_Mask : constant Unsigned_8 := 16#04#;
  150. EXCKSEL3_Bit : constant Bit_Number := 3;
  151. EXCKSEL3_Mask : constant Unsigned_8 := 16#08#;
  152. RCCKSEL0_Bit : constant Bit_Number := 4;
  153. RCCKSEL0_Mask : constant Unsigned_8 := 16#10#;
  154. RCCKSEL1_Bit : constant Bit_Number := 5;
  155. RCCKSEL1_Mask : constant Unsigned_8 := 16#20#;
  156. RCCKSEL2_Bit : constant Bit_Number := 6;
  157. RCCKSEL2_Mask : constant Unsigned_8 := 16#40#;
  158. RCCKSEL3_Bit : constant Bit_Number := 7;
  159. RCCKSEL3_Mask : constant Unsigned_8 := 16#80#;
  160. CLKSEL0_Addr : constant Address := 16#d0#;
  161. CLKSEL0 : Unsigned_8 ;
  162. for CLKSEL0'Address use CLKSEL0_Addr;
  163. pragma Volatile (CLKSEL0);
  164. CLKSEL0_Bits : Bits_In_Byte;
  165. for CLKSEL0_Bits'Address use CLKSEL0_Addr;
  166. pragma Volatile (CLKSEL0_Bits);
  167. CLKS_Bit : constant Bit_Number := 0;
  168. CLKS_Mask : constant Unsigned_8 := 16#01#;
  169. EXTE_Bit : constant Bit_Number := 2;
  170. EXTE_Mask : constant Unsigned_8 := 16#04#;
  171. RCE_Bit : constant Bit_Number := 3;
  172. RCE_Mask : constant Unsigned_8 := 16#08#;
  173. EXSUT0_Bit : constant Bit_Number := 4;
  174. EXSUT0_Mask : constant Unsigned_8 := 16#10#;
  175. EXSUT1_Bit : constant Bit_Number := 5;
  176. EXSUT1_Mask : constant Unsigned_8 := 16#20#;
  177. RCSUT0_Bit : constant Bit_Number := 6;
  178. RCSUT0_Mask : constant Unsigned_8 := 16#40#;
  179. RCSUT1_Bit : constant Bit_Number := 7;
  180. RCSUT1_Mask : constant Unsigned_8 := 16#80#;
  181. -- PLL Status and Control register
  182. PLLCSR_Addr : constant Address := 16#49#;
  183. PLLCSR : Unsigned_8 ;
  184. for PLLCSR'Address use PLLCSR_Addr;
  185. pragma Volatile (PLLCSR);
  186. PLLCSR_Bits : Bits_In_Byte;
  187. for PLLCSR_Bits'Address use PLLCSR_Addr;
  188. pragma Volatile (PLLCSR_Bits);
  189. -- PLL Lock Status Bit
  190. PLOCK_Bit : constant Bit_Number := 0;
  191. PLOCK_Mask : constant Unsigned_8 := 16#01#;
  192. -- PLL Enable Bit
  193. PLLE_Bit : constant Bit_Number := 1;
  194. PLLE_Mask : constant Unsigned_8 := 16#02#;
  195. -- PLL prescaler Bit 0
  196. PLLP0_Bit : constant Bit_Number := 2;
  197. PLLP0_Mask : constant Unsigned_8 := 16#04#;
  198. -- PLL prescaler Bit 1
  199. PLLP1_Bit : constant Bit_Number := 3;
  200. PLLP1_Mask : constant Unsigned_8 := 16#08#;
  201. -- PLL prescaler Bit 2
  202. PLLP2_Bit : constant Bit_Number := 4;
  203. PLLP2_Mask : constant Unsigned_8 := 16#10#;
  204. TESTPADSTATUS_Addr : constant Address := 16#fd#;
  205. TESTPADSTATUS : Unsigned_8 ;
  206. for TESTPADSTATUS'Address use TESTPADSTATUS_Addr;
  207. pragma Volatile (TESTPADSTATUS);
  208. TESTPADSTATUS_Bits : Bits_In_Byte;
  209. for TESTPADSTATUS_Bits'Address use TESTPADSTATUS_Addr;
  210. pragma Volatile (TESTPADSTATUS_Bits);
  211. TESTPADPULL_Addr : constant Address := 16#fe#;
  212. TESTPADPULL : Unsigned_8 ;
  213. for TESTPADPULL'Address use TESTPADPULL_Addr;
  214. pragma Volatile (TESTPADPULL);
  215. TESTPADPULL_Bits : Bits_In_Byte;
  216. for TESTPADPULL_Bits'Address use TESTPADPULL_Addr;
  217. pragma Volatile (TESTPADPULL_Bits);
  218. TESTPADCTRL_Addr : constant Address := 16#ff#;
  219. TESTPADCTRL : Unsigned_8 ;
  220. for TESTPADCTRL'Address use TESTPADCTRL_Addr;
  221. pragma Volatile (TESTPADCTRL);
  222. TESTPADCTRL_Bits : Bits_In_Byte;
  223. for TESTPADCTRL_Bits'Address use TESTPADCTRL_Addr;
  224. pragma Volatile (TESTPADCTRL_Bits);
  225. -- PS2 Pad Enable register
  226. PS2CON_Addr : constant Address := 16#fa#;
  227. PS2CON : Unsigned_8 ;
  228. for PS2CON'Address use PS2CON_Addr;
  229. pragma Volatile (PS2CON);
  230. PS2CON_Bits : Bits_In_Byte;
  231. for PS2CON_Bits'Address use PS2CON_Addr;
  232. pragma Volatile (PS2CON_Bits);
  233. -- Enable
  234. PS2EN_Bit : constant Bit_Number := 0;
  235. PS2EN_Mask : constant Unsigned_8 := 16#01#;
  236. UPOE_Addr : constant Address := 16#fb#;
  237. UPOE : Unsigned_8 ;
  238. for UPOE'Address use UPOE_Addr;
  239. pragma Volatile (UPOE);
  240. UPOE_Bits : Bits_In_Byte;
  241. for UPOE_Bits'Address use UPOE_Addr;
  242. pragma Volatile (UPOE_Bits);
  243. DMI_Bit : constant Bit_Number := 0;
  244. DMI_Mask : constant Unsigned_8 := 16#01#;
  245. DPI_Bit : constant Bit_Number := 1;
  246. DPI_Mask : constant Unsigned_8 := 16#02#;
  247. DATAI_Bit : constant Bit_Number := 2;
  248. DATAI_Mask : constant Unsigned_8 := 16#04#;
  249. SCKI_Bit : constant Bit_Number := 3;
  250. SCKI_Mask : constant Unsigned_8 := 16#08#;
  251. UPDRV0_Bit : constant Bit_Number := 4;
  252. UPDRV0_Mask : constant Unsigned_8 := 16#10#;
  253. UPDRV1_Bit : constant Bit_Number := 5;
  254. UPDRV1_Mask : constant Unsigned_8 := 16#20#;
  255. UPWE0_Bit : constant Bit_Number := 6;
  256. UPWE0_Mask : constant Unsigned_8 := 16#40#;
  257. UPWE1_Bit : constant Bit_Number := 7;
  258. UPWE1_Mask : constant Unsigned_8 := 16#80#;
  259. UEINT_Addr : constant Address := 16#f4#;
  260. UEINT : Unsigned_8 ;
  261. for UEINT'Address use UEINT_Addr;
  262. pragma Volatile (UEINT);
  263. UEINT_Bits : Bits_In_Byte;
  264. for UEINT_Bits'Address use UEINT_Addr;
  265. pragma Volatile (UEINT_Bits);
  266. EPINT0_Bit : constant Bit_Number := 0;
  267. EPINT0_Mask : constant Unsigned_8 := 16#01#;
  268. EPINT1_Bit : constant Bit_Number := 1;
  269. EPINT1_Mask : constant Unsigned_8 := 16#02#;
  270. EPINT2_Bit : constant Bit_Number := 2;
  271. EPINT2_Mask : constant Unsigned_8 := 16#04#;
  272. EPINT3_Bit : constant Bit_Number := 3;
  273. EPINT3_Mask : constant Unsigned_8 := 16#08#;
  274. EPINT4_Bit : constant Bit_Number := 4;
  275. EPINT4_Mask : constant Unsigned_8 := 16#10#;
  276. UPINT_Addr : constant Address := 16#f8#;
  277. UPINT : Unsigned_8 ;
  278. for UPINT'Address use UPINT_Addr;
  279. pragma Volatile (UPINT);
  280. UPINT_Bits : Bits_In_Byte;
  281. for UPINT_Bits'Address use UPINT_Addr;
  282. pragma Volatile (UPINT_Bits);
  283. UPBCHX_Addr : constant Address := 16#f7#;
  284. UPBCHX : Unsigned_8 ;
  285. for UPBCHX'Address use UPBCHX_Addr;
  286. pragma Volatile (UPBCHX);
  287. UPBCHX_Bits : Bits_In_Byte;
  288. for UPBCHX_Bits'Address use UPBCHX_Addr;
  289. pragma Volatile (UPBCHX_Bits);
  290. UEBCLX_Addr : constant Address := 16#f2#;
  291. UEBCLX : Unsigned_8 ;
  292. for UEBCLX'Address use UEBCLX_Addr;
  293. pragma Volatile (UEBCLX);
  294. UEBCLX_Bits : Bits_In_Byte;
  295. for UEBCLX_Bits'Address use UEBCLX_Addr;
  296. pragma Volatile (UEBCLX_Bits);
  297. BYCT0_Bit : constant Bit_Number := 0;
  298. BYCT0_Mask : constant Unsigned_8 := 16#01#;
  299. BYCT1_Bit : constant Bit_Number := 1;
  300. BYCT1_Mask : constant Unsigned_8 := 16#02#;
  301. BYCT2_Bit : constant Bit_Number := 2;
  302. BYCT2_Mask : constant Unsigned_8 := 16#04#;
  303. BYCT3_Bit : constant Bit_Number := 3;
  304. BYCT3_Mask : constant Unsigned_8 := 16#08#;
  305. BYCT4_Bit : constant Bit_Number := 4;
  306. BYCT4_Mask : constant Unsigned_8 := 16#10#;
  307. BYCT5_Bit : constant Bit_Number := 5;
  308. BYCT5_Mask : constant Unsigned_8 := 16#20#;
  309. BYCT6_Bit : constant Bit_Number := 6;
  310. BYCT6_Mask : constant Unsigned_8 := 16#40#;
  311. BYCT7_Bit : constant Bit_Number := 7;
  312. BYCT7_Mask : constant Unsigned_8 := 16#80#;
  313. UPBCLX_Addr : constant Address := 16#f6#;
  314. UPBCLX : Unsigned_8 ;
  315. for UPBCLX'Address use UPBCLX_Addr;
  316. pragma Volatile (UPBCLX);
  317. UPBCLX_Bits : Bits_In_Byte;
  318. for UPBCLX_Bits'Address use UPBCLX_Addr;
  319. pragma Volatile (UPBCLX_Bits);
  320. UEDATX_Addr : constant Address := 16#f1#;
  321. UEDATX : Unsigned_8 ;
  322. for UEDATX'Address use UEDATX_Addr;
  323. pragma Volatile (UEDATX);
  324. UEDATX_Bits : Bits_In_Byte;
  325. for UEDATX_Bits'Address use UEDATX_Addr;
  326. pragma Volatile (UEDATX_Bits);
  327. DAT0_Bit : constant Bit_Number := 0;
  328. DAT0_Mask : constant Unsigned_8 := 16#01#;
  329. DAT1_Bit : constant Bit_Number := 1;
  330. DAT1_Mask : constant Unsigned_8 := 16#02#;
  331. DAT2_Bit : constant Bit_Number := 2;
  332. DAT2_Mask : constant Unsigned_8 := 16#04#;
  333. DAT3_Bit : constant Bit_Number := 3;
  334. DAT3_Mask : constant Unsigned_8 := 16#08#;
  335. DAT4_Bit : constant Bit_Number := 4;
  336. DAT4_Mask : constant Unsigned_8 := 16#10#;
  337. DAT5_Bit : constant Bit_Number := 5;
  338. DAT5_Mask : constant Unsigned_8 := 16#20#;
  339. DAT6_Bit : constant Bit_Number := 6;
  340. DAT6_Mask : constant Unsigned_8 := 16#40#;
  341. DAT7_Bit : constant Bit_Number := 7;
  342. DAT7_Mask : constant Unsigned_8 := 16#80#;
  343. UPDATX_Addr : constant Address := 16#af#;
  344. UPDATX : Unsigned_8 ;
  345. for UPDATX'Address use UPDATX_Addr;
  346. pragma Volatile (UPDATX);
  347. UPDATX_Bits : Bits_In_Byte;
  348. for UPDATX_Bits'Address use UPDATX_Addr;
  349. pragma Volatile (UPDATX_Bits);
  350. UEIENX_Addr : constant Address := 16#f0#;
  351. UEIENX : Unsigned_8 ;
  352. for UEIENX'Address use UEIENX_Addr;
  353. pragma Volatile (UEIENX);
  354. UEIENX_Bits : Bits_In_Byte;
  355. for UEIENX_Bits'Address use UEIENX_Addr;
  356. pragma Volatile (UEIENX_Bits);
  357. TXINE_Bit : constant Bit_Number := 0;
  358. TXINE_Mask : constant Unsigned_8 := 16#01#;
  359. STALLEDE_Bit : constant Bit_Number := 1;
  360. STALLEDE_Mask : constant Unsigned_8 := 16#02#;
  361. RXOUTE_Bit : constant Bit_Number := 2;
  362. RXOUTE_Mask : constant Unsigned_8 := 16#04#;
  363. RXSTPE_Bit : constant Bit_Number := 3;
  364. RXSTPE_Mask : constant Unsigned_8 := 16#08#;
  365. NAKOUTE_Bit : constant Bit_Number := 4;
  366. NAKOUTE_Mask : constant Unsigned_8 := 16#10#;
  367. NAKINE_Bit : constant Bit_Number := 6;
  368. NAKINE_Mask : constant Unsigned_8 := 16#40#;
  369. FLERRE_Bit : constant Bit_Number := 7;
  370. FLERRE_Mask : constant Unsigned_8 := 16#80#;
  371. UPIENX_Addr : constant Address := 16#ae#;
  372. UPIENX : Unsigned_8 ;
  373. for UPIENX'Address use UPIENX_Addr;
  374. pragma Volatile (UPIENX);
  375. UPIENX_Bits : Bits_In_Byte;
  376. for UPIENX_Bits'Address use UPIENX_Addr;
  377. pragma Volatile (UPIENX_Bits);
  378. UESTA1X_Addr : constant Address := 16#ef#;
  379. UESTA1X : Unsigned_8 ;
  380. for UESTA1X'Address use UESTA1X_Addr;
  381. pragma Volatile (UESTA1X);
  382. UESTA1X_Bits : Bits_In_Byte;
  383. for UESTA1X_Bits'Address use UESTA1X_Addr;
  384. pragma Volatile (UESTA1X_Bits);
  385. CURRBK0_Bit : constant Bit_Number := 0;
  386. CURRBK0_Mask : constant Unsigned_8 := 16#01#;
  387. CURRBK1_Bit : constant Bit_Number := 1;
  388. CURRBK1_Mask : constant Unsigned_8 := 16#02#;
  389. CTRLDIR_Bit : constant Bit_Number := 2;
  390. CTRLDIR_Mask : constant Unsigned_8 := 16#04#;
  391. UPCFG2X_Addr : constant Address := 16#ad#;
  392. UPCFG2X : Unsigned_8 ;
  393. for UPCFG2X'Address use UPCFG2X_Addr;
  394. pragma Volatile (UPCFG2X);
  395. UPCFG2X_Bits : Bits_In_Byte;
  396. for UPCFG2X_Bits'Address use UPCFG2X_Addr;
  397. pragma Volatile (UPCFG2X_Bits);
  398. UESTA0X_Addr : constant Address := 16#ee#;
  399. UESTA0X : Unsigned_8 ;
  400. for UESTA0X'Address use UESTA0X_Addr;
  401. pragma Volatile (UESTA0X);
  402. UESTA0X_Bits : Bits_In_Byte;
  403. for UESTA0X_Bits'Address use UESTA0X_Addr;
  404. pragma Volatile (UESTA0X_Bits);
  405. NBUSYBK0_Bit : constant Bit_Number := 0;
  406. NBUSYBK0_Mask : constant Unsigned_8 := 16#01#;
  407. NBUSYBK1_Bit : constant Bit_Number := 1;
  408. NBUSYBK1_Mask : constant Unsigned_8 := 16#02#;
  409. DTSEQ0_Bit : constant Bit_Number := 2;
  410. DTSEQ0_Mask : constant Unsigned_8 := 16#04#;
  411. DTSEQ1_Bit : constant Bit_Number := 3;
  412. DTSEQ1_Mask : constant Unsigned_8 := 16#08#;
  413. UNDERFI_Bit : constant Bit_Number := 5;
  414. UNDERFI_Mask : constant Unsigned_8 := 16#20#;
  415. OVERFI_Bit : constant Bit_Number := 6;
  416. OVERFI_Mask : constant Unsigned_8 := 16#40#;
  417. CFGOK_Bit : constant Bit_Number := 7;
  418. CFGOK_Mask : constant Unsigned_8 := 16#80#;
  419. UPSTAX_Addr : constant Address := 16#ac#;
  420. UPSTAX : Unsigned_8 ;
  421. for UPSTAX'Address use UPSTAX_Addr;
  422. pragma Volatile (UPSTAX);
  423. UPSTAX_Bits : Bits_In_Byte;
  424. for UPSTAX_Bits'Address use UPSTAX_Addr;
  425. pragma Volatile (UPSTAX_Bits);
  426. UECFG1X_Addr : constant Address := 16#ed#;
  427. UECFG1X : Unsigned_8 ;
  428. for UECFG1X'Address use UECFG1X_Addr;
  429. pragma Volatile (UECFG1X);
  430. UECFG1X_Bits : Bits_In_Byte;
  431. for UECFG1X_Bits'Address use UECFG1X_Addr;
  432. pragma Volatile (UECFG1X_Bits);
  433. ALLOC_Bit : constant Bit_Number := 1;
  434. ALLOC_Mask : constant Unsigned_8 := 16#02#;
  435. EPBK0_Bit : constant Bit_Number := 2;
  436. EPBK0_Mask : constant Unsigned_8 := 16#04#;
  437. EPBK1_Bit : constant Bit_Number := 3;
  438. EPBK1_Mask : constant Unsigned_8 := 16#08#;
  439. EPSIZE0_Bit : constant Bit_Number := 4;
  440. EPSIZE0_Mask : constant Unsigned_8 := 16#10#;
  441. EPSIZE1_Bit : constant Bit_Number := 5;
  442. EPSIZE1_Mask : constant Unsigned_8 := 16#20#;
  443. EPSIZE2_Bit : constant Bit_Number := 6;
  444. EPSIZE2_Mask : constant Unsigned_8 := 16#40#;
  445. UPCFG1X_Addr : constant Address := 16#ab#;
  446. UPCFG1X : Unsigned_8 ;
  447. for UPCFG1X'Address use UPCFG1X_Addr;
  448. pragma Volatile (UPCFG1X);
  449. UPCFG1X_Bits : Bits_In_Byte;
  450. for UPCFG1X_Bits'Address use UPCFG1X_Addr;
  451. pragma Volatile (UPCFG1X_Bits);
  452. UECFG0X_Addr : constant Address := 16#ec#;
  453. UECFG0X : Unsigned_8 ;
  454. for UECFG0X'Address use UECFG0X_Addr;
  455. pragma Volatile (UECFG0X);
  456. UECFG0X_Bits : Bits_In_Byte;
  457. for UECFG0X_Bits'Address use UECFG0X_Addr;
  458. pragma Volatile (UECFG0X_Bits);
  459. EPDIR_Bit : constant Bit_Number := 0;
  460. EPDIR_Mask : constant Unsigned_8 := 16#01#;
  461. EPTYPE0_Bit : constant Bit_Number := 6;
  462. EPTYPE0_Mask : constant Unsigned_8 := 16#40#;
  463. EPTYPE1_Bit : constant Bit_Number := 7;
  464. EPTYPE1_Mask : constant Unsigned_8 := 16#80#;
  465. UPCFG0X_Addr : constant Address := 16#aa#;
  466. UPCFG0X : Unsigned_8 ;
  467. for UPCFG0X'Address use UPCFG0X_Addr;
  468. pragma Volatile (UPCFG0X);
  469. UPCFG0X_Bits : Bits_In_Byte;
  470. for UPCFG0X_Bits'Address use UPCFG0X_Addr;
  471. pragma Volatile (UPCFG0X_Bits);
  472. UECONX_Addr : constant Address := 16#eb#;
  473. UECONX : Unsigned_8 ;
  474. for UECONX'Address use UECONX_Addr;
  475. pragma Volatile (UECONX);
  476. UECONX_Bits : Bits_In_Byte;
  477. for UECONX_Bits'Address use UECONX_Addr;
  478. pragma Volatile (UECONX_Bits);
  479. EPEN_Bit : constant Bit_Number := 0;
  480. EPEN_Mask : constant Unsigned_8 := 16#01#;
  481. RSTDT_Bit : constant Bit_Number := 3;
  482. RSTDT_Mask : constant Unsigned_8 := 16#08#;
  483. STALLRQC_Bit : constant Bit_Number := 4;
  484. STALLRQC_Mask : constant Unsigned_8 := 16#10#;
  485. STALLRQ_Bit : constant Bit_Number := 5;
  486. STALLRQ_Mask : constant Unsigned_8 := 16#20#;
  487. UPCONX_Addr : constant Address := 16#a9#;
  488. UPCONX : Unsigned_8 ;
  489. for UPCONX'Address use UPCONX_Addr;
  490. pragma Volatile (UPCONX);
  491. UPCONX_Bits : Bits_In_Byte;
  492. for UPCONX_Bits'Address use UPCONX_Addr;
  493. pragma Volatile (UPCONX_Bits);
  494. UERST_Addr : constant Address := 16#ea#;
  495. UERST : Unsigned_8 ;
  496. for UERST'Address use UERST_Addr;
  497. pragma Volatile (UERST);
  498. UERST_Bits : Bits_In_Byte;
  499. for UERST_Bits'Address use UERST_Addr;
  500. pragma Volatile (UERST_Bits);
  501. EPRST0_Bit : constant Bit_Number := 0;
  502. EPRST0_Mask : constant Unsigned_8 := 16#01#;
  503. EPRST1_Bit : constant Bit_Number := 1;
  504. EPRST1_Mask : constant Unsigned_8 := 16#02#;
  505. EPRST2_Bit : constant Bit_Number := 2;
  506. EPRST2_Mask : constant Unsigned_8 := 16#04#;
  507. EPRST3_Bit : constant Bit_Number := 3;
  508. EPRST3_Mask : constant Unsigned_8 := 16#08#;
  509. EPRST4_Bit : constant Bit_Number := 4;
  510. EPRST4_Mask : constant Unsigned_8 := 16#10#;
  511. UPRST_Addr : constant Address := 16#a8#;
  512. UPRST : Unsigned_8 ;
  513. for UPRST'Address use UPRST_Addr;
  514. pragma Volatile (UPRST);
  515. UPRST_Bits : Bits_In_Byte;
  516. for UPRST_Bits'Address use UPRST_Addr;
  517. pragma Volatile (UPRST_Bits);
  518. UENUM_Addr : constant Address := 16#e9#;
  519. UENUM : Unsigned_8 ;
  520. for UENUM'Address use UENUM_Addr;
  521. pragma Volatile (UENUM);
  522. UENUM_Bits : Bits_In_Byte;
  523. for UENUM_Bits'Address use UENUM_Addr;
  524. pragma Volatile (UENUM_Bits);
  525. EPNUM0_Bit : constant Bit_Number := 0;
  526. EPNUM0_Mask : constant Unsigned_8 := 16#01#;
  527. EPNUM1_Bit : constant Bit_Number := 1;
  528. EPNUM1_Mask : constant Unsigned_8 := 16#02#;
  529. EPNUM2_Bit : constant Bit_Number := 2;
  530. EPNUM2_Mask : constant Unsigned_8 := 16#04#;
  531. UPNUM_Addr : constant Address := 16#a7#;
  532. UPNUM : Unsigned_8 ;
  533. for UPNUM'Address use UPNUM_Addr;
  534. pragma Volatile (UPNUM);
  535. UPNUM_Bits : Bits_In_Byte;
  536. for UPNUM_Bits'Address use UPNUM_Addr;
  537. pragma Volatile (UPNUM_Bits);
  538. UEINTX_Addr : constant Address := 16#e8#;
  539. UEINTX : Unsigned_8 ;
  540. for UEINTX'Address use UEINTX_Addr;
  541. pragma Volatile (UEINTX);
  542. UEINTX_Bits : Bits_In_Byte;
  543. for UEINTX_Bits'Address use UEINTX_Addr;
  544. pragma Volatile (UEINTX_Bits);
  545. TXINI_Bit : constant Bit_Number := 0;
  546. TXINI_Mask : constant Unsigned_8 := 16#01#;
  547. STALLEDI_Bit : constant Bit_Number := 1;
  548. STALLEDI_Mask : constant Unsigned_8 := 16#02#;
  549. RXOUTI_Bit : constant Bit_Number := 2;
  550. RXOUTI_Mask : constant Unsigned_8 := 16#04#;
  551. RXSTPI_Bit : constant Bit_Number := 3;
  552. RXSTPI_Mask : constant Unsigned_8 := 16#08#;
  553. NAKOUTI_Bit : constant Bit_Number := 4;
  554. NAKOUTI_Mask : constant Unsigned_8 := 16#10#;
  555. RWAL_Bit : constant Bit_Number := 5;
  556. RWAL_Mask : constant Unsigned_8 := 16#20#;
  557. NAKINI_Bit : constant Bit_Number := 6;
  558. NAKINI_Mask : constant Unsigned_8 := 16#40#;
  559. FIFOCON_Bit : constant Bit_Number := 7;
  560. FIFOCON_Mask : constant Unsigned_8 := 16#80#;
  561. UPINTX_Addr : constant Address := 16#a6#;
  562. UPINTX : Unsigned_8 ;
  563. for UPINTX'Address use UPINTX_Addr;
  564. pragma Volatile (UPINTX);
  565. UPINTX_Bits : Bits_In_Byte;
  566. for UPINTX_Bits'Address use UPINTX_Addr;
  567. pragma Volatile (UPINTX_Bits);
  568. UDTST_Addr : constant Address := 16#e7#;
  569. UDTST : Unsigned_8 ;
  570. for UDTST'Address use UDTST_Addr;
  571. pragma Volatile (UDTST);
  572. UDTST_Bits : Bits_In_Byte;
  573. for UDTST_Bits'Address use UDTST_Addr;
  574. pragma Volatile (UDTST_Bits);
  575. UPINRQX_Addr : constant Address := 16#a5#;
  576. UPINRQX : Unsigned_8 ;
  577. for UPINRQX'Address use UPINRQX_Addr;
  578. pragma Volatile (UPINRQX);
  579. UPINRQX_Bits : Bits_In_Byte;
  580. for UPINRQX_Bits'Address use UPINRQX_Addr;
  581. pragma Volatile (UPINRQX_Bits);
  582. UDMFN_Addr : constant Address := 16#e6#;
  583. UDMFN : Unsigned_8 ;
  584. for UDMFN'Address use UDMFN_Addr;
  585. pragma Volatile (UDMFN);
  586. UDMFN_Bits : Bits_In_Byte;
  587. for UDMFN_Bits'Address use UDMFN_Addr;
  588. pragma Volatile (UDMFN_Bits);
  589. FNCERR_Bit : constant Bit_Number := 4;
  590. FNCERR_Mask : constant Unsigned_8 := 16#10#;
  591. UHFLEN_Addr : constant Address := 16#a4#;
  592. UHFLEN : Unsigned_8 ;
  593. for UHFLEN'Address use UHFLEN_Addr;
  594. pragma Volatile (UHFLEN);
  595. UHFLEN_Bits : Bits_In_Byte;
  596. for UHFLEN_Bits'Address use UHFLEN_Addr;
  597. pragma Volatile (UHFLEN_Bits);
  598. UDFNUMH_Addr : constant Address := 16#e5#;
  599. UDFNUMH : Unsigned_8 ;
  600. for UDFNUMH'Address use UDFNUMH_Addr;
  601. pragma Volatile (UDFNUMH);
  602. UDFNUMH_Bits : Bits_In_Byte;
  603. for UDFNUMH_Bits'Address use UDFNUMH_Addr;
  604. pragma Volatile (UDFNUMH_Bits);
  605. FNUM8_Bit : constant Bit_Number := 0;
  606. FNUM8_Mask : constant Unsigned_8 := 16#01#;
  607. FNUM9_Bit : constant Bit_Number := 1;
  608. FNUM9_Mask : constant Unsigned_8 := 16#02#;
  609. FNUM10_Bit : constant Bit_Number := 2;
  610. FNUM10_Mask : constant Unsigned_8 := 16#04#;
  611. UHFNUMH_Addr : constant Address := 16#a3#;
  612. UHFNUMH : Unsigned_8 ;
  613. for UHFNUMH'Address use UHFNUMH_Addr;
  614. pragma Volatile (UHFNUMH);
  615. UHFNUMH_Bits : Bits_In_Byte;
  616. for UHFNUMH_Bits'Address use UHFNUMH_Addr;
  617. pragma Volatile (UHFNUMH_Bits);
  618. UDFNUML_Addr : constant Address := 16#e4#;
  619. UDFNUM : Unsigned_16;
  620. for UDFNUM'Address use UDFNUML_Addr;
  621. pragma Volatile (UDFNUM);
  622. UDFNUML : Unsigned_8 ;
  623. for UDFNUML'Address use UDFNUML_Addr;
  624. pragma Volatile (UDFNUML);
  625. UDFNUML_Bits : Bits_In_Byte;
  626. for UDFNUML_Bits'Address use UDFNUML_Addr;
  627. pragma Volatile (UDFNUML_Bits);
  628. FNUM0_Bit : constant Bit_Number := 0;
  629. FNUM0_Mask : constant Unsigned_8 := 16#01#;
  630. FNUM1_Bit : constant Bit_Number := 1;
  631. FNUM1_Mask : constant Unsigned_8 := 16#02#;
  632. FNUM2_Bit : constant Bit_Number := 2;
  633. FNUM2_Mask : constant Unsigned_8 := 16#04#;
  634. FNUM3_Bit : constant Bit_Number := 3;
  635. FNUM3_Mask : constant Unsigned_8 := 16#08#;
  636. FNUM4_Bit : constant Bit_Number := 4;
  637. FNUM4_Mask : constant Unsigned_8 := 16#10#;
  638. FNUM5_Bit : constant Bit_Number := 5;
  639. FNUM5_Mask : constant Unsigned_8 := 16#20#;
  640. FNUM6_Bit : constant Bit_Number := 6;
  641. FNUM6_Mask : constant Unsigned_8 := 16#40#;
  642. FNUM7_Bit : constant Bit_Number := 7;
  643. FNUM7_Mask : constant Unsigned_8 := 16#80#;
  644. UHFNUML_Addr : constant Address := 16#a2#;
  645. UHFNUML : Unsigned_8 ;
  646. for UHFNUML'Address use UHFNUML_Addr;
  647. pragma Volatile (UHFNUML);
  648. UHFNUML_Bits : Bits_In_Byte;
  649. for UHFNUML_Bits'Address use UHFNUML_Addr;
  650. pragma Volatile (UHFNUML_Bits);
  651. UDADDR_Addr : constant Address := 16#e3#;
  652. UDADDR : Unsigned_8 ;
  653. for UDADDR'Address use UDADDR_Addr;
  654. pragma Volatile (UDADDR);
  655. UDADDR_Bits : Bits_In_Byte;
  656. for UDADDR_Bits'Address use UDADDR_Addr;
  657. pragma Volatile (UDADDR_Bits);
  658. UADD0_Bit : constant Bit_Number := 0;
  659. UADD0_Mask : constant Unsigned_8 := 16#01#;
  660. UADD1_Bit : constant Bit_Number := 1;
  661. UADD1_Mask : constant Unsigned_8 := 16#02#;
  662. UADD2_Bit : constant Bit_Number := 2;
  663. UADD2_Mask : constant Unsigned_8 := 16#04#;
  664. UADD3_Bit : constant Bit_Number := 3;
  665. UADD3_Mask : constant Unsigned_8 := 16#08#;
  666. UADD4_Bit : constant Bit_Number := 4;
  667. UADD4_Mask : constant Unsigned_8 := 16#10#;
  668. UADD5_Bit : constant Bit_Number := 5;
  669. UADD5_Mask : constant Unsigned_8 := 16#20#;
  670. UADD6_Bit : constant Bit_Number := 6;
  671. UADD6_Mask : constant Unsigned_8 := 16#40#;
  672. ADDEN_Bit : constant Bit_Number := 7;
  673. ADDEN_Mask : constant Unsigned_8 := 16#80#;
  674. UHADDR_Addr : constant Address := 16#a1#;
  675. UHADDR : Unsigned_8 ;
  676. for UHADDR'Address use UHADDR_Addr;
  677. pragma Volatile (UHADDR);
  678. UHADDR_Bits : Bits_In_Byte;
  679. for UHADDR_Bits'Address use UHADDR_Addr;
  680. pragma Volatile (UHADDR_Bits);
  681. UDIEN_Addr : constant Address := 16#e2#;
  682. UDIEN : Unsigned_8 ;
  683. for UDIEN'Address use UDIEN_Addr;
  684. pragma Volatile (UDIEN);
  685. UDIEN_Bits : Bits_In_Byte;
  686. for UDIEN_Bits'Address use UDIEN_Addr;
  687. pragma Volatile (UDIEN_Bits);
  688. SUSPE_Bit : constant Bit_Number := 0;
  689. SUSPE_Mask : constant Unsigned_8 := 16#01#;
  690. SOFE_Bit : constant Bit_Number := 2;
  691. SOFE_Mask : constant Unsigned_8 := 16#04#;
  692. EORSTE_Bit : constant Bit_Number := 3;
  693. EORSTE_Mask : constant Unsigned_8 := 16#08#;
  694. WAKEUPE_Bit : constant Bit_Number := 4;
  695. WAKEUPE_Mask : constant Unsigned_8 := 16#10#;
  696. EORSME_Bit : constant Bit_Number := 5;
  697. EORSME_Mask : constant Unsigned_8 := 16#20#;
  698. UPRSME_Bit : constant Bit_Number := 6;
  699. UPRSME_Mask : constant Unsigned_8 := 16#40#;
  700. UHIEN_Addr : constant Address := 16#a0#;
  701. UHIEN : Unsigned_8 ;
  702. for UHIEN'Address use UHIEN_Addr;
  703. pragma Volatile (UHIEN);
  704. UHIEN_Bits : Bits_In_Byte;
  705. for UHIEN_Bits'Address use UHIEN_Addr;
  706. pragma Volatile (UHIEN_Bits);
  707. UDINT_Addr : constant Address := 16#e1#;
  708. UDINT : Unsigned_8 ;
  709. for UDINT'Address use UDINT_Addr;
  710. pragma Volatile (UDINT);
  711. UDINT_Bits : Bits_In_Byte;
  712. for UDINT_Bits'Address use UDINT_Addr;
  713. pragma Volatile (UDINT_Bits);
  714. SUSPI_Bit : constant Bit_Number := 0;
  715. SUSPI_Mask : constant Unsigned_8 := 16#01#;
  716. SOFI_Bit : constant Bit_Number := 2;
  717. SOFI_Mask : constant Unsigned_8 := 16#04#;
  718. EORSTI_Bit : constant Bit_Number := 3;
  719. EORSTI_Mask : constant Unsigned_8 := 16#08#;
  720. WAKEUPI_Bit : constant Bit_Number := 4;
  721. WAKEUPI_Mask : constant Unsigned_8 := 16#10#;
  722. EORSMI_Bit : constant Bit_Number := 5;
  723. EORSMI_Mask : constant Unsigned_8 := 16#20#;
  724. UPRSMI_Bit : constant Bit_Number := 6;
  725. UPRSMI_Mask : constant Unsigned_8 := 16#40#;
  726. UHINT_Addr : constant Address := 16#9f#;
  727. UHINT : Unsigned_8 ;
  728. for UHINT'Address use UHINT_Addr;
  729. pragma Volatile (UHINT);
  730. UHINT_Bits : Bits_In_Byte;
  731. for UHINT_Bits'Address use UHINT_Addr;
  732. pragma Volatile (UHINT_Bits);
  733. UDCON_Addr : constant Address := 16#e0#;
  734. UDCON : Unsigned_8 ;
  735. for UDCON'Address use UDCON_Addr;
  736. pragma Volatile (UDCON);
  737. UDCON_Bits : Bits_In_Byte;
  738. for UDCON_Bits'Address use UDCON_Addr;
  739. pragma Volatile (UDCON_Bits);
  740. DETACH_Bit : constant Bit_Number := 0;
  741. DETACH_Mask : constant Unsigned_8 := 16#01#;
  742. RMWKUP_Bit : constant Bit_Number := 1;
  743. RMWKUP_Mask : constant Unsigned_8 := 16#02#;
  744. RSTCPU_Bit : constant Bit_Number := 2;
  745. RSTCPU_Mask : constant Unsigned_8 := 16#04#;
  746. UHCON_Addr : constant Address := 16#9e#;
  747. UHCON : Unsigned_8 ;
  748. for UHCON'Address use UHCON_Addr;
  749. pragma Volatile (UHCON);
  750. UHCON_Bits : Bits_In_Byte;
  751. for UHCON_Bits'Address use UHCON_Addr;
  752. pragma Volatile (UHCON_Bits);
  753. USBINT_Addr : constant Address := 16#da#;
  754. USBINT : Unsigned_8 ;
  755. for USBINT'Address use USBINT_Addr;
  756. pragma Volatile (USBINT);
  757. USBINT_Bits : Bits_In_Byte;
  758. for USBINT_Bits'Address use USBINT_Addr;
  759. pragma Volatile (USBINT_Bits);
  760. -- USB General Control Register
  761. USBCON_Addr : constant Address := 16#d8#;
  762. USBCON : Unsigned_8 ;
  763. for USBCON'Address use USBCON_Addr;
  764. pragma Volatile (USBCON);
  765. USBCON_Bits : Bits_In_Byte;
  766. for USBCON_Bits'Address use USBCON_Addr;
  767. pragma Volatile (USBCON_Bits);
  768. FRZCLK_Bit : constant Bit_Number := 5;
  769. FRZCLK_Mask : constant Unsigned_8 := 16#20#;
  770. USBE_Bit : constant Bit_Number := 7;
  771. USBE_Mask : constant Unsigned_8 := 16#80#;
  772. -- Regulator Control Register
  773. REGCR_Addr : constant Address := 16#63#;
  774. REGCR : Unsigned_8 ;
  775. for REGCR'Address use REGCR_Addr;
  776. pragma Volatile (REGCR);
  777. REGCR_Bits : Bits_In_Byte;
  778. for REGCR_Bits'Address use REGCR_Addr;
  779. pragma Volatile (REGCR_Bits);
  780. REGDIS_Bit : constant Bit_Number := 0;
  781. REGDIS_Mask : constant Unsigned_8 := 16#01#;
  782. -- USART I/O Data Register
  783. UDR1_Addr : constant Address := 16#ce#;
  784. UDR1 : Unsigned_8 ;
  785. for UDR1'Address use UDR1_Addr;
  786. pragma Volatile (UDR1);
  787. UDR1_Bits : Bits_In_Byte;
  788. for UDR1_Bits'Address use UDR1_Addr;
  789. pragma Volatile (UDR1_Bits);
  790. -- USART I/O Data Register bit 0
  791. UDR1_0_Bit : constant Bit_Number := 0;
  792. UDR1_0_Mask : constant Unsigned_8 := 16#01#;
  793. -- USART I/O Data Register bit 1
  794. UDR1_1_Bit : constant Bit_Number := 1;
  795. UDR1_1_Mask : constant Unsigned_8 := 16#02#;
  796. -- USART I/O Data Register bit 2
  797. UDR1_2_Bit : constant Bit_Number := 2;
  798. UDR1_2_Mask : constant Unsigned_8 := 16#04#;
  799. -- USART I/O Data Register bit 3
  800. UDR1_3_Bit : constant Bit_Number := 3;
  801. UDR1_3_Mask : constant Unsigned_8 := 16#08#;
  802. -- USART I/O Data Register bit 4
  803. UDR1_4_Bit : constant Bit_Number := 4;
  804. UDR1_4_Mask : constant Unsigned_8 := 16#10#;
  805. -- USART I/O Data Register bit 5
  806. UDR1_5_Bit : constant Bit_Number := 5;
  807. UDR1_5_Mask : constant Unsigned_8 := 16#20#;
  808. -- USART I/O Data Register bit 6
  809. UDR1_6_Bit : constant Bit_Number := 6;
  810. UDR1_6_Mask : constant Unsigned_8 := 16#40#;
  811. -- USART I/O Data Register bit 7
  812. UDR1_7_Bit : constant Bit_Number := 7;
  813. UDR1_7_Mask : constant Unsigned_8 := 16#80#;
  814. -- USART Baud Rate Register High Byte
  815. UBRR1H_Addr : constant Address := 16#cd#;
  816. UBRR1H : Unsigned_8 ;
  817. for UBRR1H'Address use UBRR1H_Addr;
  818. pragma Volatile (UBRR1H);
  819. UBRR1H_Bits : Bits_In_Byte;
  820. for UBRR1H_Bits'Address use UBRR1H_Addr;
  821. pragma Volatile (UBRR1H_Bits);
  822. -- USART Baud Rate Register bit 8
  823. UBRR8_Bit : constant Bit_Number := 0;
  824. UBRR8_Mask : constant Unsigned_8 := 16#01#;
  825. -- USART Baud Rate Register bit 9
  826. UBRR9_Bit : constant Bit_Number := 1;
  827. UBRR9_Mask : constant Unsigned_8 := 16#02#;
  828. -- USART Baud Rate Register bit 10
  829. UBRR10_Bit : constant Bit_Number := 2;
  830. UBRR10_Mask : constant Unsigned_8 := 16#04#;
  831. -- USART Baud Rate Register bit 11
  832. UBRR11_Bit : constant Bit_Number := 3;
  833. UBRR11_Mask : constant Unsigned_8 := 16#08#;
  834. -- USART Baud Rate Register Low Byte
  835. UBRR1L_Addr : constant Address := 16#cc#;
  836. UBRR1 : Unsigned_16;
  837. for UBRR1'Address use UBRR1L_Addr;
  838. pragma Volatile (UBRR1);
  839. UBRR1L : Unsigned_8 ;
  840. for UBRR1L'Address use UBRR1L_Addr;
  841. pragma Volatile (UBRR1L);
  842. UBRR1L_Bits : Bits_In_Byte;
  843. for UBRR1L_Bits'Address use UBRR1L_Addr;
  844. pragma Volatile (UBRR1L_Bits);
  845. -- USART Baud Rate Register bit 0
  846. UBRR0_Bit : constant Bit_Number := 0;
  847. UBRR0_Mask : constant Unsigned_8 := 16#01#;
  848. -- USART Baud Rate Register bit 1
  849. -- UBRR1_Bit : constant Bit_Number := 1;
  850. -- UBRR1_Mask : constant Unsigned_8 := 16#02#;
  851. -- USART Baud Rate Register bit 2
  852. UBRR2_Bit : constant Bit_Number := 2;
  853. UBRR2_Mask : constant Unsigned_8 := 16#04#;
  854. -- USART Baud Rate Register bit 3
  855. UBRR3_Bit : constant Bit_Number := 3;
  856. UBRR3_Mask : constant Unsigned_8 := 16#08#;
  857. -- USART Baud Rate Register bit 4
  858. UBRR4_Bit : constant Bit_Number := 4;
  859. UBRR4_Mask : constant Unsigned_8 := 16#10#;
  860. -- USART Baud Rate Register bit 5
  861. UBRR5_Bit : constant Bit_Number := 5;
  862. UBRR5_Mask : constant Unsigned_8 := 16#20#;
  863. -- USART Baud Rate Register bit 6
  864. UBRR6_Bit : constant Bit_Number := 6;
  865. UBRR6_Mask : constant Unsigned_8 := 16#40#;
  866. -- USART Baud Rate Register bit 7
  867. UBRR7_Bit : constant Bit_Number := 7;
  868. UBRR7_Mask : constant Unsigned_8 := 16#80#;
  869. -- USART Control and Status Register D
  870. UCSR1D_Addr : constant Address := 16#cb#;
  871. UCSR1D : Unsigned_8 ;
  872. for UCSR1D'Address use UCSR1D_Addr;
  873. pragma Volatile (UCSR1D);
  874. UCSR1D_Bits : Bits_In_Byte;
  875. for UCSR1D_Bits'Address use UCSR1D_Addr;
  876. pragma Volatile (UCSR1D_Bits);
  877. -- RTS Enable
  878. RTSEN_Bit : constant Bit_Number := 0;
  879. RTSEN_Mask : constant Unsigned_8 := 16#01#;
  880. -- CTS Enable
  881. CTSEN_Bit : constant Bit_Number := 1;
  882. CTSEN_Mask : constant Unsigned_8 := 16#02#;
  883. -- USART Control and Status Register C
  884. UCSR1C_Addr : constant Address := 16#ca#;
  885. UCSR1C : Unsigned_8 ;
  886. for UCSR1C'Address use UCSR1C_Addr;
  887. pragma Volatile (UCSR1C);
  888. UCSR1C_Bits : Bits_In_Byte;
  889. for UCSR1C_Bits'Address use UCSR1C_Addr;
  890. pragma Volatile (UCSR1C_Bits);
  891. -- Clock Polarity
  892. UCPOL1_Bit : constant Bit_Number := 0;
  893. UCPOL1_Mask : constant Unsigned_8 := 16#01#;
  894. -- Character Size
  895. UCSZ10_Bit : constant Bit_Number := 1;
  896. UCSZ10_Mask : constant Unsigned_8 := 16#02#;
  897. -- Character Size
  898. UCSZ11_Bit : constant Bit_Number := 2;
  899. UCSZ11_Mask : constant Unsigned_8 := 16#04#;
  900. -- Stop Bit Select
  901. USBS1_Bit : constant Bit_Number := 3;
  902. USBS1_Mask : constant Unsigned_8 := 16#08#;
  903. -- Parity Mode Bit 0
  904. UPM10_Bit : constant Bit_Number := 4;
  905. UPM10_Mask : constant Unsigned_8 := 16#10#;
  906. -- Parity Mode Bit 1
  907. UPM11_Bit : constant Bit_Number := 5;
  908. UPM11_Mask : constant Unsigned_8 := 16#20#;
  909. -- USART Mode Select
  910. UMSEL10_Bit : constant Bit_Number := 6;
  911. UMSEL10_Mask : constant Unsigned_8 := 16#40#;
  912. -- USART Mode Select
  913. UMSEL11_Bit : constant Bit_Number := 7;
  914. UMSEL11_Mask : constant Unsigned_8 := 16#80#;
  915. -- USART Control and Status Register B
  916. UCSR1B_Addr : constant Address := 16#c9#;
  917. UCSR1B : Unsigned_8 ;
  918. for UCSR1B'Address use UCSR1B_Addr;
  919. pragma Volatile (UCSR1B);
  920. UCSR1B_Bits : Bits_In_Byte;
  921. for UCSR1B_Bits'Address use UCSR1B_Addr;
  922. pragma Volatile (UCSR1B_Bits);
  923. -- Transmit Data Bit 8
  924. TXB81_Bit : constant Bit_Number := 0;
  925. TXB81_Mask : constant Unsigned_8 := 16#01#;
  926. -- Receive Data Bit 8
  927. RXB81_Bit : constant Bit_Number := 1;
  928. RXB81_Mask : constant Unsigned_8 := 16#02#;
  929. -- Character Size
  930. UCSZ12_Bit : constant Bit_Number := 2;
  931. UCSZ12_Mask : constant Unsigned_8 := 16#04#;
  932. -- Transmitter Enable
  933. TXEN1_Bit : constant Bit_Number := 3;
  934. TXEN1_Mask : constant Unsigned_8 := 16#08#;
  935. -- Receiver Enable
  936. RXEN1_Bit : constant Bit_Number := 4;
  937. RXEN1_Mask : constant Unsigned_8 := 16#10#;
  938. -- USART Data register Empty Interrupt Enable
  939. UDRIE1_Bit : constant Bit_Number := 5;
  940. UDRIE1_Mask : constant Unsigned_8 := 16#20#;
  941. -- TX Complete Interrupt Enable
  942. TXCIE1_Bit : constant Bit_Number := 6;
  943. TXCIE1_Mask : constant Unsigned_8 := 16#40#;
  944. -- RX Complete Interrupt Enable
  945. RXCIE1_Bit : constant Bit_Number := 7;
  946. RXCIE1_Mask : constant Unsigned_8 := 16#80#;
  947. -- USART Control and Status Register A
  948. UCSR1A_Addr : constant Address := 16#c8#;
  949. UCSR1A : Unsigned_8 ;
  950. for UCSR1A'Address use UCSR1A_Addr;
  951. pragma Volatile (UCSR1A);
  952. UCSR1A_Bits : Bits_In_Byte;
  953. for UCSR1A_Bits'Address use UCSR1A_Addr;
  954. pragma Volatile (UCSR1A_Bits);
  955. -- Multi-processor Communication Mode
  956. MPCM1_Bit : constant Bit_Number := 0;
  957. MPCM1_Mask : constant Unsigned_8 := 16#01#;
  958. -- Double the USART transmission speed
  959. U2X1_Bit : constant Bit_Number := 1;
  960. U2X1_Mask : constant Unsigned_8 := 16#02#;
  961. -- Parity Error
  962. UPE1_Bit : constant Bit_Number := 2;
  963. UPE1_Mask : constant Unsigned_8 := 16#04#;
  964. -- Data overRun
  965. DOR1_Bit : constant Bit_Number := 3;
  966. DOR1_Mask : constant Unsigned_8 := 16#08#;
  967. -- Framing Error
  968. FE1_Bit : constant Bit_Number := 4;
  969. FE1_Mask : constant Unsigned_8 := 16#10#;
  970. -- USART Data Register Empty
  971. UDRE1_Bit : constant Bit_Number := 5;
  972. UDRE1_Mask : constant Unsigned_8 := 16#20#;
  973. -- USART Transmitt Complete
  974. TXC1_Bit : constant Bit_Number := 6;
  975. TXC1_Mask : constant Unsigned_8 := 16#40#;
  976. -- USART Receive Complete
  977. RXC1_Bit : constant Bit_Number := 7;
  978. RXC1_Mask : constant Unsigned_8 := 16#80#;
  979. ASSR_Addr : constant Address := 16#b6#;
  980. ASSR : Unsigned_8 ;
  981. for ASSR'Address use ASSR_Addr;
  982. pragma Volatile (ASSR);
  983. ASSR_Bits : Bits_In_Byte;
  984. for ASSR_Bits'Address use ASSR_Addr;
  985. pragma Volatile (ASSR_Bits);
  986. OCR2B_Addr : constant Address := 16#b4#;
  987. OCR2B : Unsigned_8 ;
  988. for OCR2B'Address use OCR2B_Addr;
  989. pragma Volatile (OCR2B);
  990. OCR2B_Bits : Bits_In_Byte;
  991. for OCR2B_Bits'Address use OCR2B_Addr;
  992. pragma Volatile (OCR2B_Bits);
  993. OCR2A_Addr : constant Address := 16#b3#;
  994. OCR2A : Unsigned_8 ;
  995. for OCR2A'Address use OCR2A_Addr;
  996. pragma Volatile (OCR2A);
  997. OCR2A_Bits : Bits_In_Byte;
  998. for OCR2A_Bits'Address use OCR2A_Addr;
  999. pragma Volatile (OCR2A_Bits);
  1000. TCNT2_Addr : constant Address := 16#b2#;
  1001. TCNT2 : Unsigned_8 ;
  1002. for TCNT2'Address use TCNT2_Addr;
  1003. pragma Volatile (TCNT2);
  1004. TCNT2_Bits : Bits_In_Byte;
  1005. for TCNT2_Bits'Address use TCNT2_Addr;
  1006. pragma Volatile (TCNT2_Bits);
  1007. TCCR2B_Addr : constant Address := 16#b1#;
  1008. TCCR2B : Unsigned_8 ;
  1009. for TCCR2B'Address use TCCR2B_Addr;
  1010. pragma Volatile (TCCR2B);
  1011. TCCR2B_Bits : Bits_In_Byte;
  1012. for TCCR2B_Bits'Address use TCCR2B_Addr;
  1013. pragma Volatile (TCCR2B_Bits);
  1014. TCCR2A_Addr : constant Address := 16#b0#;
  1015. TCCR2A : Unsigned_8 ;
  1016. for TCCR2A'Address use TCCR2A_Addr;
  1017. pragma Volatile (TCCR2A);
  1018. TCCR2A_Bits : Bits_In_Byte;
  1019. for TCCR2A_Bits'Address use TCCR2A_Addr;
  1020. pragma Volatile (TCCR2A_Bits);
  1021. OCR3CH_Addr : constant Address := 16#9d#;
  1022. OCR3CH : Unsigned_8 ;
  1023. for OCR3CH'Address use OCR3CH_Addr;
  1024. pragma Volatile (OCR3CH);
  1025. OCR3CH_Bits : Bits_In_Byte;
  1026. for OCR3CH_Bits'Address use OCR3CH_Addr;
  1027. pragma Volatile (OCR3CH_Bits);
  1028. OCR3CL_Addr : constant Address := 16#9c#;
  1029. OCR3CL : Unsigned_8 ;
  1030. for OCR3CL'Address use OCR3CL_Addr;
  1031. pragma Volatile (OCR3CL);
  1032. OCR3CL_Bits : Bits_In_Byte;
  1033. for OCR3CL_Bits'Address use OCR3CL_Addr;
  1034. pragma Volatile (OCR3CL_Bits);
  1035. OCR3BH_Addr : constant Address := 16#9b#;
  1036. OCR3BH : Unsigned_8 ;
  1037. for OCR3BH'Address use OCR3BH_Addr;
  1038. pragma Volatile (OCR3BH);
  1039. OCR3BH_Bits : Bits_In_Byte;
  1040. for OCR3BH_Bits'Address use OCR3BH_Addr;
  1041. pragma Volatile (OCR3BH_Bits);
  1042. OCR3BL_Addr : constant Address := 16#9a#;
  1043. OCR3BL : Unsigned_8 ;
  1044. for OCR3BL'Address use OCR3BL_Addr;
  1045. pragma Volatile (OCR3BL);
  1046. OCR3BL_Bits : Bits_In_Byte;
  1047. for OCR3BL_Bits'Address use OCR3BL_Addr;
  1048. pragma Volatile (OCR3BL_Bits);
  1049. OCR3AH_Addr : constant Address := 16#99#;
  1050. OCR3AH : Unsigned_8 ;
  1051. for OCR3AH'Address use OCR3AH_Addr;
  1052. pragma Volatile (OCR3AH);
  1053. OCR3AH_Bits : Bits_In_Byte;
  1054. for OCR3AH_Bits'Address use OCR3AH_Addr;
  1055. pragma Volatile (OCR3AH_Bits);
  1056. OCR3AL_Addr : constant Address := 16#98#;
  1057. OCR3AL : Unsigned_8 ;
  1058. for OCR3AL'Address use OCR3AL_Addr;
  1059. pragma Volatile (OCR3AL);
  1060. OCR3AL_Bits : Bits_In_Byte;
  1061. for OCR3AL_Bits'Address use OCR3AL_Addr;
  1062. pragma Volatile (OCR3AL_Bits);
  1063. ICR3H_Addr : constant Address := 16#97#;
  1064. ICR3H : Unsigned_8 ;
  1065. for ICR3H'Address use ICR3H_Addr;
  1066. pragma Volatile (ICR3H);
  1067. ICR3H_Bits : Bits_In_Byte;
  1068. for ICR3H_Bits'Address use ICR3H_Addr;
  1069. pragma Volatile (ICR3H_Bits);
  1070. ICR3L_Addr : constant Address := 16#96#;
  1071. ICR3L : Unsigned_8 ;
  1072. for ICR3L'Address use ICR3L_Addr;
  1073. pragma Volatile (ICR3L);
  1074. ICR3L_Bits : Bits_In_Byte;
  1075. for ICR3L_Bits'Address use ICR3L_Addr;
  1076. pragma Volatile (ICR3L_Bits);
  1077. TCNT3H_Addr : constant Address := 16#95#;
  1078. TCNT3H : Unsigned_8 ;
  1079. for TCNT3H'Address use TCNT3H_Addr;
  1080. pragma Volatile (TCNT3H);
  1081. TCNT3H_Bits : Bits_In_Byte;
  1082. for TCNT3H_Bits'Address use TCNT3H_Addr;
  1083. pragma Volatile (TCNT3H_Bits);
  1084. TCNT3L_Addr : constant Address := 16#94#;
  1085. TCNT3L : Unsigned_8 ;
  1086. for TCNT3L'Address use TCNT3L_Addr;
  1087. pragma Volatile (TCNT3L);
  1088. TCNT3L_Bits : Bits_In_Byte;
  1089. for TCNT3L_Bits'Address use TCNT3L_Addr;
  1090. pragma Volatile (TCNT3L_Bits);
  1091. TCCR3C_Addr : constant Address := 16#92#;
  1092. TCCR3C : Unsigned_8 ;
  1093. for TCCR3C'Address use TCCR3C_Addr;
  1094. pragma Volatile (TCCR3C);
  1095. TCCR3C_Bits : Bits_In_Byte;
  1096. for TCCR3C_Bits'Address use TCCR3C_Addr;
  1097. pragma Volatile (TCCR3C_Bits);
  1098. TCCR3B_Addr : constant Address := 16#91#;
  1099. TCCR3B : Unsigned_8 ;
  1100. for TCCR3B'Address use TCCR3B_Addr;
  1101. pragma Volatile (TCCR3B);
  1102. TCCR3B_Bits : Bits_In_Byte;
  1103. for TCCR3B_Bits'Address use TCCR3B_Addr;
  1104. pragma Volatile (TCCR3B_Bits);
  1105. TCCR3A_Addr : constant Address := 16#90#;
  1106. TCCR3A : Unsigned_8 ;
  1107. for TCCR3A'Address use TCCR3A_Addr;
  1108. pragma Volatile (TCCR3A);
  1109. TCCR3A_Bits : Bits_In_Byte;
  1110. for TCCR3A_Bits'Address use TCCR3A_Addr;
  1111. pragma Volatile (TCCR3A_Bits);
  1112. -- Timer/Counter1 Output Compare Register C High Byte
  1113. OCR1CH_Addr : constant Address := 16#8d#;
  1114. OCR1CH : Unsigned_8 ;
  1115. for OCR1CH'Address use OCR1CH_Addr;
  1116. pragma Volatile (OCR1CH);
  1117. OCR1CH_Bits : Bits_In_Byte;
  1118. for OCR1CH_Bits'Address use OCR1CH_Addr;
  1119. pragma Volatile (OCR1CH_Bits);
  1120. -- Timer/Counter1 Output Compare Register High Byte bit 0
  1121. OCR1CH0_Bit : constant Bit_Number := 0;
  1122. OCR1CH0_Mask : constant Unsigned_8 := 16#01#;
  1123. -- Timer/Counter1 Output Compare Register High Byte bit 1
  1124. OCR1CH1_Bit : constant Bit_Number := 1;
  1125. OCR1CH1_Mask : constant Unsigned_8 := 16#02#;
  1126. -- Timer/Counter1 Output Compare Register High Byte bit 2
  1127. OCR1CH2_Bit : constant Bit_Number := 2;
  1128. OCR1CH2_Mask : constant Unsigned_8 := 16#04#;
  1129. -- Timer/Counter1 Output Compare Register High Byte bit 3
  1130. OCR1CH3_Bit : constant Bit_Number := 3;
  1131. OCR1CH3_Mask : constant Unsigned_8 := 16#08#;
  1132. -- Timer/Counter1 Output Compare Register High Byte bit 4
  1133. OCR1CH4_Bit : constant Bit_Number := 4;
  1134. OCR1CH4_Mask : constant Unsigned_8 := 16#10#;
  1135. -- Timer/Counter1 Output Compare Register High Byte bit 5
  1136. OCR1CH5_Bit : constant Bit_Number := 5;
  1137. OCR1CH5_Mask : constant Unsigned_8 := 16#20#;
  1138. -- Timer/Counter1 Output Compare Register High Byte bit 6
  1139. OCR1CH6_Bit : constant Bit_Number := 6;
  1140. OCR1CH6_Mask : constant Unsigned_8 := 16#40#;
  1141. -- Timer/Counter1 Output Compare Register High Byte bit 7
  1142. OCR1CH7_Bit : constant Bit_Number := 7;
  1143. OCR1CH7_Mask : constant Unsigned_8 := 16#80#;
  1144. -- Timer/Counter1 Output Compare Register C Low Byte
  1145. OCR1CL_Addr : constant Address := 16#8c#;
  1146. OCR1C : Unsigned_16;
  1147. for OCR1C'Address use OCR1CL_Addr;
  1148. pragma Volatile (OCR1C);
  1149. OCR1CL : Unsigned_8 ;
  1150. for OCR1CL'Address use OCR1CL_Addr;
  1151. pragma Volatile (OCR1CL);
  1152. OCR1CL_Bits : Bits_In_Byte;
  1153. for OCR1CL_Bits'Address use OCR1CL_Addr;
  1154. pragma Volatile (OCR1CL_Bits);
  1155. -- Timer/Counter1 Output Compare Register Low Byte bit 0
  1156. OCR1CL0_Bit : constant Bit_Number := 0;
  1157. OCR1CL0_Mask : constant Unsigned_8 := 16#01#;
  1158. -- Timer/Counter1 Output Compare Register Low Byte bit 1
  1159. OCR1CL1_Bit : constant Bit_Number := 1;
  1160. OCR1CL1_Mask : constant Unsigned_8 := 16#02#;
  1161. -- Timer/Counter1 Output Compare Register Low Byte bit 2
  1162. OCR1CL2_Bit : constant Bit_Number := 2;
  1163. OCR1CL2_Mask : constant Unsigned_8 := 16#04#;
  1164. -- Timer/Counter1 Output Compare Register Low Byte bit 3
  1165. OCR1CL3_Bit : constant Bit_Number := 3;
  1166. OCR1CL3_Mask : constant Unsigned_8 := 16#08#;
  1167. -- Timer/Counter1 Output Compare Register Low Byte bit 4
  1168. OCR1CL4_Bit : constant Bit_Number := 4;
  1169. OCR1CL4_Mask : constant Unsigned_8 := 16#10#;
  1170. -- Timer/Counter1 Output Compare Register Low Byte bit 5
  1171. OCR1CL5_Bit : constant Bit_Number := 5;
  1172. OCR1CL5_Mask : constant Unsigned_8 := 16#20#;
  1173. -- Timer/Counter1 Output Compare Register Low Byte bit 6
  1174. OCR1CL6_Bit : constant Bit_Number := 6;
  1175. OCR1CL6_Mask : constant Unsigned_8 := 16#40#;
  1176. -- Timer/Counter1 Output Compare Register Low Byte bit 7
  1177. OCR1CL7_Bit : constant Bit_Number := 7;
  1178. OCR1CL7_Mask : constant Unsigned_8 := 16#80#;
  1179. -- Timer/Counter1 Output Compare Register B High Byte
  1180. OCR1BH_Addr : constant Address := 16#8b#;
  1181. OCR1BH : Unsigned_8 ;
  1182. for OCR1BH'Address use OCR1BH_Addr;
  1183. pragma Volatile (OCR1BH);
  1184. OCR1BH_Bits : Bits_In_Byte;
  1185. for OCR1BH_Bits'Address use OCR1BH_Addr;
  1186. pragma Volatile (OCR1BH_Bits);
  1187. -- Timer/Counter1 Output Compare Register High Byte bit 0
  1188. OCR1BH0_Bit : constant Bit_Number := 0;
  1189. OCR1BH0_Mask : constant Unsigned_8 := 16#01#;
  1190. -- Timer/Counter1 Output Compare Register High Byte bit 1
  1191. OCR1BH1_Bit : constant Bit_Number := 1;
  1192. OCR1BH1_Mask : constant Unsigned_8 := 16#02#;
  1193. -- Timer/Counter1 Output Compare Register High Byte bit 2
  1194. OCR1BH2_Bit : constant Bit_Number := 2;
  1195. OCR1BH2_Mask : constant Unsigned_8 := 16#04#;
  1196. -- Timer/Counter1 Output Compare Register High Byte bit 3
  1197. OCR1BH3_Bit : constant Bit_Number := 3;
  1198. OCR1BH3_Mask : constant Unsigned_8 := 16#08#;
  1199. -- Timer/Counter1 Output Compare Register High Byte bit 4
  1200. OCR1BH4_Bit : constant Bit_Number := 4;
  1201. OCR1BH4_Mask : constant Unsigned_8 := 16#10#;
  1202. -- Timer/Counter1 Output Compare Register High Byte bit 5
  1203. OCR1BH5_Bit : constant Bit_Number := 5;
  1204. OCR1BH5_Mask : constant Unsigned_8 := 16#20#;
  1205. -- Timer/Counter1 Output Compare Register High Byte bit 6
  1206. OCR1BH6_Bit : constant Bit_Number := 6;
  1207. OCR1BH6_Mask : constant Unsigned_8 := 16#40#;
  1208. -- Timer/Counter1 Output Compare Register High Byte bit 7
  1209. OCR1BH7_Bit : constant Bit_Number := 7;
  1210. OCR1BH7_Mask : constant Unsigned_8 := 16#80#;
  1211. -- Timer/Counter1 Output Compare Register B Low Byte
  1212. OCR1BL_Addr : constant Address := 16#8a#;
  1213. OCR1B : Unsigned_16;
  1214. for OCR1B'Address use OCR1BL_Addr;
  1215. pragma Volatile (OCR1B);
  1216. OCR1BL : Unsigned_8 ;
  1217. for OCR1BL'Address use OCR1BL_Addr;
  1218. pragma Volatile (OCR1BL);
  1219. OCR1BL_Bits : Bits_In_Byte;
  1220. for OCR1BL_Bits'Address use OCR1BL_Addr;
  1221. pragma Volatile (OCR1BL_Bits);
  1222. -- Timer/Counter1 Output Compare Register Low Byte bit 0
  1223. OCR1BL0_Bit : constant Bit_Number := 0;
  1224. OCR1BL0_Mask : constant Unsigned_8 := 16#01#;
  1225. -- Timer/Counter1 Output Compare Register Low Byte bit 1
  1226. OCR1BL1_Bit : constant Bit_Number := 1;
  1227. OCR1BL1_Mask : constant Unsigned_8 := 16#02#;
  1228. -- Timer/Counter1 Output Compare Register Low Byte bit 2
  1229. OCR1BL2_Bit : constant Bit_Number := 2;
  1230. OCR1BL2_Mask : constant Unsigned_8 := 16#04#;
  1231. -- Timer/Counter1 Output Compare Register Low Byte bit 3
  1232. OCR1BL3_Bit : constant Bit_Number := 3;
  1233. OCR1BL3_Mask : constant Unsigned_8 := 16#08#;
  1234. -- Timer/Counter1 Output Compare Register Low Byte bit 4
  1235. OCR1BL4_Bit : constant Bit_Number := 4;
  1236. OCR1BL4_Mask : constant Unsigned_8 := 16#10#;
  1237. -- Timer/Counter1 Output Compare Register Low Byte bit 5
  1238. OCR1BL5_Bit : constant Bit_Number := 5;
  1239. OCR1BL5_Mask : constant Unsigned_8 := 16#20#;
  1240. -- Timer/Counter1 Output Compare Register Low Byte bit 6
  1241. OCR1BL6_Bit : constant Bit_Number := 6;
  1242. OCR1BL6_Mask : constant Unsigned_8 := 16#40#;
  1243. -- Timer/Counter1 Output Compare Register Low Byte bit 7
  1244. OCR1BL7_Bit : constant Bit_Number := 7;
  1245. OCR1BL7_Mask : constant Unsigned_8 := 16#80#;
  1246. -- Timer/Counter1 Outbut Compare Register A High Byte
  1247. OCR1AH_Addr : constant Address := 16#89#;
  1248. OCR1AH : Unsigned_8 ;
  1249. for OCR1AH'Address use OCR1AH_Addr;
  1250. pragma Volatile (OCR1AH);
  1251. OCR1AH_Bits : Bits_In_Byte;
  1252. for OCR1AH_Bits'Address use OCR1AH_Addr;
  1253. pragma Volatile (OCR1AH_Bits);
  1254. -- Timer/Counter1 Outbut Compare Register High Byte bit 0
  1255. OCR1AH0_Bit : constant Bit_Number := 0;
  1256. OCR1AH0_Mask : constant Unsigned_8 := 16#01#;
  1257. -- Timer/Counter1 Outbut Compare Register High Byte bit 1
  1258. OCR1AH1_Bit : constant Bit_Number := 1;
  1259. OCR1AH1_Mask : constant Unsigned_8 := 16#02#;
  1260. -- Timer/Counter1 Outbut Compare Register High Byte bit 2
  1261. OCR1AH2_Bit : constant Bit_Number := 2;
  1262. OCR1AH2_Mask : constant Unsigned_8 := 16#04#;
  1263. -- Timer/Counter1 Outbut Compare Register High Byte bit 3
  1264. OCR1AH3_Bit : constant Bit_Number := 3;
  1265. OCR1AH3_Mask : constant Unsigned_8 := 16#08#;
  1266. -- Timer/Counter1 Outbut Compare Register High Byte bit 4
  1267. OCR1AH4_Bit : constant Bit_Number := 4;
  1268. OCR1AH4_Mask : constant Unsigned_8 := 16#10#;
  1269. -- Timer/Counter1 Outbut Compare Register High Byte bit 5
  1270. OCR1AH5_Bit : constant Bit_Number := 5;
  1271. OCR1AH5_Mask : constant Unsigned_8 := 16#20#;
  1272. -- Timer/Counter1 Outbut Compare Register High Byte bit 6
  1273. OCR1AH6_Bit : constant Bit_Number := 6;
  1274. OCR1AH6_Mask : constant Unsigned_8 := 16#40#;
  1275. -- Timer/Counter1 Outbut Compare Register High Byte bit 7
  1276. OCR1AH7_Bit : constant Bit_Number := 7;
  1277. OCR1AH7_Mask : constant Unsigned_8 := 16#80#;
  1278. -- Timer/Counter1 Outbut Compare Register A Low Byte
  1279. OCR1AL_Addr : constant Address := 16#88#;
  1280. OCR1A : Unsigned_16;
  1281. for OCR1A'Address use OCR1AL_Addr;
  1282. pragma Volatile (OCR1A);
  1283. OCR1AL : Unsigned_8 ;
  1284. for OCR1AL'Address use OCR1AL_Addr;
  1285. pragma Volatile (OCR1AL);
  1286. OCR1AL_Bits : Bits_In_Byte;
  1287. for OCR1AL_Bits'Address use OCR1AL_Addr;
  1288. pragma Volatile (OCR1AL_Bits);
  1289. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 0
  1290. OCR1AL0_Bit : constant Bit_Number := 0;
  1291. OCR1AL0_Mask : constant Unsigned_8 := 16#01#;
  1292. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 1
  1293. OCR1AL1_Bit : constant Bit_Number := 1;
  1294. OCR1AL1_Mask : constant Unsigned_8 := 16#02#;
  1295. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 2
  1296. OCR1AL2_Bit : constant Bit_Number := 2;
  1297. OCR1AL2_Mask : constant Unsigned_8 := 16#04#;
  1298. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 3
  1299. OCR1AL3_Bit : constant Bit_Number := 3;
  1300. OCR1AL3_Mask : constant Unsigned_8 := 16#08#;
  1301. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 4
  1302. OCR1AL4_Bit : constant Bit_Number := 4;
  1303. OCR1AL4_Mask : constant Unsigned_8 := 16#10#;
  1304. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 5
  1305. OCR1AL5_Bit : constant Bit_Number := 5;
  1306. OCR1AL5_Mask : constant Unsigned_8 := 16#20#;
  1307. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 6
  1308. OCR1AL6_Bit : constant Bit_Number := 6;
  1309. OCR1AL6_Mask : constant Unsigned_8 := 16#40#;
  1310. -- Timer/Counter1 Outbut Compare Register Low Byte Bit 7
  1311. OCR1AL7_Bit : constant Bit_Number := 7;
  1312. OCR1AL7_Mask : constant Unsigned_8 := 16#80#;
  1313. -- Timer/Counter1 Input Capture Register High Byte
  1314. ICR1H_Addr : constant Address := 16#87#;
  1315. ICR1H : Unsigned_8 ;
  1316. for ICR1H'Address use ICR1H_Addr;
  1317. pragma Volatile (ICR1H);
  1318. ICR1H_Bits : Bits_In_Byte;
  1319. for ICR1H_Bits'Address use ICR1H_Addr;
  1320. pragma Volatile (ICR1H_Bits);
  1321. -- Timer/Counter1 Input Capture Register High Byte bit 0
  1322. ICR1H0_Bit : constant Bit_Number := 0;
  1323. ICR1H0_Mask : constant Unsigned_8 := 16#01#;
  1324. -- Timer/Counter1 Input Capture Register High Byte bit 1
  1325. ICR1H1_Bit : constant Bit_Number := 1;
  1326. ICR1H1_Mask : constant Unsigned_8 := 16#02#;
  1327. -- Timer/Counter1 Input Capture Register High Byte bit 2
  1328. ICR1H2_Bit : constant Bit_Number := 2;
  1329. ICR1H2_Mask : constant Unsigned_8 := 16#04#;
  1330. -- Timer/Counter1 Input Capture Register High Byte bit 3
  1331. ICR1H3_Bit : constant Bit_Number := 3;
  1332. ICR1H3_Mask : constant Unsigned_8 := 16#08#;
  1333. -- Timer/Counter1 Input Capture Register High Byte bit 4
  1334. ICR1H4_Bit : constant Bit_Number := 4;
  1335. ICR1H4_Mask : constant Unsigned_8 := 16#10#;
  1336. -- Timer/Counter1 Input Capture Register High Byte bit 5
  1337. ICR1H5_Bit : constant Bit_Number := 5;
  1338. ICR1H5_Mask : constant Unsigned_8 := 16#20#;
  1339. -- Timer/Counter1 Input Capture Register High Byte bit 6
  1340. ICR1H6_Bit : constant Bit_Number := 6;
  1341. ICR1H6_Mask : constant Unsigned_8 := 16#40#;
  1342. -- Timer/Counter1 Input Capture Register High Byte bit 7
  1343. ICR1H7_Bit : constant Bit_Number := 7;
  1344. ICR1H7_Mask : constant Unsigned_8 := 16#80#;
  1345. -- Timer/Counter1 Input Capture Register Low Byte
  1346. ICR1L_Addr : constant Address := 16#86#;
  1347. ICR1 : Unsigned_16;
  1348. for ICR1'Address use ICR1L_Addr;
  1349. pragma Volatile (ICR1);
  1350. ICR1L : Unsigned_8 ;
  1351. for ICR1L'Address use ICR1L_Addr;
  1352. pragma Volatile (ICR1L);
  1353. ICR1L_Bits : Bits_In_Byte;
  1354. for ICR1L_Bits'Address use ICR1L_Addr;
  1355. pragma Volatile (ICR1L_Bits);
  1356. -- Timer/Counter1 Input Capture Register Low Byte bit 0
  1357. ICR1L0_Bit : constant Bit_Number := 0;
  1358. ICR1L0_Mask : constant Unsigned_8 := 16#01#;
  1359. -- Timer/Counter1 Input Capture Register Low Byte bit 1
  1360. ICR1L1_Bit : constant Bit_Number := 1;
  1361. ICR1L1_Mask : constant Unsigned_8 := 16#02#;
  1362. -- Timer/Counter1 Input Capture Register Low Byte bit 2
  1363. ICR1L2_Bit : constant Bit_Number := 2;
  1364. ICR1L2_Mask : constant Unsigned_8 := 16#04#;
  1365. -- Timer/Counter1 Input Capture Register Low Byte bit 3
  1366. ICR1L3_Bit : constant Bit_Number := 3;
  1367. ICR1L3_Mask : constant Unsigned_8 := 16#08#;
  1368. -- Timer/Counter1 Input Capture Register Low Byte bit 4
  1369. ICR1L4_Bit : constant Bit_Number := 4;
  1370. ICR1L4_Mask : constant Unsigned_8 := 16#10#;
  1371. -- Timer/Counter1 Input Capture Register Low Byte bit 5
  1372. ICR1L5_Bit : constant Bit_Number := 5;
  1373. ICR1L5_Mask : constant Unsigned_8 := 16#20#;
  1374. -- Timer/Counter1 Input Capture Register Low Byte bit 6
  1375. ICR1L6_Bit : constant Bit_Number := 6;
  1376. ICR1L6_Mask : constant Unsigned_8 := 16#40#;
  1377. -- Timer/Counter1 Input Capture Register Low Byte bit 7
  1378. ICR1L7_Bit : constant Bit_Number := 7;
  1379. ICR1L7_Mask : constant Unsigned_8 := 16#80#;
  1380. -- Timer/Counter1 High Byte
  1381. TCNT1H_Addr : constant Address := 16#85#;
  1382. TCNT1H : Unsigned_8 ;
  1383. for TCNT1H'Address use TCNT1H_Addr;
  1384. pragma Volatile (TCNT1H);
  1385. TCNT1H_Bits : Bits_In_Byte;
  1386. for TCNT1H_Bits'Address use TCNT1H_Addr;
  1387. pragma Volatile (TCNT1H_Bits);
  1388. -- Timer/Counter1 High Byte bit 0
  1389. TCNT1H0_Bit : constant Bit_Number := 0;
  1390. TCNT1H0_Mask : constant Unsigned_8 := 16#01#;
  1391. -- Timer/Counter1 High Byte bit 1
  1392. TCNT1H1_Bit : constant Bit_Number := 1;
  1393. TCNT1H1_Mask : constant Unsigned_8 := 16#02#;
  1394. -- Timer/Counter1 High Byte bit 2
  1395. TCNT1H2_Bit : constant Bit_Number := 2;
  1396. TCNT1H2_Mask : constant Unsigned_8 := 16#04#;
  1397. -- Timer/Counter1 High Byte bit 3
  1398. TCNT1H3_Bit : constant Bit_Number := 3;
  1399. TCNT1H3_Mask : constant Unsigned_8 := 16#08#;
  1400. -- Timer/Counter1 High Byte bit 4
  1401. TCNT1H4_Bit : constant Bit_Number := 4;
  1402. TCNT1H4_Mask : constant Unsigned_8 := 16#10#;
  1403. -- Timer/Counter1 High Byte bit 5
  1404. TCNT1H5_Bit : constant Bit_Number := 5;
  1405. TCNT1H5_Mask : constant Unsigned_8 := 16#20#;
  1406. -- Timer/Counter1 High Byte bit 6
  1407. TCNT1H6_Bit : constant Bit_Number := 6;
  1408. TCNT1H6_Mask : constant Unsigned_8 := 16#40#;
  1409. -- Timer/Counter1 High Byte bit 7
  1410. TCNT1H7_Bit : constant Bit_Number := 7;
  1411. TCNT1H7_Mask : constant Unsigned_8 := 16#80#;
  1412. -- Timer/Counter1 Low Byte
  1413. TCNT1L_Addr : constant Address := 16#84#;
  1414. TCNT1 : Unsigned_16;
  1415. for TCNT1'Address use TCNT1L_Addr;
  1416. pragma Volatile (TCNT1);
  1417. TCNT1L : Unsigned_8 ;
  1418. for TCNT1L'Address use TCNT1L_Addr;
  1419. pragma Volatile (TCNT1L);
  1420. TCNT1L_Bits : Bits_In_Byte;
  1421. for TCNT1L_Bits'Address use TCNT1L_Addr;
  1422. pragma Volatile (TCNT1L_Bits);
  1423. -- Timer/Counter1 Low Byte bit 0
  1424. TCNT1L0_Bit : constant Bit_Number := 0;
  1425. TCNT1L0_Mask : constant Unsigned_8 := 16#01#;
  1426. -- Timer/Counter1 Low Byte bit 1
  1427. TCNT1L1_Bit : constant Bit_Number := 1;
  1428. TCNT1L1_Mask : constant Unsigned_8 := 16#02#;
  1429. -- Timer/Counter1 Low Byte bit 2
  1430. TCNT1L2_Bit : constant Bit_Number := 2;
  1431. TCNT1L2_Mask : constant Unsigned_8 := 16#04#;
  1432. -- Timer/Counter1 Low Byte bit 3
  1433. TCNT1L3_Bit : constant Bit_Number := 3;
  1434. TCNT1L3_Mask : constant Unsigned_8 := 16#08#;
  1435. -- Timer/Counter1 Low Byte bit 4
  1436. TCNT1L4_Bit : constant Bit_Number := 4;
  1437. TCNT1L4_Mask : constant Unsigned_8 := 16#10#;
  1438. -- Timer/Counter1 Low Byte bit 5
  1439. TCNT1L5_Bit : constant Bit_Number := 5;
  1440. TCNT1L5_Mask : constant Unsigned_8 := 16#20#;
  1441. -- Timer/Counter1 Low Byte bit 6
  1442. TCNT1L6_Bit : constant Bit_Number := 6;
  1443. TCNT1L6_Mask : constant Unsigned_8 := 16#40#;
  1444. -- Timer/Counter1 Low Byte bit 7
  1445. TCNT1L7_Bit : constant Bit_Number := 7;
  1446. TCNT1L7_Mask : constant Unsigned_8 := 16#80#;
  1447. -- Timer/Counter 1 Control Register C
  1448. TCCR1C_Addr : constant Address := 16#82#;
  1449. TCCR1C : Unsigned_8 ;
  1450. for TCCR1C'Address use TCCR1C_Addr;
  1451. pragma Volatile (TCCR1C);
  1452. TCCR1C_Bits : Bits_In_Byte;
  1453. for TCCR1C_Bits'Address use TCCR1C_Addr;
  1454. pragma Volatile (TCCR1C_Bits);
  1455. -- Force Output Compare 1C
  1456. FOC1C_Bit : constant Bit_Number := 5;
  1457. FOC1C_Mask : constant Unsigned_8 := 16#20#;
  1458. -- Force Output Compare 1B
  1459. FOC1B_Bit : constant Bit_Number := 6;
  1460. FOC1B_Mask : constant Unsigned_8 := 16#40#;
  1461. -- Force Output Compare 1A
  1462. FOC1A_Bit : constant Bit_Number := 7;
  1463. FOC1A_Mask : constant Unsigned_8 := 16#80#;
  1464. -- Timer/Counter1 Control Register B
  1465. TCCR1B_Addr : constant Address := 16#81#;
  1466. TCCR1B : Unsigned_8 ;
  1467. for TCCR1B'Address use TCCR1B_Addr;
  1468. pragma Volatile (TCCR1B);
  1469. TCCR1B_Bits : Bits_In_Byte;
  1470. for TCCR1B_Bits'Address use TCCR1B_Addr;
  1471. pragma Volatile (TCCR1B_Bits);
  1472. -- Prescaler source of Timer/Counter 1
  1473. CS10_Bit : constant Bit_Number := 0;
  1474. CS10_Mask : constant Unsigned_8 := 16#01#;
  1475. -- Prescaler source of Timer/Counter 1
  1476. CS11_Bit : constant Bit_Number := 1;
  1477. CS11_Mask : constant Unsigned_8 := 16#02#;
  1478. -- Prescaler source of Timer/Counter 1
  1479. CS12_Bit : constant Bit_Number := 2;
  1480. CS12_Mask : constant Unsigned_8 := 16#04#;
  1481. -- Waveform Generation Mode
  1482. WGM12_Bit : constant Bit_Number := 3;
  1483. WGM12_Mask : constant Unsigned_8 := 16#08#;
  1484. -- Waveform Generation Mode
  1485. WGM13_Bit : constant Bit_Number := 4;
  1486. WGM13_Mask : constant Unsigned_8 := 16#10#;
  1487. -- Input Capture 1 Edge Select
  1488. ICES1_Bit : constant Bit_Number := 6;
  1489. ICES1_Mask : constant Unsigned_8 := 16#40#;
  1490. -- Input Capture 1 Noise Canceler
  1491. ICNC1_Bit : constant Bit_Number := 7;
  1492. ICNC1_Mask : constant Unsigned_8 := 16#80#;
  1493. -- Timer/Counter1 Control Register A
  1494. TCCR1A_Addr : constant Address := 16#80#;
  1495. TCCR1A : Unsigned_8 ;
  1496. for TCCR1A'Address use TCCR1A_Addr;
  1497. pragma Volatile (TCCR1A);
  1498. TCCR1A_Bits : Bits_In_Byte;
  1499. for TCCR1A_Bits'Address use TCCR1A_Addr;
  1500. pragma Volatile (TCCR1A_Bits);
  1501. -- Waveform Generation Mode
  1502. WGM10_Bit : constant Bit_Number := 0;
  1503. WGM10_Mask : constant Unsigned_8 := 16#01#;
  1504. -- Waveform Generation Mode
  1505. WGM11_Bit : constant Bit_Number := 1;
  1506. WGM11_Mask : constant Unsigned_8 := 16#02#;
  1507. -- Compare Output Mode 1C, bit 0
  1508. COM1C0_Bit : constant Bit_Number := 2;
  1509. COM1C0_Mask : constant Unsigned_8 := 16#04#;
  1510. -- Compare Output Mode 1C, bit 1
  1511. COM1C1_Bit : constant Bit_Number := 3;
  1512. COM1C1_Mask : constant Unsigned_8 := 16#08#;
  1513. -- Compare Output Mode 1B, bit 0
  1514. COM1B0_Bit : constant Bit_Number := 4;
  1515. COM1B0_Mask : constant Unsigned_8 := 16#10#;
  1516. -- Compare Output Mode 1B, bit 1
  1517. COM1B1_Bit : constant Bit_Number := 5;
  1518. COM1B1_Mask : constant Unsigned_8 := 16#20#;
  1519. -- Compare Output Mode 1A, bit 0
  1520. COM1A0_Bit : constant Bit_Number := 6;
  1521. COM1A0_Mask : constant Unsigned_8 := 16#40#;
  1522. -- Compare Output Mode 1A, bit 1
  1523. COM1A1_Bit : constant Bit_Number := 7;
  1524. COM1A1_Mask : constant Unsigned_8 := 16#80#;
  1525. DIDR1_Addr : constant Address := 16#7f#;
  1526. DIDR1 : Unsigned_8 ;
  1527. for DIDR1'Address use DIDR1_Addr;
  1528. pragma Volatile (DIDR1);
  1529. DIDR1_Bits : Bits_In_Byte;
  1530. for DIDR1_Bits'Address use DIDR1_Addr;
  1531. pragma Volatile (DIDR1_Bits);
  1532. -- AIN0 Digital Input Disable
  1533. AIN0D_Bit : constant Bit_Number := 0;
  1534. AIN0D_Mask : constant Unsigned_8 := 16#01#;
  1535. -- AIN1 Digital Input Disable
  1536. AIN1D_Bit : constant Bit_Number := 1;
  1537. AIN1D_Mask : constant Unsigned_8 := 16#02#;
  1538. XMCRB_Addr : constant Address := 16#75#;
  1539. XMCRB : Unsigned_8 ;
  1540. for XMCRB'Address use XMCRB_Addr;
  1541. pragma Volatile (XMCRB);
  1542. XMCRB_Bits : Bits_In_Byte;
  1543. for XMCRB_Bits'Address use XMCRB_Addr;
  1544. pragma Volatile (XMCRB_Bits);
  1545. XMCRA_Addr : constant Address := 16#74#;
  1546. XMCRA : Unsigned_8 ;
  1547. for XMCRA'Address use XMCRA_Addr;
  1548. pragma Volatile (XMCRA);
  1549. XMCRA_Bits : Bits_In_Byte;
  1550. for XMCRA_Bits'Address use XMCRA_Addr;
  1551. pragma Volatile (XMCRA_Bits);
  1552. TIMSK5_Addr : constant Address := 16#73#;
  1553. TIMSK5 : Unsigned_8 ;
  1554. for TIMSK5'Address use TIMSK5_Addr;
  1555. pragma Volatile (TIMSK5);
  1556. TIMSK5_Bits : Bits_In_Byte;
  1557. for TIMSK5_Bits'Address use TIMSK5_Addr;
  1558. pragma Volatile (TIMSK5_Bits);
  1559. TIMSK4_Addr : constant Address := 16#72#;
  1560. TIMSK4 : Unsigned_8 ;
  1561. for TIMSK4'Address use TIMSK4_Addr;
  1562. pragma Volatile (TIMSK4);
  1563. TIMSK4_Bits : Bits_In_Byte;
  1564. for TIMSK4_Bits'Address use TIMSK4_Addr;
  1565. pragma Volatile (TIMSK4_Bits);
  1566. TIMSK3_Addr : constant Address := 16#71#;
  1567. TIMSK3 : Unsigned_8 ;
  1568. for TIMSK3'Address use TIMSK3_Addr;
  1569. pragma Volatile (TIMSK3);
  1570. TIMSK3_Bits : Bits_In_Byte;
  1571. for TIMSK3_Bits'Address use TIMSK3_Addr;
  1572. pragma Volatile (TIMSK3_Bits);
  1573. TIMSK2_Addr : constant Address := 16#70#;
  1574. TIMSK2 : Unsigned_8 ;
  1575. for TIMSK2'Address use TIMSK2_Addr;
  1576. pragma Volatile (TIMSK2);
  1577. TIMSK2_Bits : Bits_In_Byte;
  1578. for TIMSK2_Bits'Address use TIMSK2_Addr;
  1579. pragma Volatile (TIMSK2_Bits);
  1580. -- Timer/Counter1 Interrupt Mask Register
  1581. TIMSK1_Addr : constant Address := 16#6f#;
  1582. TIMSK1 : Unsigned_8 ;
  1583. for TIMSK1'Address use TIMSK1_Addr;
  1584. pragma Volatile (TIMSK1);
  1585. TIMSK1_Bits : Bits_In_Byte;
  1586. for TIMSK1_Bits'Address use TIMSK1_Addr;
  1587. pragma Volatile (TIMSK1_Bits);
  1588. -- Timer/Counter1 Overflow Interrupt Enable
  1589. TOIE1_Bit : constant Bit_Number := 0;
  1590. TOIE1_Mask : constant Unsigned_8 := 16#01#;
  1591. -- Timer/Counter1 Output Compare A Match Interrupt Enable
  1592. OCIE1A_Bit : constant Bit_Number := 1;
  1593. OCIE1A_Mask : constant Unsigned_8 := 16#02#;
  1594. -- Timer/Counter1 Output Compare B Match Interrupt Enable
  1595. OCIE1B_Bit : constant Bit_Number := 2;
  1596. OCIE1B_Mask : constant Unsigned_8 := 16#04#;
  1597. -- Timer/Counter1 Output Compare C Match Interrupt Enable
  1598. OCIE1C_Bit : constant Bit_Number := 3;
  1599. OCIE1C_Mask : constant Unsigned_8 := 16#08#;
  1600. -- Timer/Counter1 Input Capture Interrupt Enable
  1601. ICIE1_Bit : constant Bit_Number := 5;
  1602. ICIE1_Mask : constant Unsigned_8 := 16#20#;
  1603. -- Timer/Counter0 Interrupt Mask Register
  1604. TIMSK0_Addr : constant Address := 16#6e#;
  1605. TIMSK0 : Unsigned_8 ;
  1606. for TIMSK0'Address use TIMSK0_Addr;
  1607. pragma Volatile (TIMSK0);
  1608. TIMSK0_Bits : Bits_In_Byte;
  1609. for TIMSK0_Bits'Address use TIMSK0_Addr;
  1610. pragma Volatile (TIMSK0_Bits);
  1611. -- Timer/Counter0 Overflow Interrupt Enable
  1612. TOIE0_Bit : constant Bit_Number := 0;
  1613. TOIE0_Mask : constant Unsigned_8 := 16#01#;
  1614. -- Timer/Counter0 Output Compare Match A Interrupt Enable
  1615. OCIE0A_Bit : constant Bit_Number := 1;
  1616. OCIE0A_Mask : constant Unsigned_8 := 16#02#;
  1617. -- Timer/Counter0 Output Compare Match B Interrupt Enable
  1618. OCIE0B_Bit : constant Bit_Number := 2;
  1619. OCIE0B_Mask : constant Unsigned_8 := 16#04#;
  1620. -- Pin Change Mask Register 1
  1621. PCMSK1_Addr : constant Address := 16#6c#;
  1622. PCMSK1 : Unsigned_8 ;
  1623. for PCMSK1'Address use PCMSK1_Addr;
  1624. pragma Volatile (PCMSK1);
  1625. PCMSK1_Bits : Bits_In_Byte;
  1626. for PCMSK1_Bits'Address use PCMSK1_Addr;
  1627. pragma Volatile (PCMSK1_Bits);
  1628. PCINT8_Bit : constant Bit_Number := 0;
  1629. PCINT8_Mask : constant Unsigned_8 := 16#01#;
  1630. PCINT9_Bit : constant Bit_Number := 1;
  1631. PCINT9_Mask : constant Unsigned_8 := 16#02#;
  1632. PCINT10_Bit : constant Bit_Number := 2;
  1633. PCINT10_Mask : constant Unsigned_8 := 16#04#;
  1634. PCINT11_Bit : constant Bit_Number := 3;
  1635. PCINT11_Mask : constant Unsigned_8 := 16#08#;
  1636. PCINT12_Bit : constant Bit_Number := 4;
  1637. PCINT12_Mask : constant Unsigned_8 := 16#10#;
  1638. -- Pin Change Mask Register 0
  1639. PCMSK0_Addr : constant Address := 16#6b#;
  1640. PCMSK0 : Unsigned_8 ;
  1641. for PCMSK0'Address use PCMSK0_Addr;
  1642. pragma Volatile (PCMSK0);
  1643. PCMSK0_Bits : Bits_In_Byte;
  1644. for PCMSK0_Bits'Address use PCMSK0_Addr;
  1645. pragma Volatile (PCMSK0_Bits);
  1646. -- Pin Change Enable Mask 0
  1647. PCINT0_Bit : constant Bit_Number := 0;
  1648. PCINT0_Mask : constant Unsigned_8 := 16#01#;
  1649. -- Pin Change Enable Mask 1
  1650. PCINT1_Bit : constant Bit_Number := 1;
  1651. PCINT1_Mask : constant Unsigned_8 := 16#02#;
  1652. -- Pin Change Enable Mask 2
  1653. PCINT2_Bit : constant Bit_Number := 2;
  1654. PCINT2_Mask : constant Unsigned_8 := 16#04#;
  1655. -- Pin Change Enable Mask 3
  1656. PCINT3_Bit : constant Bit_Number := 3;
  1657. PCINT3_Mask : constant Unsigned_8 := 16#08#;
  1658. -- Pin Change Enable Mask 4
  1659. PCINT4_Bit : constant Bit_Number := 4;
  1660. PCINT4_Mask : constant Unsigned_8 := 16#10#;
  1661. -- Pin Change Enable Mask 5
  1662. PCINT5_Bit : constant Bit_Number := 5;
  1663. PCINT5_Mask : constant Unsigned_8 := 16#20#;
  1664. -- Pin Change Enable Mask 6
  1665. PCINT6_Bit : constant Bit_Number := 6;
  1666. PCINT6_Mask : constant Unsigned_8 := 16#40#;
  1667. -- Pin Change Enable Mask 7
  1668. PCINT7_Bit : constant Bit_Number := 7;
  1669. PCINT7_Mask : constant Unsigned_8 := 16#80#;
  1670. -- External Interrupt Control Register B
  1671. EICRB_Addr : constant Address := 16#6a#;
  1672. EICRB : Unsigned_8 ;
  1673. for EICRB'Address use EICRB_Addr;
  1674. pragma Volatile (EICRB);
  1675. EICRB_Bits : Bits_In_Byte;
  1676. for EICRB_Bits'Address use EICRB_Addr;
  1677. pragma Volatile (EICRB_Bits);
  1678. -- External Interrupt 7-4 Sense Control Bit
  1679. ISC40_Bit : constant Bit_Number := 0;
  1680. ISC40_Mask : constant Unsigned_8 := 16#01#;
  1681. -- External Interrupt 7-4 Sense Control Bit
  1682. ISC41_Bit : constant Bit_Number := 1;
  1683. ISC41_Mask : constant Unsigned_8 := 16#02#;
  1684. -- External Interrupt 7-4 Sense Control Bit
  1685. ISC50_Bit : constant Bit_Number := 2;
  1686. ISC50_Mask : constant Unsigned_8 := 16#04#;
  1687. -- External Interrupt 7-4 Sense Control Bit
  1688. ISC51_Bit : constant Bit_Number := 3;
  1689. ISC51_Mask : constant Unsigned_8 := 16#08#;
  1690. -- External Interrupt 7-4 Sense Control Bit
  1691. ISC60_Bit : constant Bit_Number := 4;
  1692. ISC60_Mask : constant Unsigned_8 := 16#10#;
  1693. -- External Interrupt 7-4 Sense Control Bit
  1694. ISC61_Bit : constant Bit_Number := 5;
  1695. ISC61_Mask : constant Unsigned_8 := 16#20#;
  1696. -- External Interrupt 7-4 Sense Control Bit
  1697. ISC70_Bit : constant Bit_Number := 6;
  1698. ISC70_Mask : constant Unsigned_8 := 16#40#;
  1699. -- External Interrupt 7-4 Sense Control Bit
  1700. ISC71_Bit : constant Bit_Number := 7;
  1701. ISC71_Mask : constant Unsigned_8 := 16#80#;
  1702. -- External Interrupt Control Register A
  1703. EICRA_Addr : constant Address := 16#69#;
  1704. EICRA : Unsigned_8 ;
  1705. for EICRA'Address use EICRA_Addr;
  1706. pragma Volatile (EICRA);
  1707. EICRA_Bits : Bits_In_Byte;
  1708. for EICRA_Bits'Address use EICRA_Addr;
  1709. pragma Volatile (EICRA_Bits);
  1710. -- External Interrupt Sense Control Bit
  1711. ISC00_Bit : constant Bit_Number := 0;
  1712. ISC00_Mask : constant Unsigned_8 := 16#01#;
  1713. -- External Interrupt Sense Control Bit
  1714. ISC01_Bit : constant Bit_Number := 1;
  1715. ISC01_Mask : constant Unsigned_8 := 16#02#;
  1716. -- External Interrupt Sense Control Bit
  1717. ISC10_Bit : constant Bit_Number := 2;
  1718. ISC10_Mask : constant Unsigned_8 := 16#04#;
  1719. -- External Interrupt Sense Control Bit
  1720. ISC11_Bit : constant Bit_Number := 3;
  1721. ISC11_Mask : constant Unsigned_8 := 16#08#;
  1722. -- External Interrupt Sense Control Bit
  1723. ISC20_Bit : constant Bit_Number := 4;
  1724. ISC20_Mask : constant Unsigned_8 := 16#10#;
  1725. -- External Interrupt Sense Control Bit
  1726. ISC21_Bit : constant Bit_Number := 5;
  1727. ISC21_Mask : constant Unsigned_8 := 16#20#;
  1728. -- External Interrupt Sense Control Bit
  1729. ISC30_Bit : constant Bit_Number := 6;
  1730. ISC30_Mask : constant Unsigned_8 := 16#40#;
  1731. -- External Interrupt Sense Control Bit
  1732. ISC31_Bit : constant Bit_Number := 7;
  1733. ISC31_Mask : constant Unsigned_8 := 16#80#;
  1734. -- Pin Change Interrupt Control Register
  1735. PCICR_Addr : constant Address := 16#68#;
  1736. PCICR : Unsigned_8 ;
  1737. for PCICR'Address use PCICR_Addr;
  1738. pragma Volatile (PCICR);
  1739. PCICR_Bits : Bits_In_Byte;
  1740. for PCICR_Bits'Address use PCICR_Addr;
  1741. pragma Volatile (PCICR_Bits);
  1742. -- Pin Change Interrupt Enable 0
  1743. PCIE0_Bit : constant Bit_Number := 0;
  1744. PCIE0_Mask : constant Unsigned_8 := 16#01#;
  1745. -- Pin Change Interrupt Enable 1
  1746. PCIE1_Bit : constant Bit_Number := 1;
  1747. PCIE1_Mask : constant Unsigned_8 := 16#02#;
  1748. -- Oscillator Calibration Value
  1749. OSCCAL_Addr : constant Address := 16#66#;
  1750. OSCCAL : Unsigned_8 ;
  1751. for OSCCAL'Address use OSCCAL_Addr;
  1752. pragma Volatile (OSCCAL);
  1753. OSCCAL_Bits : Bits_In_Byte;
  1754. for OSCCAL_Bits'Address use OSCCAL_Addr;
  1755. pragma Volatile (OSCCAL_Bits);
  1756. -- Oscillator Calibration Value Bit0
  1757. CAL0_Bit : constant Bit_Number := 0;
  1758. CAL0_Mask : constant Unsigned_8 := 16#01#;
  1759. -- Oscillator Calibration Value Bit1
  1760. CAL1_Bit : constant Bit_Number := 1;
  1761. CAL1_Mask : constant Unsigned_8 := 16#02#;
  1762. -- Oscillator Calibration Value Bit2
  1763. CAL2_Bit : constant Bit_Number := 2;
  1764. CAL2_Mask : constant Unsigned_8 := 16#04#;
  1765. -- Oscillator Calibration Value Bit3
  1766. CAL3_Bit : constant Bit_Number := 3;
  1767. CAL3_Mask : constant Unsigned_8 := 16#08#;
  1768. -- Oscillator Calibration Value Bit4
  1769. CAL4_Bit : constant Bit_Number := 4;
  1770. CAL4_Mask : constant Unsigned_8 := 16#10#;
  1771. -- Oscillator Calibration Value Bit5
  1772. CAL5_Bit : constant Bit_Number := 5;
  1773. CAL5_Mask : constant Unsigned_8 := 16#20#;
  1774. -- Oscillator Calibration Value Bit6
  1775. CAL6_Bit : constant Bit_Number := 6;
  1776. CAL6_Mask : constant Unsigned_8 := 16#40#;
  1777. -- Oscillator Calibration Value Bit7
  1778. CAL7_Bit : constant Bit_Number := 7;
  1779. CAL7_Mask : constant Unsigned_8 := 16#80#;
  1780. -- Power Reduction Register1
  1781. PRR1_Addr : constant Address := 16#65#;
  1782. PRR1 : Unsigned_8 ;
  1783. for PRR1'Address use PRR1_Addr;
  1784. pragma Volatile (PRR1);
  1785. PRR1_Bits : Bits_In_Byte;
  1786. for PRR1_Bits'Address use PRR1_Addr;
  1787. pragma Volatile (PRR1_Bits);
  1788. -- Power Reduction USART1
  1789. PRUSART1_Bit : constant Bit_Number := 0;
  1790. PRUSART1_Mask : constant Unsigned_8 := 16#01#;
  1791. -- Power Reduction USB
  1792. PRUSB_Bit : constant Bit_Number := 7;
  1793. PRUSB_Mask : constant Unsigned_8 := 16#80#;
  1794. -- Power Reduction Register0
  1795. PRR0_Addr : constant Address := 16#64#;
  1796. PRR0 : Unsigned_8 ;
  1797. for PRR0'Address use PRR0_Addr;
  1798. pragma Volatile (PRR0);
  1799. PRR0_Bits : Bits_In_Byte;
  1800. for PRR0_Bits'Address use PRR0_Addr;
  1801. pragma Volatile (PRR0_Bits);
  1802. -- Power Reduction Serial Peripheral Interface
  1803. PRSPI_Bit : constant Bit_Number := 2;
  1804. PRSPI_Mask : constant Unsigned_8 := 16#04#;
  1805. -- Power Reduction Timer/Counter1
  1806. PRTIM1_Bit : constant Bit_Number := 3;
  1807. PRTIM1_Mask : constant Unsigned_8 := 16#08#;
  1808. -- Power Reduction Timer/Counter0
  1809. PRTIM0_Bit : constant Bit_Number := 5;
  1810. PRTIM0_Mask : constant Unsigned_8 := 16#20#;
  1811. CLKPR_Addr : constant Address := 16#61#;
  1812. CLKPR : Unsigned_8 ;
  1813. for CLKPR'Address use CLKPR_Addr;
  1814. pragma Volatile (CLKPR);
  1815. CLKPR_Bits : Bits_In_Byte;
  1816. for CLKPR_Bits'Address use CLKPR_Addr;
  1817. pragma Volatile (CLKPR_Bits);
  1818. CLKPS0_Bit : constant Bit_Number := 0;
  1819. CLKPS0_Mask : constant Unsigned_8 := 16#01#;
  1820. CLKPS1_Bit : constant Bit_Number := 1;
  1821. CLKPS1_Mask : constant Unsigned_8 := 16#02#;
  1822. CLKPS2_Bit : constant Bit_Number := 2;
  1823. CLKPS2_Mask : constant Unsigned_8 := 16#04#;
  1824. CLKPS3_Bit : constant Bit_Number := 3;
  1825. CLKPS3_Mask : constant Unsigned_8 := 16#08#;
  1826. CLKPCE_Bit : constant Bit_Number := 7;
  1827. CLKPCE_Mask : constant Unsigned_8 := 16#80#;
  1828. -- Watchdog Timer Control Register
  1829. WDTCSR_Addr : constant Address := 16#60#;
  1830. WDTCSR : Unsigned_8 ;
  1831. for WDTCSR'Address use WDTCSR_Addr;
  1832. pragma Volatile (WDTCSR);
  1833. WDTCSR_Bits : Bits_In_Byte;
  1834. for WDTCSR_Bits'Address use WDTCSR_Addr;
  1835. pragma Volatile (WDTCSR_Bits);
  1836. -- Watch Dog Timer Prescaler bit 0
  1837. WDP0_Bit : constant Bit_Number := 0;
  1838. WDP0_Mask : constant Unsigned_8 := 16#01#;
  1839. -- Watch Dog Timer Prescaler bit 1
  1840. WDP1_Bit : constant Bit_Number := 1;
  1841. WDP1_Mask : constant Unsigned_8 := 16#02#;
  1842. -- Watch Dog Timer Prescaler bit 2
  1843. WDP2_Bit : constant Bit_Number := 2;
  1844. WDP2_Mask : constant Unsigned_8 := 16#04#;
  1845. -- Watch Dog Enable
  1846. WDE_Bit : constant Bit_Number := 3;
  1847. WDE_Mask : constant Unsigned_8 := 16#08#;
  1848. -- Watchdog Change Enable
  1849. WDCE_Bit : constant Bit_Number := 4;
  1850. WDCE_Mask : constant Unsigned_8 := 16#10#;
  1851. -- Watchdog Timer Prescaler Bit 3
  1852. WDP3_Bit : constant Bit_Number := 5;
  1853. WDP3_Mask : constant Unsigned_8 := 16#20#;
  1854. -- Watchdog Timeout Interrupt Enable
  1855. WDIE_Bit : constant Bit_Number := 6;
  1856. WDIE_Mask : constant Unsigned_8 := 16#40#;
  1857. -- Watchdog Timeout Interrupt Flag
  1858. WDIF_Bit : constant Bit_Number := 7;
  1859. WDIF_Mask : constant Unsigned_8 := 16#80#;
  1860. -- Watchdog Timer Clock Divider
  1861. WDTCKD_Addr : constant Address := 16#62#;
  1862. WDTCKD : Unsigned_8 ;
  1863. for WDTCKD'Address use WDTCKD_Addr;
  1864. pragma Volatile (WDTCKD);
  1865. WDTCKD_Bits : Bits_In_Byte;
  1866. for WDTCKD_Bits'Address use WDTCKD_Addr;
  1867. pragma Volatile (WDTCKD_Bits);
  1868. -- Watchdog Timer Clock Divider 0
  1869. WCLKD0_Bit : constant Bit_Number := 0;
  1870. WCLKD0_Mask : constant Unsigned_8 := 16#01#;
  1871. -- Watchdog Timer Clock Divider 1
  1872. WCLKD1_Bit : constant Bit_Number := 1;
  1873. WCLKD1_Mask : constant Unsigned_8 := 16#02#;
  1874. -- Watchdog Early Warning Interrupt Enable
  1875. WDEWIE_Bit : constant Bit_Number := 2;
  1876. WDEWIE_Mask : constant Unsigned_8 := 16#04#;
  1877. -- Watchdog Early Warning Interrupt Flag
  1878. WDEWIF_Bit : constant Bit_Number := 3;
  1879. WDEWIF_Mask : constant Unsigned_8 := 16#08#;
  1880. -- Status Register
  1881. SREG_Addr : constant Address := 16#5f#;
  1882. SREG : Unsigned_8 ;
  1883. for SREG'Address use SREG_Addr;
  1884. pragma Volatile (SREG);
  1885. SREG_Bits : Bits_In_Byte;
  1886. for SREG_Bits'Address use SREG_Addr;
  1887. pragma Volatile (SREG_Bits);
  1888. -- Carry Flag
  1889. C_Bit : constant Bit_Number := 0;
  1890. C_Mask : constant Unsigned_8 := 16#01#;
  1891. -- Zero Flag
  1892. Z_Bit : constant Bit_Number := 1;
  1893. Z_Mask : constant Unsigned_8 := 16#02#;
  1894. -- Negative Flag
  1895. N_Bit : constant Bit_Number := 2;
  1896. N_Mask : constant Unsigned_8 := 16#04#;
  1897. -- Two's Complement Overflow Flag
  1898. V_Bit : constant Bit_Number := 3;
  1899. V_Mask : constant Unsigned_8 := 16#08#;
  1900. -- Sign Bit
  1901. S_Bit : constant Bit_Number := 4;
  1902. S_Mask : constant Unsigned_8 := 16#10#;
  1903. -- Half Carry Flag
  1904. H_Bit : constant Bit_Number := 5;
  1905. H_Mask : constant Unsigned_8 := 16#20#;
  1906. -- Bit Copy Storage
  1907. T_Bit : constant Bit_Number := 6;
  1908. T_Mask : constant Unsigned_8 := 16#40#;
  1909. -- Global Interrupt Enable
  1910. I_Bit : constant Bit_Number := 7;
  1911. I_Mask : constant Unsigned_8 := 16#80#;
  1912. -- Stack Pointer High
  1913. SPH_Addr : constant Address := 16#5e#;
  1914. SPH : Unsigned_8 ;
  1915. for SPH'Address use SPH_Addr;
  1916. pragma Volatile (SPH);
  1917. SPH_Bits : Bits_In_Byte;
  1918. for SPH_Bits'Address use SPH_Addr;
  1919. pragma Volatile (SPH_Bits);
  1920. -- Stack pointer bit 8
  1921. SP8_Bit : constant Bit_Number := 0;
  1922. SP8_Mask : constant Unsigned_8 := 16#01#;
  1923. -- Stack pointer bit 9
  1924. SP9_Bit : constant Bit_Number := 1;
  1925. SP9_Mask : constant Unsigned_8 := 16#02#;
  1926. -- Stack pointer bit 10
  1927. SP10_Bit : constant Bit_Number := 2;
  1928. SP10_Mask : constant Unsigned_8 := 16#04#;
  1929. -- Stack pointer bit 11
  1930. SP11_Bit : constant Bit_Number := 3;
  1931. SP11_Mask : constant Unsigned_8 := 16#08#;
  1932. -- Stack pointer bit 12
  1933. SP12_Bit : constant Bit_Number := 4;
  1934. SP12_Mask : constant Unsigned_8 := 16#10#;
  1935. -- Stack pointer bit 13
  1936. SP13_Bit : constant Bit_Number := 5;
  1937. SP13_Mask : constant Unsigned_8 := 16#20#;
  1938. -- Stack pointer bit 14
  1939. SP14_Bit : constant Bit_Number := 6;
  1940. SP14_Mask : constant Unsigned_8 := 16#40#;
  1941. -- Stack pointer bit 15
  1942. SP15_Bit : constant Bit_Number := 7;
  1943. SP15_Mask : constant Unsigned_8 := 16#80#;
  1944. -- Stack Pointer Low
  1945. SPL_Addr : constant Address := 16#5d#;
  1946. SP : Unsigned_16;
  1947. for SP'Address use SPL_Addr;
  1948. pragma Volatile (SP);
  1949. SPL : Unsigned_8 ;
  1950. for SPL'Address use SPL_Addr;
  1951. pragma Volatile (SPL);
  1952. SPL_Bits : Bits_In_Byte;
  1953. for SPL_Bits'Address use SPL_Addr;
  1954. pragma Volatile (SPL_Bits);
  1955. -- Stack pointer bit 0
  1956. SP0_Bit : constant Bit_Number := 0;
  1957. SP0_Mask : constant Unsigned_8 := 16#01#;
  1958. -- Stack pointer bit 1
  1959. SP1_Bit : constant Bit_Number := 1;
  1960. SP1_Mask : constant Unsigned_8 := 16#02#;
  1961. -- Stack pointer bit 2
  1962. SP2_Bit : constant Bit_Number := 2;
  1963. SP2_Mask : constant Unsigned_8 := 16#04#;
  1964. -- Stack pointer bit 3
  1965. SP3_Bit : constant Bit_Number := 3;
  1966. SP3_Mask : constant Unsigned_8 := 16#08#;
  1967. -- Stack pointer bit 4
  1968. SP4_Bit : constant Bit_Number := 4;
  1969. SP4_Mask : constant Unsigned_8 := 16#10#;
  1970. -- Stack pointer bit 5
  1971. SP5_Bit : constant Bit_Number := 5;
  1972. SP5_Mask : constant Unsigned_8 := 16#20#;
  1973. -- Stack pointer bit 6
  1974. SP6_Bit : constant Bit_Number := 6;
  1975. SP6_Mask : constant Unsigned_8 := 16#40#;
  1976. -- Stack pointer bit 7
  1977. SP7_Bit : constant Bit_Number := 7;
  1978. SP7_Mask : constant Unsigned_8 := 16#80#;
  1979. -- Extended Indirect Register
  1980. EIND_Addr : constant Address := 16#5c#;
  1981. EIND : Unsigned_8 ;
  1982. for EIND'Address use EIND_Addr;
  1983. pragma Volatile (EIND);
  1984. EIND_Bits : Bits_In_Byte;
  1985. for EIND_Bits'Address use EIND_Addr;
  1986. pragma Volatile (EIND_Bits);
  1987. -- Bit 0
  1988. EIND0_Bit : constant Bit_Number := 0;
  1989. EIND0_Mask : constant Unsigned_8 := 16#01#;
  1990. RAMPZ_Addr : constant Address := 16#5b#;
  1991. RAMPZ : Unsigned_8 ;
  1992. for RAMPZ'Address use RAMPZ_Addr;
  1993. pragma Volatile (RAMPZ);
  1994. RAMPZ_Bits : Bits_In_Byte;
  1995. for RAMPZ_Bits'Address use RAMPZ_Addr;
  1996. pragma Volatile (RAMPZ_Bits);
  1997. -- Store Program Memory Control Register
  1998. SPMCSR_Addr : constant Address := 16#57#;
  1999. SPMCSR : Unsigned_8 ;
  2000. for SPMCSR'Address use SPMCSR_Addr;
  2001. pragma Volatile (SPMCSR);
  2002. SPMCSR_Bits : Bits_In_Byte;
  2003. for SPMCSR_Bits'Address use SPMCSR_Addr;
  2004. pragma Volatile (SPMCSR_Bits);
  2005. -- Store Program Memory Enable
  2006. SPMEN_Bit : constant Bit_Number := 0;
  2007. SPMEN_Mask : constant Unsigned_8 := 16#01#;
  2008. -- Page Erase
  2009. PGERS_Bit : constant Bit_Number := 1;
  2010. PGERS_Mask : constant Unsigned_8 := 16#02#;
  2011. -- Page Write
  2012. PGWRT_Bit : constant Bit_Number := 2;
  2013. PGWRT_Mask : constant Unsigned_8 := 16#04#;
  2014. -- Boot Lock Bit Set
  2015. BLBSET_Bit : constant Bit_Number := 3;
  2016. BLBSET_Mask : constant Unsigned_8 := 16#08#;
  2017. -- Read While Write section read enable
  2018. RWWSRE_Bit : constant Bit_Number := 4;
  2019. RWWSRE_Mask : constant Unsigned_8 := 16#10#;
  2020. -- Signature Row Read
  2021. SIGRD_Bit : constant Bit_Number := 5;
  2022. SIGRD_Mask : constant Unsigned_8 := 16#20#;
  2023. -- Read While Write Section Busy
  2024. RWWSB_Bit : constant Bit_Number := 6;
  2025. RWWSB_Mask : constant Unsigned_8 := 16#40#;
  2026. -- SPM Interrupt Enable
  2027. SPMIE_Bit : constant Bit_Number := 7;
  2028. SPMIE_Mask : constant Unsigned_8 := 16#80#;
  2029. -- debugWire communication register
  2030. DWDR_Addr : constant Address := 16#51#;
  2031. DWDR : Unsigned_8 ;
  2032. for DWDR'Address use DWDR_Addr;
  2033. pragma Volatile (DWDR);
  2034. DWDR_Bits : Bits_In_Byte;
  2035. for DWDR_Bits'Address use DWDR_Addr;
  2036. pragma Volatile (DWDR_Bits);
  2037. DWDR0_Bit : constant Bit_Number := 0;
  2038. DWDR0_Mask : constant Unsigned_8 := 16#01#;
  2039. DWDR1_Bit : constant Bit_Number := 1;
  2040. DWDR1_Mask : constant Unsigned_8 := 16#02#;
  2041. DWDR2_Bit : constant Bit_Number := 2;
  2042. DWDR2_Mask : constant Unsigned_8 := 16#04#;
  2043. DWDR3_Bit : constant Bit_Number := 3;
  2044. DWDR3_Mask : constant Unsigned_8 := 16#08#;
  2045. DWDR4_Bit : constant Bit_Number := 4;
  2046. DWDR4_Mask : constant Unsigned_8 := 16#10#;
  2047. DWDR5_Bit : constant Bit_Number := 5;
  2048. DWDR5_Mask : constant Unsigned_8 := 16#20#;
  2049. DWDR6_Bit : constant Bit_Number := 6;
  2050. DWDR6_Mask : constant Unsigned_8 := 16#40#;
  2051. DWDR7_Bit : constant Bit_Number := 7;
  2052. DWDR7_Mask : constant Unsigned_8 := 16#80#;
  2053. -- MCU Control Register
  2054. MCUCR_Addr : constant Address := 16#55#;
  2055. MCUCR : Unsigned_8 ;
  2056. for MCUCR'Address use MCUCR_Addr;
  2057. pragma Volatile (MCUCR);
  2058. MCUCR_Bits : Bits_In_Byte;
  2059. for MCUCR_Bits'Address use MCUCR_Addr;
  2060. pragma Volatile (MCUCR_Bits);
  2061. -- Interrupt Vector Change Enable
  2062. IVCE_Bit : constant Bit_Number := 0;
  2063. IVCE_Mask : constant Unsigned_8 := 16#01#;
  2064. -- Interrupt Vector Select
  2065. IVSEL_Bit : constant Bit_Number := 1;
  2066. IVSEL_Mask : constant Unsigned_8 := 16#02#;
  2067. -- Pull-up disable
  2068. PUD_Bit : constant Bit_Number := 4;
  2069. PUD_Mask : constant Unsigned_8 := 16#10#;
  2070. -- MCU Status Register
  2071. MCUSR_Addr : constant Address := 16#54#;
  2072. MCUSR : Unsigned_8 ;
  2073. for MCUSR'Address use MCUSR_Addr;
  2074. pragma Volatile (MCUSR);
  2075. MCUSR_Bits : Bits_In_Byte;
  2076. for MCUSR_Bits'Address use MCUSR_Addr;
  2077. pragma Volatile (MCUSR_Bits);
  2078. -- Power-on reset flag
  2079. PORF_Bit : constant Bit_Number := 0;
  2080. PORF_Mask : constant Unsigned_8 := 16#01#;
  2081. -- External Reset Flag
  2082. EXTRF_Bit : constant Bit_Number := 1;
  2083. EXTRF_Mask : constant Unsigned_8 := 16#02#;
  2084. -- Brown-out Reset Flag
  2085. BORF_Bit : constant Bit_Number := 2;
  2086. BORF_Mask : constant Unsigned_8 := 16#04#;
  2087. -- Watchdog Reset Flag
  2088. WDRF_Bit : constant Bit_Number := 3;
  2089. WDRF_Mask : constant Unsigned_8 := 16#08#;
  2090. -- USB reset flag
  2091. USBRF_Bit : constant Bit_Number := 5;
  2092. USBRF_Mask : constant Unsigned_8 := 16#20#;
  2093. -- Sleep Mode Control Register
  2094. SMCR_Addr : constant Address := 16#53#;
  2095. SMCR : Unsigned_8 ;
  2096. for SMCR'Address use SMCR_Addr;
  2097. pragma Volatile (SMCR);
  2098. SMCR_Bits : Bits_In_Byte;
  2099. for SMCR_Bits'Address use SMCR_Addr;
  2100. pragma Volatile (SMCR_Bits);
  2101. -- Sleep Enable
  2102. SE_Bit : constant Bit_Number := 0;
  2103. SE_Mask : constant Unsigned_8 := 16#01#;
  2104. -- Sleep Mode Select bit 0
  2105. SM0_Bit : constant Bit_Number := 1;
  2106. SM0_Mask : constant Unsigned_8 := 16#02#;
  2107. -- Sleep Mode Select bit 1
  2108. SM1_Bit : constant Bit_Number := 2;
  2109. SM1_Mask : constant Unsigned_8 := 16#04#;
  2110. -- Sleep Mode Select bit 2
  2111. SM2_Bit : constant Bit_Number := 3;
  2112. SM2_Mask : constant Unsigned_8 := 16#08#;
  2113. OCDR_Addr : constant Address := 16#51#;
  2114. OCDR : Unsigned_8 ;
  2115. for OCDR'Address use OCDR_Addr;
  2116. pragma Volatile (OCDR);
  2117. OCDR_Bits : Bits_In_Byte;
  2118. for OCDR_Bits'Address use OCDR_Addr;
  2119. pragma Volatile (OCDR_Bits);
  2120. -- Analog Comparator Control And Status Register
  2121. ACSR_Addr : constant Address := 16#50#;
  2122. ACSR : Unsigned_8 ;
  2123. for ACSR'Address use ACSR_Addr;
  2124. pragma Volatile (ACSR);
  2125. ACSR_Bits : Bits_In_Byte;
  2126. for ACSR_Bits'Address use ACSR_Addr;
  2127. pragma Volatile (ACSR_Bits);
  2128. -- Analog Comparator Interrupt Mode Select bit 0
  2129. ACIS0_Bit : constant Bit_Number := 0;
  2130. ACIS0_Mask : constant Unsigned_8 := 16#01#;
  2131. -- Analog Comparator Interrupt Mode Select bit 1
  2132. ACIS1_Bit : constant Bit_Number := 1;
  2133. ACIS1_Mask : constant Unsigned_8 := 16#02#;
  2134. -- Analog Comparator Input Capture Enable
  2135. ACIC_Bit : constant Bit_Number := 2;
  2136. ACIC_Mask : constant Unsigned_8 := 16#04#;
  2137. -- Analog Comparator Interrupt Enable
  2138. ACIE_Bit : constant Bit_Number := 3;
  2139. ACIE_Mask : constant Unsigned_8 := 16#08#;
  2140. -- Analog Comparator Interrupt Flag
  2141. ACI_Bit : constant Bit_Number := 4;
  2142. ACI_Mask : constant Unsigned_8 := 16#10#;
  2143. -- Analog Compare Output
  2144. ACO_Bit : constant Bit_Number := 5;
  2145. ACO_Mask : constant Unsigned_8 := 16#20#;
  2146. -- Analog Comparator Bandgap Select
  2147. ACBG_Bit : constant Bit_Number := 6;
  2148. ACBG_Mask : constant Unsigned_8 := 16#40#;
  2149. -- Analog Comparator Disable
  2150. ACD_Bit : constant Bit_Number := 7;
  2151. ACD_Mask : constant Unsigned_8 := 16#80#;
  2152. -- SPI Data Register
  2153. SPDR_Addr : constant Address := 16#4e#;
  2154. SPDR : Unsigned_8 ;
  2155. for SPDR'Address use SPDR_Addr;
  2156. pragma Volatile (SPDR);
  2157. SPDR_Bits : Bits_In_Byte;
  2158. for SPDR_Bits'Address use SPDR_Addr;
  2159. pragma Volatile (SPDR_Bits);
  2160. -- SPI Data Register bit 0
  2161. SPDR0_Bit : constant Bit_Number := 0;
  2162. SPDR0_Mask : constant Unsigned_8 := 16#01#;
  2163. -- SPI Data Register bit 1
  2164. SPDR1_Bit : constant Bit_Number := 1;
  2165. SPDR1_Mask : constant Unsigned_8 := 16#02#;
  2166. -- SPI Data Register bit 2
  2167. SPDR2_Bit : constant Bit_Number := 2;
  2168. SPDR2_Mask : constant Unsigned_8 := 16#04#;
  2169. -- SPI Data Register bit 3
  2170. SPDR3_Bit : constant Bit_Number := 3;
  2171. SPDR3_Mask : constant Unsigned_8 := 16#08#;
  2172. -- SPI Data Register bit 4
  2173. SPDR4_Bit : constant Bit_Number := 4;
  2174. SPDR4_Mask : constant Unsigned_8 := 16#10#;
  2175. -- SPI Data Register bit 5
  2176. SPDR5_Bit : constant Bit_Number := 5;
  2177. SPDR5_Mask : constant Unsigned_8 := 16#20#;
  2178. -- SPI Data Register bit 6
  2179. SPDR6_Bit : constant Bit_Number := 6;
  2180. SPDR6_Mask : constant Unsigned_8 := 16#40#;
  2181. -- SPI Data Register bit 7
  2182. SPDR7_Bit : constant Bit_Number := 7;
  2183. SPDR7_Mask : constant Unsigned_8 := 16#80#;
  2184. -- SPI Status Register
  2185. SPSR_Addr : constant Address := 16#4d#;
  2186. SPSR : Unsigned_8 ;
  2187. for SPSR'Address use SPSR_Addr;
  2188. pragma Volatile (SPSR);
  2189. SPSR_Bits : Bits_In_Byte;
  2190. for SPSR_Bits'Address use SPSR_Addr;
  2191. pragma Volatile (SPSR_Bits);
  2192. -- Double SPI Speed Bit
  2193. SPI2X_Bit : constant Bit_Number := 0;
  2194. SPI2X_Mask : constant Unsigned_8 := 16#01#;
  2195. -- Write Collision Flag
  2196. WCOL_Bit : constant Bit_Number := 6;
  2197. WCOL_Mask : constant Unsigned_8 := 16#40#;
  2198. -- SPI Interrupt Flag
  2199. SPIF_Bit : constant Bit_Number := 7;
  2200. SPIF_Mask : constant Unsigned_8 := 16#80#;
  2201. -- SPI Control Register
  2202. SPCR_Addr : constant Address := 16#4c#;
  2203. SPCR : Unsigned_8 ;
  2204. for SPCR'Address use SPCR_Addr;
  2205. pragma Volatile (SPCR);
  2206. SPCR_Bits : Bits_In_Byte;
  2207. for SPCR_Bits'Address use SPCR_Addr;
  2208. pragma Volatile (SPCR_Bits);
  2209. -- SPI Clock Rate Select 0
  2210. SPR0_Bit : constant Bit_Number := 0;
  2211. SPR0_Mask : constant Unsigned_8 := 16#01#;
  2212. -- SPI Clock Rate Select 1
  2213. SPR1_Bit : constant Bit_Number := 1;
  2214. SPR1_Mask : constant Unsigned_8 := 16#02#;
  2215. -- Clock Phase
  2216. CPHA_Bit : constant Bit_Number := 2;
  2217. CPHA_Mask : constant Unsigned_8 := 16#04#;
  2218. -- Clock polarity
  2219. CPOL_Bit : constant Bit_Number := 3;
  2220. CPOL_Mask : constant Unsigned_8 := 16#08#;
  2221. -- Master/Slave Select
  2222. MSTR_Bit : constant Bit_Number := 4;
  2223. MSTR_Mask : constant Unsigned_8 := 16#10#;
  2224. -- Data Order
  2225. DORD_Bit : constant Bit_Number := 5;
  2226. DORD_Mask : constant Unsigned_8 := 16#20#;
  2227. -- SPI Enable
  2228. SPE_Bit : constant Bit_Number := 6;
  2229. SPE_Mask : constant Unsigned_8 := 16#40#;
  2230. -- SPI Interrupt Enable
  2231. SPIE_Bit : constant Bit_Number := 7;
  2232. SPIE_Mask : constant Unsigned_8 := 16#80#;
  2233. -- General Purpose IO Register 2
  2234. GPIOR2_Addr : constant Address := 16#4b#;
  2235. GPIOR2 : Unsigned_8 ;
  2236. for GPIOR2'Address use GPIOR2_Addr;
  2237. pragma Volatile (GPIOR2);
  2238. GPIOR2_Bits : Bits_In_Byte;
  2239. for GPIOR2_Bits'Address use GPIOR2_Addr;
  2240. pragma Volatile (GPIOR2_Bits);
  2241. -- General Purpose IO Register 2 bit 0
  2242. GPIOR20_Bit : constant Bit_Number := 0;
  2243. GPIOR20_Mask : constant Unsigned_8 := 16#01#;
  2244. -- General Purpose IO Register 2 bit 1
  2245. GPIOR21_Bit : constant Bit_Number := 1;
  2246. GPIOR21_Mask : constant Unsigned_8 := 16#02#;
  2247. -- General Purpose IO Register 2 bit 2
  2248. GPIOR22_Bit : constant Bit_Number := 2;
  2249. GPIOR22_Mask : constant Unsigned_8 := 16#04#;
  2250. -- General Purpose IO Register 2 bit 3
  2251. GPIOR23_Bit : constant Bit_Number := 3;
  2252. GPIOR23_Mask : constant Unsigned_8 := 16#08#;
  2253. -- General Purpose IO Register 2 bit 4
  2254. GPIOR24_Bit : constant Bit_Number := 4;
  2255. GPIOR24_Mask : constant Unsigned_8 := 16#10#;
  2256. -- General Purpose IO Register 2 bit 5
  2257. GPIOR25_Bit : constant Bit_Number := 5;
  2258. GPIOR25_Mask : constant Unsigned_8 := 16#20#;
  2259. -- General Purpose IO Register 2 bit 6
  2260. GPIOR26_Bit : constant Bit_Number := 6;
  2261. GPIOR26_Mask : constant Unsigned_8 := 16#40#;
  2262. -- General Purpose IO Register 2 bit 7
  2263. GPIOR27_Bit : constant Bit_Number := 7;
  2264. GPIOR27_Mask : constant Unsigned_8 := 16#80#;
  2265. -- General Purpose IO Register 1
  2266. GPIOR1_Addr : constant Address := 16#4a#;
  2267. GPIOR1 : Unsigned_8 ;
  2268. for GPIOR1'Address use GPIOR1_Addr;
  2269. pragma Volatile (GPIOR1);
  2270. GPIOR1_Bits : Bits_In_Byte;
  2271. for GPIOR1_Bits'Address use GPIOR1_Addr;
  2272. pragma Volatile (GPIOR1_Bits);
  2273. -- General Purpose IO Register 1 bit 0
  2274. GPIOR10_Bit : constant Bit_Number := 0;
  2275. GPIOR10_Mask : constant Unsigned_8 := 16#01#;
  2276. -- General Purpose IO Register 1 bit 1
  2277. GPIOR11_Bit : constant Bit_Number := 1;
  2278. GPIOR11_Mask : constant Unsigned_8 := 16#02#;
  2279. -- General Purpose IO Register 1 bit 2
  2280. GPIOR12_Bit : constant Bit_Number := 2;
  2281. GPIOR12_Mask : constant Unsigned_8 := 16#04#;
  2282. -- General Purpose IO Register 1 bit 3
  2283. GPIOR13_Bit : constant Bit_Number := 3;
  2284. GPIOR13_Mask : constant Unsigned_8 := 16#08#;
  2285. -- General Purpose IO Register 1 bit 4
  2286. GPIOR14_Bit : constant Bit_Number := 4;
  2287. GPIOR14_Mask : constant Unsigned_8 := 16#10#;
  2288. -- General Purpose IO Register 1 bit 5
  2289. GPIOR15_Bit : constant Bit_Number := 5;
  2290. GPIOR15_Mask : constant Unsigned_8 := 16#20#;
  2291. -- General Purpose IO Register 1 bit 6
  2292. GPIOR16_Bit : constant Bit_Number := 6;
  2293. GPIOR16_Mask : constant Unsigned_8 := 16#40#;
  2294. -- General Purpose IO Register 1 bit 7
  2295. GPIOR17_Bit : constant Bit_Number := 7;
  2296. GPIOR17_Mask : constant Unsigned_8 := 16#80#;
  2297. -- Timer/Counter0 Output Compare Register
  2298. OCR0B_Addr : constant Address := 16#48#;
  2299. OCR0B : Unsigned_8 ;
  2300. for OCR0B'Address use OCR0B_Addr;
  2301. pragma Volatile (OCR0B);
  2302. OCR0B_Bits : Bits_In_Byte;
  2303. for OCR0B_Bits'Address use OCR0B_Addr;
  2304. pragma Volatile (OCR0B_Bits);
  2305. OCR0B_0_Bit : constant Bit_Number := 0;
  2306. OCR0B_0_Mask : constant Unsigned_8 := 16#01#;
  2307. OCR0B_1_Bit : constant Bit_Number := 1;
  2308. OCR0B_1_Mask : constant Unsigned_8 := 16#02#;
  2309. OCR0B_2_Bit : constant Bit_Number := 2;
  2310. OCR0B_2_Mask : constant Unsigned_8 := 16#04#;
  2311. OCR0B_3_Bit : constant Bit_Number := 3;
  2312. OCR0B_3_Mask : constant Unsigned_8 := 16#08#;
  2313. OCR0B_4_Bit : constant Bit_Number := 4;
  2314. OCR0B_4_Mask : constant Unsigned_8 := 16#10#;
  2315. OCR0B_5_Bit : constant Bit_Number := 5;
  2316. OCR0B_5_Mask : constant Unsigned_8 := 16#20#;
  2317. OCR0B_6_Bit : constant Bit_Number := 6;
  2318. OCR0B_6_Mask : constant Unsigned_8 := 16#40#;
  2319. OCR0B_7_Bit : constant Bit_Number := 7;
  2320. OCR0B_7_Mask : constant Unsigned_8 := 16#80#;
  2321. -- Timer/Counter0 Output Compare Register
  2322. OCR0A_Addr : constant Address := 16#47#;
  2323. OCR0A : Unsigned_8 ;
  2324. for OCR0A'Address use OCR0A_Addr;
  2325. pragma Volatile (OCR0A);
  2326. OCR0A_Bits : Bits_In_Byte;
  2327. for OCR0A_Bits'Address use OCR0A_Addr;
  2328. pragma Volatile (OCR0A_Bits);
  2329. OCROA_0_Bit : constant Bit_Number := 0;
  2330. OCROA_0_Mask : constant Unsigned_8 := 16#01#;
  2331. OCROA_1_Bit : constant Bit_Number := 1;
  2332. OCROA_1_Mask : constant Unsigned_8 := 16#02#;
  2333. OCROA_2_Bit : constant Bit_Number := 2;
  2334. OCROA_2_Mask : constant Unsigned_8 := 16#04#;
  2335. OCROA_3_Bit : constant Bit_Number := 3;
  2336. OCROA_3_Mask : constant Unsigned_8 := 16#08#;
  2337. OCROA_4_Bit : constant Bit_Number := 4;
  2338. OCROA_4_Mask : constant Unsigned_8 := 16#10#;
  2339. OCROA_5_Bit : constant Bit_Number := 5;
  2340. OCROA_5_Mask : constant Unsigned_8 := 16#20#;
  2341. OCROA_6_Bit : constant Bit_Number := 6;
  2342. OCROA_6_Mask : constant Unsigned_8 := 16#40#;
  2343. OCROA_7_Bit : constant Bit_Number := 7;
  2344. OCROA_7_Mask : constant Unsigned_8 := 16#80#;
  2345. -- Timer/Counter0
  2346. TCNT0_Addr : constant Address := 16#46#;
  2347. TCNT0 : Unsigned_8 ;
  2348. for TCNT0'Address use TCNT0_Addr;
  2349. pragma Volatile (TCNT0);
  2350. TCNT0_Bits : Bits_In_Byte;
  2351. for TCNT0_Bits'Address use TCNT0_Addr;
  2352. pragma Volatile (TCNT0_Bits);
  2353. TCNT0_0_Bit : constant Bit_Number := 0;
  2354. TCNT0_0_Mask : constant Unsigned_8 := 16#01#;
  2355. TCNT0_1_Bit : constant Bit_Number := 1;
  2356. TCNT0_1_Mask : constant Unsigned_8 := 16#02#;
  2357. TCNT0_2_Bit : constant Bit_Number := 2;
  2358. TCNT0_2_Mask : constant Unsigned_8 := 16#04#;
  2359. TCNT0_3_Bit : constant Bit_Number := 3;
  2360. TCNT0_3_Mask : constant Unsigned_8 := 16#08#;
  2361. TCNT0_4_Bit : constant Bit_Number := 4;
  2362. TCNT0_4_Mask : constant Unsigned_8 := 16#10#;
  2363. TCNT0_5_Bit : constant Bit_Number := 5;
  2364. TCNT0_5_Mask : constant Unsigned_8 := 16#20#;
  2365. TCNT0_6_Bit : constant Bit_Number := 6;
  2366. TCNT0_6_Mask : constant Unsigned_8 := 16#40#;
  2367. TCNT0_7_Bit : constant Bit_Number := 7;
  2368. TCNT0_7_Mask : constant Unsigned_8 := 16#80#;
  2369. -- Timer/Counter Control Register B
  2370. TCCR0B_Addr : constant Address := 16#45#;
  2371. TCCR0B : Unsigned_8 ;
  2372. for TCCR0B'Address use TCCR0B_Addr;
  2373. pragma Volatile (TCCR0B);
  2374. TCCR0B_Bits : Bits_In_Byte;
  2375. for TCCR0B_Bits'Address use TCCR0B_Addr;
  2376. pragma Volatile (TCCR0B_Bits);
  2377. -- Clock Select
  2378. CS00_Bit : constant Bit_Number := 0;
  2379. CS00_Mask : constant Unsigned_8 := 16#01#;
  2380. -- Clock Select
  2381. CS01_Bit : constant Bit_Number := 1;
  2382. CS01_Mask : constant Unsigned_8 := 16#02#;
  2383. -- Clock Select
  2384. CS02_Bit : constant Bit_Number := 2;
  2385. CS02_Mask : constant Unsigned_8 := 16#04#;
  2386. WGM02_Bit : constant Bit_Number := 3;
  2387. WGM02_Mask : constant Unsigned_8 := 16#08#;
  2388. -- Force Output Compare B
  2389. FOC0B_Bit : constant Bit_Number := 6;
  2390. FOC0B_Mask : constant Unsigned_8 := 16#40#;
  2391. -- Force Output Compare A
  2392. FOC0A_Bit : constant Bit_Number := 7;
  2393. FOC0A_Mask : constant Unsigned_8 := 16#80#;
  2394. -- Timer/Counter Control Register A
  2395. TCCR0A_Addr : constant Address := 16#44#;
  2396. TCCR0A : Unsigned_8 ;
  2397. for TCCR0A'Address use TCCR0A_Addr;
  2398. pragma Volatile (TCCR0A);
  2399. TCCR0A_Bits : Bits_In_Byte;
  2400. for TCCR0A_Bits'Address use TCCR0A_Addr;
  2401. pragma Volatile (TCCR0A_Bits);
  2402. -- Waveform Generation Mode
  2403. WGM00_Bit : constant Bit_Number := 0;
  2404. WGM00_Mask : constant Unsigned_8 := 16#01#;
  2405. -- Waveform Generation Mode
  2406. WGM01_Bit : constant Bit_Number := 1;
  2407. WGM01_Mask : constant Unsigned_8 := 16#02#;
  2408. -- Compare Output Mode, Fast PWm
  2409. COM0B0_Bit : constant Bit_Number := 4;
  2410. COM0B0_Mask : constant Unsigned_8 := 16#10#;
  2411. -- Compare Output Mode, Fast PWm
  2412. COM0B1_Bit : constant Bit_Number := 5;
  2413. COM0B1_Mask : constant Unsigned_8 := 16#20#;
  2414. -- Compare Output Mode, Phase Correct PWM Mode
  2415. COM0A0_Bit : constant Bit_Number := 6;
  2416. COM0A0_Mask : constant Unsigned_8 := 16#40#;
  2417. -- Compare Output Mode, Phase Correct PWM Mode
  2418. COM0A1_Bit : constant Bit_Number := 7;
  2419. COM0A1_Mask : constant Unsigned_8 := 16#80#;
  2420. -- General Timer/Counter Control Register
  2421. GTCCR_Addr : constant Address := 16#43#;
  2422. GTCCR : Unsigned_8 ;
  2423. for GTCCR'Address use GTCCR_Addr;
  2424. pragma Volatile (GTCCR);
  2425. GTCCR_Bits : Bits_In_Byte;
  2426. for GTCCR_Bits'Address use GTCCR_Addr;
  2427. pragma Volatile (GTCCR_Bits);
  2428. -- Prescaler Reset Timer/Counter1 and Timer/Counter0
  2429. PSRSYNC_Bit : constant Bit_Number := 0;
  2430. PSRSYNC_Mask : constant Unsigned_8 := 16#01#;
  2431. -- Timer/Counter Synchronization Mode
  2432. TSM_Bit : constant Bit_Number := 7;
  2433. TSM_Mask : constant Unsigned_8 := 16#80#;
  2434. -- EEPROM Address Register Low Byte
  2435. EEARH_Addr : constant Address := 16#42#;
  2436. EEARH : Unsigned_8 ;
  2437. for EEARH'Address use EEARH_Addr;
  2438. pragma Volatile (EEARH);
  2439. EEARH_Bits : Bits_In_Byte;
  2440. for EEARH_Bits'Address use EEARH_Addr;
  2441. pragma Volatile (EEARH_Bits);
  2442. -- EEPROM Read/Write Access Bit 8
  2443. EEAR8_Bit : constant Bit_Number := 0;
  2444. EEAR8_Mask : constant Unsigned_8 := 16#01#;
  2445. -- EEPROM Read/Write Access Bit 9
  2446. EEAR9_Bit : constant Bit_Number := 1;
  2447. EEAR9_Mask : constant Unsigned_8 := 16#02#;
  2448. -- EEPROM Read/Write Access Bit 10
  2449. EEAR10_Bit : constant Bit_Number := 2;
  2450. EEAR10_Mask : constant Unsigned_8 := 16#04#;
  2451. -- EEPROM Read/Write Access Bit 11
  2452. EEAR11_Bit : constant Bit_Number := 3;
  2453. EEAR11_Mask : constant Unsigned_8 := 16#08#;
  2454. -- EEPROM Address Register Low Byte
  2455. EEARL_Addr : constant Address := 16#41#;
  2456. EEAR : Unsigned_16;
  2457. for EEAR'Address use EEARL_Addr;
  2458. pragma Volatile (EEAR);
  2459. EEARL : Unsigned_8 ;
  2460. for EEARL'Address use EEARL_Addr;
  2461. pragma Volatile (EEARL);
  2462. EEARL_Bits : Bits_In_Byte;
  2463. for EEARL_Bits'Address use EEARL_Addr;
  2464. pragma Volatile (EEARL_Bits);
  2465. -- EEPROM Read/Write Access Bit 0
  2466. EEAR0_Bit : constant Bit_Number := 0;
  2467. EEAR0_Mask : constant Unsigned_8 := 16#01#;
  2468. -- EEPROM Read/Write Access Bit 1
  2469. EEAR1_Bit : constant Bit_Number := 1;
  2470. EEAR1_Mask : constant Unsigned_8 := 16#02#;
  2471. -- EEPROM Read/Write Access Bit 2
  2472. EEAR2_Bit : constant Bit_Number := 2;
  2473. EEAR2_Mask : constant Unsigned_8 := 16#04#;
  2474. -- EEPROM Read/Write Access Bit 3
  2475. EEAR3_Bit : constant Bit_Number := 3;
  2476. EEAR3_Mask : constant Unsigned_8 := 16#08#;
  2477. -- EEPROM Read/Write Access Bit 4
  2478. EEAR4_Bit : constant Bit_Number := 4;
  2479. EEAR4_Mask : constant Unsigned_8 := 16#10#;
  2480. -- EEPROM Read/Write Access Bit 5
  2481. EEAR5_Bit : constant Bit_Number := 5;
  2482. EEAR5_Mask : constant Unsigned_8 := 16#20#;
  2483. -- EEPROM Read/Write Access Bit 6
  2484. EEAR6_Bit : constant Bit_Number := 6;
  2485. EEAR6_Mask : constant Unsigned_8 := 16#40#;
  2486. -- EEPROM Read/Write Access Bit 7
  2487. EEAR7_Bit : constant Bit_Number := 7;
  2488. EEAR7_Mask : constant Unsigned_8 := 16#80#;
  2489. -- EEPROM Data Register
  2490. EEDR_Addr : constant Address := 16#40#;
  2491. EEDR : Unsigned_8 ;
  2492. for EEDR'Address use EEDR_Addr;
  2493. pragma Volatile (EEDR);
  2494. EEDR_Bits : Bits_In_Byte;
  2495. for EEDR_Bits'Address use EEDR_Addr;
  2496. pragma Volatile (EEDR_Bits);
  2497. -- EEPROM Data Register bit 0
  2498. EEDR0_Bit : constant Bit_Number := 0;
  2499. EEDR0_Mask : constant Unsigned_8 := 16#01#;
  2500. -- EEPROM Data Register bit 1
  2501. EEDR1_Bit : constant Bit_Number := 1;
  2502. EEDR1_Mask : constant Unsigned_8 := 16#02#;
  2503. -- EEPROM Data Register bit 2
  2504. EEDR2_Bit : constant Bit_Number := 2;
  2505. EEDR2_Mask : constant Unsigned_8 := 16#04#;
  2506. -- EEPROM Data Register bit 3
  2507. EEDR3_Bit : constant Bit_Number := 3;
  2508. EEDR3_Mask : constant Unsigned_8 := 16#08#;
  2509. -- EEPROM Data Register bit 4
  2510. EEDR4_Bit : constant Bit_Number := 4;
  2511. EEDR4_Mask : constant Unsigned_8 := 16#10#;
  2512. -- EEPROM Data Register bit 5
  2513. EEDR5_Bit : constant Bit_Number := 5;
  2514. EEDR5_Mask : constant Unsigned_8 := 16#20#;
  2515. -- EEPROM Data Register bit 6
  2516. EEDR6_Bit : constant Bit_Number := 6;
  2517. EEDR6_Mask : constant Unsigned_8 := 16#40#;
  2518. -- EEPROM Data Register bit 7
  2519. EEDR7_Bit : constant Bit_Number := 7;
  2520. EEDR7_Mask : constant Unsigned_8 := 16#80#;
  2521. -- EEPROM Control Register
  2522. EECR_Addr : constant Address := 16#3f#;
  2523. EECR : Unsigned_8 ;
  2524. for EECR'Address use EECR_Addr;
  2525. pragma Volatile (EECR);
  2526. EECR_Bits : Bits_In_Byte;
  2527. for EECR_Bits'Address use EECR_Addr;
  2528. pragma Volatile (EECR_Bits);
  2529. -- EEPROM Read Enable
  2530. EERE_Bit : constant Bit_Number := 0;
  2531. EERE_Mask : constant Unsigned_8 := 16#01#;
  2532. -- EEPROM Write Enable
  2533. EEPE_Bit : constant Bit_Number := 1;
  2534. EEPE_Mask : constant Unsigned_8 := 16#02#;
  2535. -- EEPROM Master Write Enable
  2536. EEMPE_Bit : constant Bit_Number := 2;
  2537. EEMPE_Mask : constant Unsigned_8 := 16#04#;
  2538. -- EEPROM Ready Interrupt Enable
  2539. EERIE_Bit : constant Bit_Number := 3;
  2540. EERIE_Mask : constant Unsigned_8 := 16#08#;
  2541. -- EEPROM Programming Mode Bit 0
  2542. EEPM0_Bit : constant Bit_Number := 4;
  2543. EEPM0_Mask : constant Unsigned_8 := 16#10#;
  2544. -- EEPROM Programming Mode Bit 1
  2545. EEPM1_Bit : constant Bit_Number := 5;
  2546. EEPM1_Mask : constant Unsigned_8 := 16#20#;
  2547. -- General Purpose IO Register 0
  2548. GPIOR0_Addr : constant Address := 16#3e#;
  2549. GPIOR0 : Unsigned_8 ;
  2550. for GPIOR0'Address use GPIOR0_Addr;
  2551. pragma Volatile (GPIOR0);
  2552. GPIOR0_Bits : Bits_In_Byte;
  2553. for GPIOR0_Bits'Address use GPIOR0_Addr;
  2554. pragma Volatile (GPIOR0_Bits);
  2555. -- General Purpose IO Register 0 bit 0
  2556. GPIOR00_Bit : constant Bit_Number := 0;
  2557. GPIOR00_Mask : constant Unsigned_8 := 16#01#;
  2558. -- General Purpose IO Register 0 bit 1
  2559. GPIOR01_Bit : constant Bit_Number := 1;
  2560. GPIOR01_Mask : constant Unsigned_8 := 16#02#;
  2561. -- General Purpose IO Register 0 bit 2
  2562. GPIOR02_Bit : constant Bit_Number := 2;
  2563. GPIOR02_Mask : constant Unsigned_8 := 16#04#;
  2564. -- General Purpose IO Register 0 bit 3
  2565. GPIOR03_Bit : constant Bit_Number := 3;
  2566. GPIOR03_Mask : constant Unsigned_8 := 16#08#;
  2567. -- General Purpose IO Register 0 bit 4
  2568. GPIOR04_Bit : constant Bit_Number := 4;
  2569. GPIOR04_Mask : constant Unsigned_8 := 16#10#;
  2570. -- General Purpose IO Register 0 bit 5
  2571. GPIOR05_Bit : constant Bit_Number := 5;
  2572. GPIOR05_Mask : constant Unsigned_8 := 16#20#;
  2573. -- General Purpose IO Register 0 bit 6
  2574. GPIOR06_Bit : constant Bit_Number := 6;
  2575. GPIOR06_Mask : constant Unsigned_8 := 16#40#;
  2576. -- General Purpose IO Register 0 bit 7
  2577. GPIOR07_Bit : constant Bit_Number := 7;
  2578. GPIOR07_Mask : constant Unsigned_8 := 16#80#;
  2579. -- External Interrupt Mask Register
  2580. EIMSK_Addr : constant Address := 16#3d#;
  2581. EIMSK : Unsigned_8 ;
  2582. for EIMSK'Address use EIMSK_Addr;
  2583. pragma Volatile (EIMSK);
  2584. EIMSK_Bits : Bits_In_Byte;
  2585. for EIMSK_Bits'Address use EIMSK_Addr;
  2586. pragma Volatile (EIMSK_Bits);
  2587. -- External Interrupt Request 0 Enable
  2588. INT0_Bit : constant Bit_Number := 0;
  2589. INT0_Mask : constant Unsigned_8 := 16#01#;
  2590. -- External Interrupt Request 1 Enable
  2591. INT1_Bit : constant Bit_Number := 1;
  2592. INT1_Mask : constant Unsigned_8 := 16#02#;
  2593. -- External Interrupt Request 2 Enable
  2594. INT2_Bit : constant Bit_Number := 2;
  2595. INT2_Mask : constant Unsigned_8 := 16#04#;
  2596. -- External Interrupt Request 3 Enable
  2597. INT3_Bit : constant Bit_Number := 3;
  2598. INT3_Mask : constant Unsigned_8 := 16#08#;
  2599. -- External Interrupt Request 4 Enable
  2600. INT4_Bit : constant Bit_Number := 4;
  2601. INT4_Mask : constant Unsigned_8 := 16#10#;
  2602. -- External Interrupt Request 5 Enable
  2603. INT5_Bit : constant Bit_Number := 5;
  2604. INT5_Mask : constant Unsigned_8 := 16#20#;
  2605. -- External Interrupt Request 6 Enable
  2606. INT6_Bit : constant Bit_Number := 6;
  2607. INT6_Mask : constant Unsigned_8 := 16#40#;
  2608. -- External Interrupt Request 7 Enable
  2609. INT7_Bit : constant Bit_Number := 7;
  2610. INT7_Mask : constant Unsigned_8 := 16#80#;
  2611. -- External Interrupt Flag Register
  2612. EIFR_Addr : constant Address := 16#3c#;
  2613. EIFR : Unsigned_8 ;
  2614. for EIFR'Address use EIFR_Addr;
  2615. pragma Volatile (EIFR);
  2616. EIFR_Bits : Bits_In_Byte;
  2617. for EIFR_Bits'Address use EIFR_Addr;
  2618. pragma Volatile (EIFR_Bits);
  2619. -- External Interrupt Flag 0
  2620. INTF0_Bit : constant Bit_Number := 0;
  2621. INTF0_Mask : constant Unsigned_8 := 16#01#;
  2622. -- External Interrupt Flag 1
  2623. INTF1_Bit : constant Bit_Number := 1;
  2624. INTF1_Mask : constant Unsigned_8 := 16#02#;
  2625. -- External Interrupt Flag 2
  2626. INTF2_Bit : constant Bit_Number := 2;
  2627. INTF2_Mask : constant Unsigned_8 := 16#04#;
  2628. -- External Interrupt Flag 3
  2629. INTF3_Bit : constant Bit_Number := 3;
  2630. INTF3_Mask : constant Unsigned_8 := 16#08#;
  2631. -- External Interrupt Flag 4
  2632. INTF4_Bit : constant Bit_Number := 4;
  2633. INTF4_Mask : constant Unsigned_8 := 16#10#;
  2634. -- External Interrupt Flag 5
  2635. INTF5_Bit : constant Bit_Number := 5;
  2636. INTF5_Mask : constant Unsigned_8 := 16#20#;
  2637. -- External Interrupt Flag 6
  2638. INTF6_Bit : constant Bit_Number := 6;
  2639. INTF6_Mask : constant Unsigned_8 := 16#40#;
  2640. -- External Interrupt Flag 7
  2641. INTF7_Bit : constant Bit_Number := 7;
  2642. INTF7_Mask : constant Unsigned_8 := 16#80#;
  2643. -- Pin Change Interrupt Flag Register
  2644. PCIFR_Addr : constant Address := 16#3b#;
  2645. PCIFR : Unsigned_8 ;
  2646. for PCIFR'Address use PCIFR_Addr;
  2647. pragma Volatile (PCIFR);
  2648. PCIFR_Bits : Bits_In_Byte;
  2649. for PCIFR_Bits'Address use PCIFR_Addr;
  2650. pragma Volatile (PCIFR_Bits);
  2651. -- Pin Change Interrupt Flag 0
  2652. PCIF0_Bit : constant Bit_Number := 0;
  2653. PCIF0_Mask : constant Unsigned_8 := 16#01#;
  2654. -- Pin Change Interrupt Flag 1
  2655. PCIF1_Bit : constant Bit_Number := 1;
  2656. PCIF1_Mask : constant Unsigned_8 := 16#02#;
  2657. TIFR5_Addr : constant Address := 16#3a#;
  2658. TIFR5 : Unsigned_8 ;
  2659. for TIFR5'Address use TIFR5_Addr;
  2660. pragma Volatile (TIFR5);
  2661. TIFR5_Bits : Bits_In_Byte;
  2662. for TIFR5_Bits'Address use TIFR5_Addr;
  2663. pragma Volatile (TIFR5_Bits);
  2664. TIFR4_Addr : constant Address := 16#39#;
  2665. TIFR4 : Unsigned_8 ;
  2666. for TIFR4'Address use TIFR4_Addr;
  2667. pragma Volatile (TIFR4);
  2668. TIFR4_Bits : Bits_In_Byte;
  2669. for TIFR4_Bits'Address use TIFR4_Addr;
  2670. pragma Volatile (TIFR4_Bits);
  2671. TIFR3_Addr : constant Address := 16#38#;
  2672. TIFR3 : Unsigned_8 ;
  2673. for TIFR3'Address use TIFR3_Addr;
  2674. pragma Volatile (TIFR3);
  2675. TIFR3_Bits : Bits_In_Byte;
  2676. for TIFR3_Bits'Address use TIFR3_Addr;
  2677. pragma Volatile (TIFR3_Bits);
  2678. TIFR2_Addr : constant Address := 16#37#;
  2679. TIFR2 : Unsigned_8 ;
  2680. for TIFR2'Address use TIFR2_Addr;
  2681. pragma Volatile (TIFR2);
  2682. TIFR2_Bits : Bits_In_Byte;
  2683. for TIFR2_Bits'Address use TIFR2_Addr;
  2684. pragma Volatile (TIFR2_Bits);
  2685. -- Timer/Counter1 Interrupt Flag register
  2686. TIFR1_Addr : constant Address := 16#36#;
  2687. TIFR1 : Unsigned_8 ;
  2688. for TIFR1'Address use TIFR1_Addr;
  2689. pragma Volatile (TIFR1);
  2690. TIFR1_Bits : Bits_In_Byte;
  2691. for TIFR1_Bits'Address use TIFR1_Addr;
  2692. pragma Volatile (TIFR1_Bits);
  2693. -- Timer/Counter1 Overflow Flag
  2694. TOV1_Bit : constant Bit_Number := 0;
  2695. TOV1_Mask : constant Unsigned_8 := 16#01#;
  2696. -- Output Compare Flag 1A
  2697. OCF1A_Bit : constant Bit_Number := 1;
  2698. OCF1A_Mask : constant Unsigned_8 := 16#02#;
  2699. -- Output Compare Flag 1B
  2700. OCF1B_Bit : constant Bit_Number := 2;
  2701. OCF1B_Mask : constant Unsigned_8 := 16#04#;
  2702. -- Output Compare Flag 1C
  2703. OCF1C_Bit : constant Bit_Number := 3;
  2704. OCF1C_Mask : constant Unsigned_8 := 16#08#;
  2705. -- Input Capture Flag 1
  2706. ICF1_Bit : constant Bit_Number := 5;
  2707. ICF1_Mask : constant Unsigned_8 := 16#20#;
  2708. -- Timer/Counter0 Interrupt Flag register
  2709. TIFR0_Addr : constant Address := 16#35#;
  2710. TIFR0 : Unsigned_8 ;
  2711. for TIFR0'Address use TIFR0_Addr;
  2712. pragma Volatile (TIFR0);
  2713. TIFR0_Bits : Bits_In_Byte;
  2714. for TIFR0_Bits'Address use TIFR0_Addr;
  2715. pragma Volatile (TIFR0_Bits);
  2716. -- Timer/Counter0 Overflow Flag
  2717. TOV0_Bit : constant Bit_Number := 0;
  2718. TOV0_Mask : constant Unsigned_8 := 16#01#;
  2719. -- Timer/Counter0 Output Compare Flag 0A
  2720. OCF0A_Bit : constant Bit_Number := 1;
  2721. OCF0A_Mask : constant Unsigned_8 := 16#02#;
  2722. -- Timer/Counter0 Output Compare Flag 0B
  2723. OCF0B_Bit : constant Bit_Number := 2;
  2724. OCF0B_Mask : constant Unsigned_8 := 16#04#;
  2725. PORTF_Addr : constant Address := 16#31#;
  2726. PORTF : Unsigned_8 ;
  2727. for PORTF'Address use PORTF_Addr;
  2728. pragma Volatile (PORTF);
  2729. PORTF_Bits : Bits_In_Byte;
  2730. for PORTF_Bits'Address use PORTF_Addr;
  2731. pragma Volatile (PORTF_Bits);
  2732. DDRF_Addr : constant Address := 16#30#;
  2733. DDRF : Unsigned_8 ;
  2734. for DDRF'Address use DDRF_Addr;
  2735. pragma Volatile (DDRF);
  2736. DDRF_Bits : Bits_In_Byte;
  2737. for DDRF_Bits'Address use DDRF_Addr;
  2738. pragma Volatile (DDRF_Bits);
  2739. PINF_Addr : constant Address := 16#2f#;
  2740. PINF : Unsigned_8 ;
  2741. for PINF'Address use PINF_Addr;
  2742. pragma Volatile (PINF);
  2743. PINF_Bits : Bits_In_Byte;
  2744. for PINF_Bits'Address use PINF_Addr;
  2745. pragma Volatile (PINF_Bits);
  2746. PORTE_Addr : constant Address := 16#2e#;
  2747. PORTE : Unsigned_8 ;
  2748. for PORTE'Address use PORTE_Addr;
  2749. pragma Volatile (PORTE);
  2750. PORTE_Bits : Bits_In_Byte;
  2751. for PORTE_Bits'Address use PORTE_Addr;
  2752. pragma Volatile (PORTE_Bits);
  2753. DDRE_Addr : constant Address := 16#2d#;
  2754. DDRE : Unsigned_8 ;
  2755. for DDRE'Address use DDRE_Addr;
  2756. pragma Volatile (DDRE);
  2757. DDRE_Bits : Bits_In_Byte;
  2758. for DDRE_Bits'Address use DDRE_Addr;
  2759. pragma Volatile (DDRE_Bits);
  2760. PINE_Addr : constant Address := 16#2c#;
  2761. PINE : Unsigned_8 ;
  2762. for PINE'Address use PINE_Addr;
  2763. pragma Volatile (PINE);
  2764. PINE_Bits : Bits_In_Byte;
  2765. for PINE_Bits'Address use PINE_Addr;
  2766. pragma Volatile (PINE_Bits);
  2767. -- Port D Data Register
  2768. PORTD_Addr : constant Address := 16#2b#;
  2769. PORTD : Unsigned_8 ;
  2770. for PORTD'Address use PORTD_Addr;
  2771. pragma Volatile (PORTD);
  2772. PORTD_Bits : Bits_In_Byte;
  2773. for PORTD_Bits'Address use PORTD_Addr;
  2774. pragma Volatile (PORTD_Bits);
  2775. -- Port D Data Register bit 0
  2776. PORTD0_Bit : constant Bit_Number := 0;
  2777. PORTD0_Mask : constant Unsigned_8 := 16#01#;
  2778. -- Port D Data Register bit 1
  2779. PORTD1_Bit : constant Bit_Number := 1;
  2780. PORTD1_Mask : constant Unsigned_8 := 16#02#;
  2781. -- Port D Data Register bit 2
  2782. PORTD2_Bit : constant Bit_Number := 2;
  2783. PORTD2_Mask : constant Unsigned_8 := 16#04#;
  2784. -- Port D Data Register bit 3
  2785. PORTD3_Bit : constant Bit_Number := 3;
  2786. PORTD3_Mask : constant Unsigned_8 := 16#08#;
  2787. -- Port D Data Register bit 4
  2788. PORTD4_Bit : constant Bit_Number := 4;
  2789. PORTD4_Mask : constant Unsigned_8 := 16#10#;
  2790. -- Port D Data Register bit 5
  2791. PORTD5_Bit : constant Bit_Number := 5;
  2792. PORTD5_Mask : constant Unsigned_8 := 16#20#;
  2793. -- Port D Data Register bit 6
  2794. PORTD6_Bit : constant Bit_Number := 6;
  2795. PORTD6_Mask : constant Unsigned_8 := 16#40#;
  2796. -- Port D Data Register bit 7
  2797. PORTD7_Bit : constant Bit_Number := 7;
  2798. PORTD7_Mask : constant Unsigned_8 := 16#80#;
  2799. -- Port D Data Direction Register
  2800. DDRD_Addr : constant Address := 16#2a#;
  2801. DDRD : Unsigned_8 ;
  2802. for DDRD'Address use DDRD_Addr;
  2803. pragma Volatile (DDRD);
  2804. DDRD_Bits : Bits_In_Byte;
  2805. for DDRD_Bits'Address use DDRD_Addr;
  2806. pragma Volatile (DDRD_Bits);
  2807. -- Port D Data Direction Register bit 0
  2808. DDD0_Bit : constant Bit_Number := 0;
  2809. DDD0_Mask : constant Unsigned_8 := 16#01#;
  2810. -- Port D Data Direction Register bit 1
  2811. DDD1_Bit : constant Bit_Number := 1;
  2812. DDD1_Mask : constant Unsigned_8 := 16#02#;
  2813. -- Port D Data Direction Register bit 2
  2814. DDD2_Bit : constant Bit_Number := 2;
  2815. DDD2_Mask : constant Unsigned_8 := 16#04#;
  2816. -- Port D Data Direction Register bit 3
  2817. DDD3_Bit : constant Bit_Number := 3;
  2818. DDD3_Mask : constant Unsigned_8 := 16#08#;
  2819. -- Port D Data Direction Register bit 4
  2820. DDD4_Bit : constant Bit_Number := 4;
  2821. DDD4_Mask : constant Unsigned_8 := 16#10#;
  2822. -- Port D Data Direction Register bit 5
  2823. DDD5_Bit : constant Bit_Number := 5;
  2824. DDD5_Mask : constant Unsigned_8 := 16#20#;
  2825. -- Port D Data Direction Register bit 6
  2826. DDD6_Bit : constant Bit_Number := 6;
  2827. DDD6_Mask : constant Unsigned_8 := 16#40#;
  2828. -- Port D Data Direction Register bit 7
  2829. DDD7_Bit : constant Bit_Number := 7;
  2830. DDD7_Mask : constant Unsigned_8 := 16#80#;
  2831. -- Port D Input Pins
  2832. PIND_Addr : constant Address := 16#29#;
  2833. PIND : Unsigned_8 ;
  2834. for PIND'Address use PIND_Addr;
  2835. pragma Volatile (PIND);
  2836. PIND_Bits : Bits_In_Byte;
  2837. for PIND_Bits'Address use PIND_Addr;
  2838. pragma Volatile (PIND_Bits);
  2839. -- Port D Input Pins bit 0
  2840. PIND0_Bit : constant Bit_Number := 0;
  2841. PIND0_Mask : constant Unsigned_8 := 16#01#;
  2842. -- Port D Input Pins bit 1
  2843. PIND1_Bit : constant Bit_Number := 1;
  2844. PIND1_Mask : constant Unsigned_8 := 16#02#;
  2845. -- Port D Input Pins bit 2
  2846. PIND2_Bit : constant Bit_Number := 2;
  2847. PIND2_Mask : constant Unsigned_8 := 16#04#;
  2848. -- Port D Input Pins bit 3
  2849. PIND3_Bit : constant Bit_Number := 3;
  2850. PIND3_Mask : constant Unsigned_8 := 16#08#;
  2851. -- Port D Input Pins bit 4
  2852. PIND4_Bit : constant Bit_Number := 4;
  2853. PIND4_Mask : constant Unsigned_8 := 16#10#;
  2854. -- Port D Input Pins bit 5
  2855. PIND5_Bit : constant Bit_Number := 5;
  2856. PIND5_Mask : constant Unsigned_8 := 16#20#;
  2857. -- Port D Input Pins bit 6
  2858. PIND6_Bit : constant Bit_Number := 6;
  2859. PIND6_Mask : constant Unsigned_8 := 16#40#;
  2860. -- Port D Input Pins bit 7
  2861. PIND7_Bit : constant Bit_Number := 7;
  2862. PIND7_Mask : constant Unsigned_8 := 16#80#;
  2863. -- Port C Data Register
  2864. PORTC_Addr : constant Address := 16#28#;
  2865. PORTC : Unsigned_8 ;
  2866. for PORTC'Address use PORTC_Addr;
  2867. pragma Volatile (PORTC);
  2868. PORTC_Bits : Bits_In_Byte;
  2869. for PORTC_Bits'Address use PORTC_Addr;
  2870. pragma Volatile (PORTC_Bits);
  2871. -- Port C Data Register bit 0
  2872. PORTC0_Bit : constant Bit_Number := 0;
  2873. PORTC0_Mask : constant Unsigned_8 := 16#01#;
  2874. -- Port C Data Register bit 1
  2875. PORTC1_Bit : constant Bit_Number := 1;
  2876. PORTC1_Mask : constant Unsigned_8 := 16#02#;
  2877. -- Port C Data Register bit 2
  2878. PORTC2_Bit : constant Bit_Number := 2;
  2879. PORTC2_Mask : constant Unsigned_8 := 16#04#;
  2880. -- Port C Data Register bit 4
  2881. PORTC4_Bit : constant Bit_Number := 4;
  2882. PORTC4_Mask : constant Unsigned_8 := 16#10#;
  2883. -- Port C Data Register bit 5
  2884. PORTC5_Bit : constant Bit_Number := 5;
  2885. PORTC5_Mask : constant Unsigned_8 := 16#20#;
  2886. -- Port C Data Register bit 6
  2887. PORTC6_Bit : constant Bit_Number := 6;
  2888. PORTC6_Mask : constant Unsigned_8 := 16#40#;
  2889. -- Port C Data Register bit 7
  2890. PORTC7_Bit : constant Bit_Number := 7;
  2891. PORTC7_Mask : constant Unsigned_8 := 16#80#;
  2892. -- Port C Data Direction Register
  2893. DDRC_Addr : constant Address := 16#27#;
  2894. DDRC : Unsigned_8 ;
  2895. for DDRC'Address use DDRC_Addr;
  2896. pragma Volatile (DDRC);
  2897. DDRC_Bits : Bits_In_Byte;
  2898. for DDRC_Bits'Address use DDRC_Addr;
  2899. pragma Volatile (DDRC_Bits);
  2900. -- Port C Data Direction Register bit 0
  2901. DDC0_Bit : constant Bit_Number := 0;
  2902. DDC0_Mask : constant Unsigned_8 := 16#01#;
  2903. -- Port C Data Direction Register bit 1
  2904. DDC1_Bit : constant Bit_Number := 1;
  2905. DDC1_Mask : constant Unsigned_8 := 16#02#;
  2906. -- Port C Data Direction Register bit 2
  2907. DDC2_Bit : constant Bit_Number := 2;
  2908. DDC2_Mask : constant Unsigned_8 := 16#04#;
  2909. -- Port C Data Direction Register bit 4
  2910. DDC4_Bit : constant Bit_Number := 4;
  2911. DDC4_Mask : constant Unsigned_8 := 16#10#;
  2912. -- Port C Data Direction Register bit 5
  2913. DDC5_Bit : constant Bit_Number := 5;
  2914. DDC5_Mask : constant Unsigned_8 := 16#20#;
  2915. -- Port C Data Direction Register bit 6
  2916. DDC6_Bit : constant Bit_Number := 6;
  2917. DDC6_Mask : constant Unsigned_8 := 16#40#;
  2918. -- Port C Data Direction Register bit 7
  2919. DDC7_Bit : constant Bit_Number := 7;
  2920. DDC7_Mask : constant Unsigned_8 := 16#80#;
  2921. -- Port C Input Pins
  2922. PINC_Addr : constant Address := 16#26#;
  2923. PINC : Unsigned_8 ;
  2924. for PINC'Address use PINC_Addr;
  2925. pragma Volatile (PINC);
  2926. PINC_Bits : Bits_In_Byte;
  2927. for PINC_Bits'Address use PINC_Addr;
  2928. pragma Volatile (PINC_Bits);
  2929. -- Port C Input Pins bit 0
  2930. PINC0_Bit : constant Bit_Number := 0;
  2931. PINC0_Mask : constant Unsigned_8 := 16#01#;
  2932. -- Port C Input Pins bit 1
  2933. PINC1_Bit : constant Bit_Number := 1;
  2934. PINC1_Mask : constant Unsigned_8 := 16#02#;
  2935. -- Port C Input Pins bit 2
  2936. PINC2_Bit : constant Bit_Number := 2;
  2937. PINC2_Mask : constant Unsigned_8 := 16#04#;
  2938. -- Port C Input Pins bit 4
  2939. PINC4_Bit : constant Bit_Number := 4;
  2940. PINC4_Mask : constant Unsigned_8 := 16#10#;
  2941. -- Port C Input Pins bit 5
  2942. PINC5_Bit : constant Bit_Number := 5;
  2943. PINC5_Mask : constant Unsigned_8 := 16#20#;
  2944. -- Port C Input Pins bit 6
  2945. PINC6_Bit : constant Bit_Number := 6;
  2946. PINC6_Mask : constant Unsigned_8 := 16#40#;
  2947. -- Port C Input Pins bit 7
  2948. PINC7_Bit : constant Bit_Number := 7;
  2949. PINC7_Mask : constant Unsigned_8 := 16#80#;
  2950. -- Port B Data Register
  2951. PORTB_Addr : constant Address := 16#25#;
  2952. PORTB : Unsigned_8 ;
  2953. for PORTB'Address use PORTB_Addr;
  2954. pragma Volatile (PORTB);
  2955. PORTB_Bits : Bits_In_Byte;
  2956. for PORTB_Bits'Address use PORTB_Addr;
  2957. pragma Volatile (PORTB_Bits);
  2958. -- Port B Data Register bit 0
  2959. PORTB0_Bit : constant Bit_Number := 0;
  2960. PORTB0_Mask : constant Unsigned_8 := 16#01#;
  2961. -- Port B Data Register bit 1
  2962. PORTB1_Bit : constant Bit_Number := 1;
  2963. PORTB1_Mask : constant Unsigned_8 := 16#02#;
  2964. -- Port B Data Register bit 2
  2965. PORTB2_Bit : constant Bit_Number := 2;
  2966. PORTB2_Mask : constant Unsigned_8 := 16#04#;
  2967. -- Port B Data Register bit 3
  2968. PORTB3_Bit : constant Bit_Number := 3;
  2969. PORTB3_Mask : constant Unsigned_8 := 16#08#;
  2970. -- Port B Data Register bit 4
  2971. PORTB4_Bit : constant Bit_Number := 4;
  2972. PORTB4_Mask : constant Unsigned_8 := 16#10#;
  2973. -- Port B Data Register bit 5
  2974. PORTB5_Bit : constant Bit_Number := 5;
  2975. PORTB5_Mask : constant Unsigned_8 := 16#20#;
  2976. -- Port B Data Register bit 6
  2977. PORTB6_Bit : constant Bit_Number := 6;
  2978. PORTB6_Mask : constant Unsigned_8 := 16#40#;
  2979. -- Port B Data Register bit 7
  2980. PORTB7_Bit : constant Bit_Number := 7;
  2981. PORTB7_Mask : constant Unsigned_8 := 16#80#;
  2982. -- Port B Data Direction Register
  2983. DDRB_Addr : constant Address := 16#24#;
  2984. DDRB : Unsigned_8 ;
  2985. for DDRB'Address use DDRB_Addr;
  2986. pragma Volatile (DDRB);
  2987. DDRB_Bits : Bits_In_Byte;
  2988. for DDRB_Bits'Address use DDRB_Addr;
  2989. pragma Volatile (DDRB_Bits);
  2990. -- Port B Data Direction Register bit 0
  2991. DDB0_Bit : constant Bit_Number := 0;
  2992. DDB0_Mask : constant Unsigned_8 := 16#01#;
  2993. -- Port B Data Direction Register bit 1
  2994. DDB1_Bit : constant Bit_Number := 1;
  2995. DDB1_Mask : constant Unsigned_8 := 16#02#;
  2996. -- Port B Data Direction Register bit 2
  2997. DDB2_Bit : constant Bit_Number := 2;
  2998. DDB2_Mask : constant Unsigned_8 := 16#04#;
  2999. -- Port B Data Direction Register bit 3
  3000. DDB3_Bit : constant Bit_Number := 3;
  3001. DDB3_Mask : constant Unsigned_8 := 16#08#;
  3002. -- Port B Data Direction Register bit 4
  3003. DDB4_Bit : constant Bit_Number := 4;
  3004. DDB4_Mask : constant Unsigned_8 := 16#10#;
  3005. -- Port B Data Direction Register bit 5
  3006. DDB5_Bit : constant Bit_Number := 5;
  3007. DDB5_Mask : constant Unsigned_8 := 16#20#;
  3008. -- Port B Data Direction Register bit 6
  3009. DDB6_Bit : constant Bit_Number := 6;
  3010. DDB6_Mask : constant Unsigned_8 := 16#40#;
  3011. -- Port B Data Direction Register bit 7
  3012. DDB7_Bit : constant Bit_Number := 7;
  3013. DDB7_Mask : constant Unsigned_8 := 16#80#;
  3014. -- Port B Input Pins
  3015. PINB_Addr : constant Address := 16#23#;
  3016. PINB : Unsigned_8 ;
  3017. for PINB'Address use PINB_Addr;
  3018. pragma Volatile (PINB);
  3019. PINB_Bits : Bits_In_Byte;
  3020. for PINB_Bits'Address use PINB_Addr;
  3021. pragma Volatile (PINB_Bits);
  3022. -- Port B Input Pins bit 0
  3023. PINB0_Bit : constant Bit_Number := 0;
  3024. PINB0_Mask : constant Unsigned_8 := 16#01#;
  3025. -- Port B Input Pins bit 1
  3026. PINB1_Bit : constant Bit_Number := 1;
  3027. PINB1_Mask : constant Unsigned_8 := 16#02#;
  3028. -- Port B Input Pins bit 2
  3029. PINB2_Bit : constant Bit_Number := 2;
  3030. PINB2_Mask : constant Unsigned_8 := 16#04#;
  3031. -- Port B Input Pins bit 3
  3032. PINB3_Bit : constant Bit_Number := 3;
  3033. PINB3_Mask : constant Unsigned_8 := 16#08#;
  3034. -- Port B Input Pins bit 4
  3035. PINB4_Bit : constant Bit_Number := 4;
  3036. PINB4_Mask : constant Unsigned_8 := 16#10#;
  3037. -- Port B Input Pins bit 5
  3038. PINB5_Bit : constant Bit_Number := 5;
  3039. PINB5_Mask : constant Unsigned_8 := 16#20#;
  3040. -- Port B Input Pins bit 6
  3041. PINB6_Bit : constant Bit_Number := 6;
  3042. PINB6_Mask : constant Unsigned_8 := 16#40#;
  3043. -- Port B Input Pins bit 7
  3044. PINB7_Bit : constant Bit_Number := 7;
  3045. PINB7_Mask : constant Unsigned_8 := 16#80#;
  3046. --
  3047. -- available assembler instructions
  3048. --
  3049. -- type to designate the instruction core of the devices. See
  3050. -- the help file of Atmel's "AVR Assembler 2".
  3051. type Instruction_Core_Type is (V0, V0E, V1, V2, V2E, V3);
  3052. Instruction_Core : constant Instruction_Core_Type := V3;
  3053. Have_lpm_rd_Zplus : constant Boolean := True;
  3054. EEprom_8bit_Addr : constant Boolean :=
  3055. (EEprom_Size <= 16#0100#);
  3056. end AVR.AT90USB82;