33 #define _AVR_POWER_H_ 1
1147 #if defined(__AVR_ATxmega16A4__) \
1148 || defined(__AVR_ATxmega16A4U__) \
1149 || defined(__AVR_ATxmega32A4U__) \
1150 || defined(__AVR_ATxmega32A4__) \
1151 || defined(__AVR_ATxmega64A1__) \
1152 || defined(__AVR_ATxmega64A1U__) \
1153 || defined(__AVR_ATxmega64A3__) \
1154 || defined(__AVR_ATxmega64A3U__) \
1155 || defined(__AVR_ATxmega64A4U__) \
1156 || defined(__AVR_ATxmega128A1__) \
1157 || defined(__AVR_ATxmega128A1U__) \
1158 || defined(__AVR_ATxmega128A3__) \
1159 || defined(__AVR_ATxmega128A3U__) \
1160 || defined(__AVR_ATxmega128A4U__) \
1161 || defined(__AVR_ATxmega192A3__) \
1162 || defined(__AVR_ATxmega192A3U__) \
1163 || defined(__AVR_ATxmega256A3__) \
1164 || defined(__AVR_ATxmega256A3U__) \
1165 || defined(__AVR_ATxmega256A3B__) \
1166 || defined(__AVR_ATxmega256A3BU__) \
1167 || defined(__AVR_ATxmega384C3__)
1170 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1171 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1173 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
1174 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
1176 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1177 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1179 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
1180 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
1181 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
1182 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
1184 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1185 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1186 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1187 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1188 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1189 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1190 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1191 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1193 #if defined(__AVR_ATxmega384C3__) \
1194 || defined(__AVR_ATxmega256A3BU__) \
1195 || defined(__AVR_ATxmega16A4U__) \
1196 || defined(__AVR_ATxmega32A4U__) \
1197 || defined(__AVR_ATxmega64A3U__) \
1198 || defined(__AVR_ATxmega64A4U__) \
1199 || defined(__AVR_ATxmega128A3U__) \
1200 || defined(__AVR_ATxmega128A4U__) \
1201 || defined(__AVR_ATxmega192A3U__) \
1202 || defined(__AVR_ATxmega256A3U__)
1204 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1205 #define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1207 #define power_all_enable() \
1209 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1210 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1211 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1212 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1213 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1214 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1215 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1218 #define power_all_disable() \
1220 PR_PRGEN |= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1221 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1222 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1223 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1224 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1225 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1226 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1231 #define power_all_enable() \
1233 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1234 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1235 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1236 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1237 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1238 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1239 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1243 #define power_all_disable() \
1245 PR_PRGEN|= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1246 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1247 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1248 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1249 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1250 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1251 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART1_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1257 #if defined(__AVR_ATxmega16C4__) \
1258 || defined(__AVR_ATxmega32C3__) \
1259 || defined(__AVR_ATxmega32C4__) \
1260 || defined(__AVR_ATxmega64C3__) \
1261 || defined(__AVR_ATxmega128C3__) \
1262 || defined(__AVR_ATxmega192C3__) \
1263 || defined(__AVR_ATxmega256C3__)
1265 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1266 #define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1268 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1269 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1271 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1272 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1274 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1275 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1277 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1278 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1280 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1281 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1283 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1284 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1286 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1287 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1288 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1289 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1291 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1292 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1294 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1295 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1296 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1297 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1298 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1299 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1300 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1301 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1303 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1304 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1305 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1306 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1308 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1309 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1311 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1312 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1314 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1315 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1316 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1317 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1318 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1319 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1320 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1321 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1323 #define power_all_enable() \
1325 PR_PRGEN &= (uint8_t)~(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1326 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1327 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_USART1_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1328 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1329 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1330 PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1333 #define power_all_disable() \
1335 PR_PRGEN |= (uint8_t)(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1336 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1337 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_USART1_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1338 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1339 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1340 PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1345 #if defined(__AVR_ATxmega16A4__) \
1346 || defined(__AVR_ATxmega16A4U__) \
1347 || defined(__AVR_ATxmega16D4__) \
1348 || defined(__AVR_ATxmega32A4__) \
1349 || defined(__AVR_ATxmega32A4U__) \
1350 || defined(__AVR_ATxmega32D3__) \
1351 || defined(__AVR_ATxmega32D4__) \
1352 || defined(__AVR_ATxmega64A1__) \
1353 || defined(__AVR_ATxmega64A1U__) \
1354 || defined(__AVR_ATxmega64A3__) \
1355 || defined(__AVR_ATxmega64A3U__) \
1356 || defined(__AVR_ATxmega64A4U__) \
1357 || defined(__AVR_ATxmega128A1__) \
1358 || defined(__AVR_ATxmega128A1U__) \
1359 || defined(__AVR_ATxmega128A3__) \
1360 || defined(__AVR_ATxmega128A3U__) \
1361 || defined(__AVR_ATxmega128A4U__) \
1362 || defined(__AVR_ATxmega192A3__) \
1363 || defined(__AVR_ATxmega192A3U__) \
1364 || defined(__AVR_ATxmega256A3__) \
1365 || defined(__AVR_ATxmega256A3U__) \
1366 || defined(__AVR_ATxmega256A3B__) \
1367 || defined(__AVR_ATxmega256A3BU__) \
1368 || defined(__AVR_ATxmega384C3__)
1371 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1372 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1374 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1375 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1377 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1378 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1380 #ifndef __AVR_ATxmega32D3__
1381 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
1382 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
1383 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
1384 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
1387 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1388 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1390 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1391 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1392 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1393 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1394 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1395 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1396 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1397 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1399 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1400 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1401 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1402 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1403 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1404 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1405 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1406 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1408 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1409 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1410 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1411 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1412 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1413 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1414 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1415 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1417 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1418 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1419 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
1420 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
1421 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1422 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1423 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1424 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1426 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1427 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1428 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
1429 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
1430 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1431 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1432 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1433 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1435 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1436 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1437 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1438 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1439 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1440 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1441 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1442 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1446 #if defined(__AVR_ATxmega64D3__) \
1447 || defined(__AVR_ATxmega128D3__) \
1448 || defined(__AVR_ATxmega192D3__) \
1449 || defined(__AVR_ATxmega256D3__)
1451 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1452 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1454 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1455 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1457 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1458 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1460 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1461 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1463 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1464 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1465 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1466 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1468 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1469 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1470 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1471 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1472 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1473 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1474 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1475 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1477 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1478 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1479 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1480 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1482 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1483 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1485 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1486 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1488 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1489 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1490 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1491 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1492 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1493 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1494 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1495 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1497 #define power_all_enable() \
1499 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
1500 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1501 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1502 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1503 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1504 PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1508 #define power_all_disable() \
1510 PR_PRGEN|= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
1511 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1512 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1513 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1514 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1515 PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1520 #if defined(__AVR_ATxmega64D4__) \
1521 || defined(__AVR_ATxmega128D4__)
1523 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1524 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1526 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1527 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1529 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1530 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1532 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1533 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1535 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1536 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1537 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1538 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1540 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1541 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1542 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1543 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1544 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1545 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1546 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1547 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1549 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1550 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1551 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1552 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1554 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1555 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1557 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1558 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1560 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1561 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1562 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1563 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1564 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1565 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1566 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1567 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1569 #define power_all_enable() \
1571 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
1572 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1573 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1574 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1575 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1576 PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1579 #define power_all_disable() \
1581 PR_PRGEN |= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
1582 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1583 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1584 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1585 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1586 PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1591 #if defined(__AVR_ATxmega16D4__) \
1592 || defined(__AVR_ATxmega32D3__) \
1593 || defined(__AVR_ATxmega32D4__) \
1595 #define power_all_enable() \
1597 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
1598 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1599 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1600 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1601 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1602 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1606 #define power_all_disable() \
1608 PR_PRGEN|= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
1609 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1610 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1611 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1612 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1613 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1617 #elif defined(__AVR_ATxmega32E5__) \
1618 || defined(__AVR_ATxmega16E5__) \
1619 || defined(__AVR_ATxmega8E5__)
1621 #define power_xcl_enable() (PR_PRGEN &= (uint8_t)~(PR_XCL_bm))
1622 #define power_xcl_disable() (PR_PRGEN |= (uint8_t)PR_XCL_bm)
1624 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1625 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1627 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1628 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1630 #define power_edma_enable() (PR_PRGEN &= (uint8_t)~(PR_EDMA_bm))
1631 #define power_edma_disable() (PR_PRGEN |= (uint8_t)PR_EDMA_bm)
1633 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
1634 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
1636 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1637 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1639 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1640 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1642 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1643 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1645 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1646 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1648 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1649 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1651 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1652 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1654 #define power_tc5c_enable() (PR_PRPC &= (uint8_t)~(PR_TC5_bm))
1655 #define power_tc5c_disable() (PR_PRPC |= (uint8_t)PR_TC5_bm)
1657 #define power_tc4c_enable() (PR_PRPC &= (uint8_t)~(PR_TC4_bm))
1658 #define power_tc4c_disable() (PR_PRPC |= (uint8_t)PR_TC4_bm)
1660 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1661 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1663 #define power_tc5d_enable() (PR_PRPC &= (uint8_t)~(PR_TC5_bm))
1664 #define power_tc5d_disable() (PR_PRPC |= (uint8_t)PR_TC5_bm)
1666 #define power_all_enable() \
1668 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm|PR_XCL_bm|PR_EDMA_bm); \
1669 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm|PR_DAC_bm); \
1670 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC5_bm|PR_TC4_bm); \
1671 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_TC5_bm); \
1675 #define power_all_disable() \
1677 PR_PRGEN|= (uint8_t)(PR_XCL_bm|PR_RTC_bm|PR_EVSYS_bm|PR_EDMA_bm); \
1678 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm|PR_DAC_bm); \
1679 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC5_bm|PR_TC4_bm); \
1680 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_TC5_bm); \
1684 #elif defined (__AVR_ATxmega64B1__) \
1685 || defined (__AVR_ATxmega64B3__) \
1686 || defined (__AVR_ATxmega128B1__) \
1687 || defined (__AVR_ATxmega128B3__)
1688 #define power_lcd_enable() (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
1689 #define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
1691 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1692 #define power_usb_disable() (PR_PRGEN |= (uint8_t)PR_USB_bm)
1694 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1695 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1697 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1698 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1700 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1701 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1703 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1704 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1706 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1707 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1708 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
1709 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
1711 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1712 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1713 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
1714 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
1716 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1717 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1719 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1720 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1721 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1722 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1724 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1725 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1727 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1728 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1730 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1731 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1733 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1734 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1735 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1736 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1738 #define power_all_enable() \
1740 PR_PRGEN &= (uint8_t)~(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1741 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1742 PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1743 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1744 PR_PRPE &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1747 #define power_all_disable() \
1749 PR_PRGEN |= (uint8_t)(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1750 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1751 PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1752 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1753 PR_PRPE |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1756 #elif defined(__AVR_ATmega640__) \
1757 || defined(__AVR_ATmega1280__) \
1758 || defined(__AVR_ATmega1281__) \
1759 || defined(__AVR_ATmega2560__) \
1760 || defined(__AVR_ATmega2561__)
1762 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1763 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1765 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1766 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1768 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1769 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1771 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1772 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1774 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1775 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1777 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1778 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1780 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1781 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1783 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
1784 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
1786 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
1787 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
1789 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1790 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1792 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1793 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1795 #define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
1796 #define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
1798 #define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
1799 #define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
1801 #define power_all_enable() \
1803 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1804 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
1807 #define power_all_disable() \
1809 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1810 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
1814 #elif defined(__AVR_ATmega128RFA1__)
1816 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1817 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1819 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1820 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1822 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1823 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1825 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1826 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1828 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1829 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1831 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1832 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1834 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1835 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1837 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
1838 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
1840 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
1841 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
1843 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1844 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1846 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1847 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1849 #define power_all_enable() \
1851 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1852 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
1855 #define power_all_disable() \
1857 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1858 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
1861 #elif defined(__AVR_ATmega256RFR2__) \
1862 || defined(__AVR_ATmega2564RFR2__) \
1863 || defined(__AVR_ATmega128RFR2__) \
1864 || defined(__AVR_ATmega1284RFR2__) \
1865 || defined(__AVR_ATmega64RFR2__) \
1866 || defined(__AVR_ATmega644RFR2__)
1868 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1869 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1871 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1872 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1874 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1875 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1877 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1878 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1880 #define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
1881 #define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
1883 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1884 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1886 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1887 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1889 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1890 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1892 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1893 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1895 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1896 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1898 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
1899 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
1901 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
1902 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
1904 #define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
1905 #define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
1907 #define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
1908 #define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
1910 #define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
1911 #define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
1913 #define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
1914 #define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
1916 #define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
1917 #define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
1919 #define power_all_enable() \
1921 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1922 PRR1 &= (uint8_t)~((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
1923 PRR2 &= (uint8_t)~((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
1926 #define power_all_disable() \
1928 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1929 PRR1 |= (uint8_t)((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
1930 PRR2 |= (uint8_t)((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
1933 #elif defined(__AVR_AT90USB646__) \
1934 || defined(__AVR_AT90USB647__) \
1935 || defined(__AVR_AT90USB1286__) \
1936 || defined(__AVR_AT90USB1287__)
1938 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1939 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1941 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1942 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1944 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1945 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1947 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1948 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1950 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1951 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1953 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1954 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1956 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1957 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1959 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1960 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1962 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
1963 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
1965 #define power_all_enable() \
1967 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
1968 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
1971 #define power_all_disable() \
1973 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
1974 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
1978 #elif defined(__AVR_ATmega32U4__) \
1979 || defined(__AVR_ATmega16U4__)
1982 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1983 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1985 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1986 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1988 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1989 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1991 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1992 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1994 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1995 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1997 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1998 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2000 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2001 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2003 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2004 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2006 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2007 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2009 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2010 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2012 #define power_all_enable() \
2014 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2015 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2018 #define power_all_disable() \
2020 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2021 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2025 #elif defined(__AVR_ATmega32U6__)
2028 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2029 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2031 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2032 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2034 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2035 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2037 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2038 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2040 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2041 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2043 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2044 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2046 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2047 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2049 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2050 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2052 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2053 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2055 #define power_all_enable() \
2057 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2058 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2061 #define power_all_disable() \
2063 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2064 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2068 #elif defined(__AVR_AT90PWM1__)
2070 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2071 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2073 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2074 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2076 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2077 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2079 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2080 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2083 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
2084 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
2087 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
2088 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
2091 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2092 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2094 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2095 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2098 #elif defined(__AVR_AT90PWM2__) \
2099 || defined(__AVR_AT90PWM2B__) \
2100 || defined(__AVR_AT90PWM3__) \
2101 || defined(__AVR_AT90PWM3B__) \
2102 || defined(__AVR_AT90PWM216__) \
2103 || defined(__AVR_AT90PWM316__)
2105 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2106 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2108 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2109 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2111 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2112 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2114 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2115 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2117 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2118 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2121 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
2122 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
2125 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
2126 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
2129 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2130 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2132 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2133 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2136 #elif defined(__AVR_AT90PWM81__) \
2137 || defined(__AVR_AT90PWM161__)
2139 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2140 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2142 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2143 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2145 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2146 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2149 #define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
2150 #define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
2153 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2154 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2156 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
2157 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
2160 #elif defined(__AVR_ATmega165__) \
2161 || defined(__AVR_ATmega165A__) \
2162 || defined(__AVR_ATmega165P__) \
2163 || defined(__AVR_ATmega165PA__) \
2164 || defined(__AVR_ATmega325__) \
2165 || defined(__AVR_ATmega325A__) \
2166 || defined(__AVR_ATmega325P__) \
2167 || defined(__AVR_ATmega325PA__) \
2168 || defined(__AVR_ATmega3250__) \
2169 || defined(__AVR_ATmega3250A__) \
2170 || defined(__AVR_ATmega3250P__) \
2171 || defined(__AVR_ATmega3250PA__) \
2172 || defined(__AVR_ATmega645__) \
2173 || defined(__AVR_ATmega645A__) \
2174 || defined(__AVR_ATmega645P__) \
2175 || defined(__AVR_ATmega6450__) \
2176 || defined(__AVR_ATmega6450A__) \
2177 || defined(__AVR_ATmega6450P__)
2179 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2180 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2182 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2183 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2185 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2186 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2188 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2189 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2191 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
2192 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
2195 #elif defined(__AVR_ATmega169__) \
2196 || defined(__AVR_ATmega169A__) \
2197 || defined(__AVR_ATmega169P__) \
2198 || defined(__AVR_ATmega169PA__) \
2199 || defined(__AVR_ATmega329__) \
2200 || defined(__AVR_ATmega329A__) \
2201 || defined(__AVR_ATmega329P__) \
2202 || defined(__AVR_ATmega329PA__) \
2203 || defined(__AVR_ATmega3290__) \
2204 || defined(__AVR_ATmega3290A__) \
2205 || defined(__AVR_ATmega3290P__) \
2206 || defined(__AVR_ATmega3290PA__) \
2207 || defined(__AVR_ATmega649__) \
2208 || defined(__AVR_ATmega649A__) \
2209 || defined(__AVR_ATmega649P__) \
2210 || defined(__AVR_ATmega6490__) \
2211 || defined(__AVR_ATmega6490A__) \
2212 || defined(__AVR_ATmega6490P__)
2214 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2215 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2217 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2218 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2220 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2221 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2223 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2224 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2226 #define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
2227 #define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
2229 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
2230 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
2233 #elif defined(__AVR_ATmega164A__) \
2234 || defined(__AVR_ATmega164P__) \
2235 || defined(__AVR_ATmega324A__) \
2236 || defined(__AVR_ATmega324P__) \
2237 || defined(__AVR_ATmega324PA__) \
2238 || defined(__AVR_ATmega644P__) \
2239 || defined(__AVR_ATmega644A__) \
2240 || defined(__AVR_ATmega644PA__)
2242 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2243 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2245 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2246 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2248 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2249 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2251 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
2252 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
2254 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2255 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2257 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2258 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2260 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2261 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2263 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2264 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2266 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2267 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2270 #elif defined(__AVR_ATmega644__) \
2271 || defined(__AVR_ATmega164PA__)
2273 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2274 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2276 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2277 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2279 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2280 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2282 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2283 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2285 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2286 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2288 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2289 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2291 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2292 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2294 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2295 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2298 #elif defined(__AVR_ATmega406__)
2300 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2301 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2303 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2304 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2306 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2307 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2310 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
2311 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
2313 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
2314 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
2317 #elif defined(__AVR_ATmega48__) \
2318 || defined(__AVR_ATmega48A__) \
2319 || defined(__AVR_ATmega48PA__) \
2320 || defined(__AVR_ATmega48P__) \
2321 || defined(__AVR_ATmega88__) \
2322 || defined(__AVR_ATmega88A__) \
2323 || defined(__AVR_ATmega88P__) \
2324 || defined(__AVR_ATmega88PA__) \
2325 || defined(__AVR_ATmega168__) \
2326 || defined(__AVR_ATmega168A__) \
2327 || defined(__AVR_ATmega168P__) \
2328 || defined(__AVR_ATmega168PA__) \
2329 || defined(__AVR_ATmega328__) \
2330 || defined(__AVR_ATmega328P__) \
2331 || defined(__AVR_ATtiny441__) \
2332 || defined(__AVR_ATtiny828__) \
2333 || defined(__AVR_ATtiny841__) \
2334 || defined(__AVR_ATA6612C__) \
2335 || defined(__AVR_ATA6613C__) \
2336 || defined(__AVR_ATA6614Q__)
2338 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2339 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2341 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2342 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2344 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2345 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2347 #if defined(__AVR_ATtiny441__) \
2348 || defined(__AVR_ATtiny841__)
2350 #define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
2351 #define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
2355 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2356 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2358 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2359 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2361 #if !defined(__AVR_ATtiny828__)
2363 #define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
2364 #define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
2368 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2369 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2371 #if defined(__AVR_ATtiny828__)
2373 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2374 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2376 #elif defined(__AVR_ATtiny441__) \
2377 || defined(__AVR_ATtiny841__)
2379 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2380 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2384 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2385 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2389 #elif defined(__AVR_ATtiny48__) \
2390 || defined(__AVR_ATtiny88__)
2392 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2393 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2395 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2396 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2398 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2399 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2401 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2402 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2404 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2405 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2407 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2408 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2411 #elif defined(__AVR_ATtiny24__) \
2412 || defined(__AVR_ATtiny24A__) \
2413 || defined(__AVR_ATtiny44__) \
2414 || defined(__AVR_ATtiny44A__) \
2415 || defined(__AVR_ATtiny84__) \
2416 || defined(__AVR_ATtiny84A__) \
2417 || defined(__AVR_ATtiny25__) \
2418 || defined(__AVR_ATtiny45__) \
2419 || defined(__AVR_ATtiny85__) \
2420 || defined(__AVR_ATtiny261__) \
2421 || defined(__AVR_ATtiny261A__) \
2422 || defined(__AVR_ATtiny461__) \
2423 || defined(__AVR_ATtiny461A__) \
2424 || defined(__AVR_ATtiny861__) \
2425 || defined(__AVR_ATtiny861A__) \
2426 || defined(__AVR_ATtiny43U__)
2428 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2429 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2431 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2432 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2434 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2435 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2438 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2439 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2441 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2442 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2444 #elif defined(__AVR_ATmega1284__)
2446 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2447 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2449 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2450 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2452 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2453 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2455 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2456 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2458 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2459 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2461 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2462 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2464 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2465 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2467 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2468 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2470 #define power_all_enable() \
2472 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2473 PRR1 &= (uint8_t)~(1<<PRTIM3); \
2476 #define power_all_disable() \
2478 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2479 PRR1 |= (uint8_t)(1<<PRTIM3); \
2482 #elif defined(__AVR_ATmega1284P__)
2485 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2486 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2488 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2489 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2491 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2492 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2494 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2495 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2497 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2498 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2500 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2501 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2503 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2504 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2506 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2507 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2509 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
2510 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
2512 #define power_all_enable() \
2514 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
2515 PRR1 &= (uint8_t)~(1<<PRTIM3); \
2518 #define power_all_disable() \
2520 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
2521 PRR1 |= (uint8_t)(1<<PRTIM3); \
2525 #elif defined(__AVR_ATmega32HVB__) \
2526 || defined(__AVR_ATmega32HVBrevB__) \
2527 || defined(__AVR_ATmega16HVB__) \
2528 || defined(__AVR_ATmega16HVBrevB__)
2531 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2532 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2534 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2535 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2537 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2538 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2541 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
2542 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
2544 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2545 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2547 #define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
2548 #define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
2550 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
2551 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
2554 #elif defined (__AVR_ATA5790__) \
2555 || defined (__AVR_ATA5790N__) \
2556 || defined (__AVR_ATA5795__)
2559 #define power_vmonitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
2560 #define power_vmonitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
2562 #define power_irdriver_enable() (PRR0 &= (uint8_t)~(1 << PRDS))
2563 #define power_irdriver_disable() (PRR0 |= (uint8_t)(1 << PRDS))
2565 #define power_crypto_enable() (PRR0 &= (uint8_t)~(1 << PRCU))
2566 #define power_crypto_disable() (PRR0 |= (uint8_t)(1 << PRCU))
2568 #define power_timermodulator_enable() (PRR0 &= (uint8_t)~(1 << PRTM))
2569 #define power_timermodulator_disable() (PRR0 |= (uint8_t)(1 << PRTM))
2571 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRT1))
2572 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRT1))
2574 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRT2))
2575 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRT2))
2577 #define power_timer3_enable() (PRR0 &= (uint8_t)~(1 << PRT3))
2578 #define power_timer3_disable() (PRR0 |= (uint8_t)(1 << PRT3))
2580 #define power_spi_enable() (PRR1 &= (uint8_t)~(1 << PRSPI))
2581 #define power_spi_disable() (PRR1 |= (uint8_t)(1 << PRSPI))
2583 #define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
2584 #define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
2586 #if defined(__AVR_ATA5790__) \
2587 || defined(__AVR_ATA5790N__)
2589 #define power_lfreceiver_enable() (PRR0 &= (uint8_t)~(1 << PRLFR))
2590 #define power_lfreceiver_disable() (PRR0 |= (uint8_t)(1 << PRLFR))
2592 #define power_all_enable() \
2594 PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2595 PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2598 #define power_all_disable() \
2600 PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2601 PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2604 #elif defined(__AVR_ATA5795__)
2606 #define power_all_enable() \
2608 PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2609 PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2612 #define power_all_disable() \
2614 PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2615 PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2620 #elif defined(__AVR_ATA5831__) \
2621 || defined(__AVR_ATA5702M322__) \
2622 || defined(__AVR_ATA5782__)
2624 #if defined(__AVR_ATA5702M322__)
2626 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2627 #define power_twi_disable() (PRR0 &= (uint8_t)(1 << PRTWI))
2629 #define power_crypto_enable() (PRR0 &= (uint8_t)~(1 << PRCU))
2630 #define power_crypto_disable() (PRR0 |= (uint8_t)(1 << PRCU))
2634 #define power_clock_output_enable() (PRR0 &= (uint8_t)~(1 << PRCO))
2635 #define power_clock_output_disable() (PRR0 |= (uint8_t)(1 << PRCO))
2637 #define power_voltage_monitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
2638 #define power_voltage_monitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
2640 #define power_crc_enable() (PRR0 &= (uint8_t)~(1 << PRCRC))
2641 #define power_crc_disable() (PRR0 |= (uint8_t)(1 << PRCRC))
2643 #define power_transmit_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRTXDC))
2644 #define power_transmit_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRTXDC))
2646 #if defined(__AVR_ATA5831__) \
2647 || defined(__AVR_ATA5782__)
2649 #define power_receive_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRRXDC))
2650 #define power_receive_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRRXDC))
2654 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2655 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2657 #if defined (__AVR_ATA5702M322__)
2659 #define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
2660 #define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
2662 #define power_lfreceiver_enable() (PRR1 &= (uint8_t)~(1 << PRLFR))
2663 #define power_lfreceiver_disable() (PRR1 |= (uint8_t)(1 << PRLFR))
2667 #define power_timer1_enable() (PRR1 &= (uint8_t)~(1 << PRT1))
2668 #define power_timer1_disable() (PRR1 |= (uint8_t)(1 << PRT1))
2670 #define power_timer2_enable() (PRR1 &= (uint8_t)~(1 << PRT2))
2671 #define power_timer2_disable() (PRR1 |= (uint8_t)(1 << PRT2))
2673 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRT3))
2674 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRT3))
2676 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRT4))
2677 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRT4))
2679 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRT5))
2680 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRT5))
2682 #define power_sequencer_state_machine_enable() (PRR2 &= (uint8_t)~(1 << PRSSM))
2683 #define power_sequencer_state_machine_disable() (PRR2 |= (uint8_t)(1 << PRSSM))
2685 #define power_tx_modulator_enable() (PRR2 &= (uint8_t)~(1 << PRTM))
2686 #define power_tx_modulator_disable() (PRR2 |= (uint8_t)(1 << PRTM))
2688 #if defined(__AVR_ATA5831__) \
2689 || defined(__AVR_ATA5782__)
2691 #define power_rssi_buffer_enable() (PRR2 &= (uint8_t)~(1 << PRRS))
2692 #define power_rssi_buffer_disable() (PRR2 |= (uint8_t)(1 << PRRS))
2694 #define power_id_scan_enable() (PRR2 &= (uint8_t)~(1 << PRIDS))
2695 #define power_id_scan_disable() (PRR2 |= (uint8_t)(1 << PRIDS))
2697 #define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
2698 #define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
2700 #define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
2701 #define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
2705 #define power_data_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRDF))
2706 #define power_data_fifo_disable() (PRR2 |= (uint8_t)(1 << PRDF))
2708 #define power_preamble_rssi_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRSF))
2709 #define power_preamble_rssi_fifo_disable() (PRR2 |= (uint8_t)(1 << PRSF))
2711 #define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
2712 #define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
2714 #define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
2715 #define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
2717 #if defined(__AVR_ATA5831__) \
2718 || defined(__AVR_ATA5782__)
2720 #define power_all_enable() \
2722 PRR0 &= (uint8_t)~((1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRRXDC) | (1 << PRSPI)); \
2723 PRR1 &= (uint8_t)~((1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2724 PRR2 &= (uint8_t)~((1 << PRSSM) | (1 << PRTM) | (1 << PRRS) | (1 << PRIDS) | (1 << PRDF) | (1 << PRSF) | (1 << PRXA) | (1 << PRXB)); \
2727 #define power_all_disable() \
2729 PRR0 |= (uint8_t)((1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRRXDC) | (1 << PRSPI)); \
2730 PRR1 |= (uint8_t)((1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2731 PRR2 |= (uint8_t)((1 << PRSSM) | (1 << PRTM) | (1 << PRRS) | (1 << PRIDS) | (1 << PRDF) | (1 << PRSF) | (1 << PRXA) | (1 << PRXB)); \
2734 #elif defined (__AVR_ATA5702M322__)
2736 #define power_all_enable() \
2738 PRR0 &= (uint8_t)~((1 << PRTWI) | (1 << PRCU) | (1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRSPI)); \
2739 PRR1 &= (uint8_t)~((1 << PRCI) | (1 << PRLFR)| (1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2740 PRR2 &= (uint8_t)~((1 << PRSSM) | (1 << PRTM) | (1 << PRDF) | (1 << PRSF)); \
2743 #define power_all_disable() \
2745 PRR0 &= (uint8_t)((1 << PRTWI) | (1 << PRCU) | (1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRSPI)); \
2746 PRR1 &= (uint8_t)((1 << PRCI) | (1 << PRLFR)| (1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2747 PRR2 &= (uint8_t)((1 << PRSSM) | (1 << PRTM) | (1 << PRDF) | (1 << PRSF)); \
2752 #elif defined(__AVR_ATmega64HVE__) \
2753 || defined(__AVR_ATmega64HVE2__)
2755 #define power_lin_enable() (PRR0 &= (uint8_t)~(1 << PRLIN))
2756 #define power_lin_disable() (PRR0 |= (uint8_t)(1 << PRLIN))
2758 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2759 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2761 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2762 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2764 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2765 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2767 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)))
2768 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)))
2770 #elif defined(__AVR_ATmega16M1__) \
2771 || defined(__AVR_ATmega32C1__) \
2772 || defined(__AVR_ATmega32M1__) \
2773 || defined(__AVR_ATmega64C1__) \
2774 || defined(__AVR_ATmega64M1__)
2776 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2777 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2779 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
2780 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
2782 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2783 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2785 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2786 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2788 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2789 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2791 #define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
2792 #define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
2794 #define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
2795 #define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
2797 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
2798 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
2801 #elif defined(__AVR_ATtiny167__) \
2802 || defined(__AVR_ATtiny87__) \
2803 || defined(__AVR_ATA5505__) \
2804 || defined(__AVR_ATA5272__) \
2805 || defined(__AVR_ATA6616C__) \
2806 || defined(__AVR_ATA6617C__) \
2807 || defined(__AVR_ATA664251__)
2809 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2810 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2812 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2813 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2815 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2816 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2818 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2819 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2821 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2822 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2824 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
2825 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
2827 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
2828 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
2831 #elif defined(__AVR_ATtiny1634__)
2833 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2834 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2836 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2837 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2839 #define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
2840 #define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
2842 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2843 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2845 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2846 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2848 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2849 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2851 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2852 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2854 #define power_all_enable() (PRR &= (uint8_t)~((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2855 #define power_all_disable() (PRR |= (uint8_t)((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2858 #elif defined(__AVR_AT90USB82__) \
2859 || defined(__AVR_AT90USB162__) \
2860 || defined(__AVR_ATmega8U2__) \
2861 || defined(__AVR_ATmega16U2__) \
2862 || defined(__AVR_ATmega32U2__)
2864 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2865 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2867 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2868 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2870 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2871 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2873 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2874 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2876 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2877 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2879 #define power_all_enable() \
2881 PRR0 &= (uint8_t)~((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
2882 PRR1 &= (uint8_t)~((1<<PRUSB)|(1<<PRUSART1)); \
2885 #define power_all_disable() \
2887 PRR0 |= (uint8_t)((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
2888 PRR1 |= (uint8_t)((1<<PRUSB)|(1<<PRUSART1)); \
2892 #elif defined(__AVR_AT90SCR100__)
2894 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2895 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2897 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2898 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2900 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2901 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2903 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2904 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2906 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2907 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2909 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2910 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2912 #define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
2913 #define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
2915 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2916 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2918 #define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
2919 #define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
2921 #define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
2922 #define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
2924 #define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
2925 #define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
2927 #define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
2928 #define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
2930 #define power_all_enable() \
2932 PRR0 &= (uint8_t)~((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
2933 PRR1 &= (uint8_t)~((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
2936 #define power_all_disable() \
2938 PRR0 |= (uint8_t)((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
2939 PRR1 |= (uint8_t)((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
2943 #elif defined(__AVR_ATtiny4__) \
2944 || defined(__AVR_ATtiny5__) \
2945 || defined(__AVR_ATtiny9__) \
2946 || defined(__AVR_ATtiny10__) \
2947 || defined(__AVR_ATtiny13A__) \
2949 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2950 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2952 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2953 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2955 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)))
2956 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)))
2959 #elif defined(__AVR_ATtiny20__) \
2960 || defined(__AVR_ATtiny40__)
2962 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2963 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2965 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2966 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2968 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2969 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2971 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2972 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2974 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2975 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2977 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
2978 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
2983 #if defined(__AVR_AT90CAN32__) \
2984 || defined(__AVR_AT90CAN64__) \
2985 || defined(__AVR_AT90CAN128__) \
2986 || defined(__AVR_AT90PWM1__) \
2987 || defined(__AVR_AT90PWM2__) \
2988 || defined(__AVR_AT90PWM2B__) \
2989 || defined(__AVR_AT90PWM3__) \
2990 || defined(__AVR_AT90PWM3B__) \
2991 || defined(__AVR_AT90PWM81__) \
2992 || defined(__AVR_AT90PWM161__) \
2993 || defined(__AVR_AT90PWM216__) \
2994 || defined(__AVR_AT90PWM316__) \
2995 || defined(__AVR_AT90SCR100__) \
2996 || defined(__AVR_AT90USB646__) \
2997 || defined(__AVR_AT90USB647__) \
2998 || defined(__AVR_AT90USB82__) \
2999 || defined(__AVR_AT90USB1286__) \
3000 || defined(__AVR_AT90USB1287__) \
3001 || defined(__AVR_AT90USB162__) \
3002 || defined(__AVR_ATA5505__) \
3003 || defined(__AVR_ATA5272__) \
3004 || defined(__AVR_ATA6617C__) \
3005 || defined(__AVR_ATA664251__) \
3006 || defined(__AVR_ATmega1280__) \
3007 || defined(__AVR_ATmega1281__) \
3008 || defined(__AVR_ATmega1284__) \
3009 || defined(__AVR_ATmega128RFA1__) \
3010 || defined(__AVR_ATmega128RFR2__) \
3011 || defined(__AVR_ATmega1284RFR2__) \
3012 || defined(__AVR_ATmega1284P__) \
3013 || defined(__AVR_ATmega162__) \
3014 || defined(__AVR_ATmega164A__) \
3015 || defined(__AVR_ATmega164P__) \
3016 || defined(__AVR_ATmega164PA__) \
3017 || defined(__AVR_ATmega165__) \
3018 || defined(__AVR_ATmega165A__) \
3019 || defined(__AVR_ATmega165P__) \
3020 || defined(__AVR_ATmega165PA__) \
3021 || defined(__AVR_ATmega168__) \
3022 || defined(__AVR_ATmega168A__) \
3023 || defined(__AVR_ATmega168P__) \
3024 || defined(__AVR_ATmega168PA__) \
3025 || defined(__AVR_ATmega169__) \
3026 || defined(__AVR_ATmega169A__) \
3027 || defined(__AVR_ATmega169P__) \
3028 || defined(__AVR_ATmega169PA__) \
3029 || defined(__AVR_ATmega16M1__) \
3030 || defined(__AVR_ATmega16U2__) \
3031 || defined(__AVR_ATmega324PA__) \
3032 || defined(__AVR_ATmega16U4__) \
3033 || defined(__AVR_ATmega2560__) \
3034 || defined(__AVR_ATmega2561__) \
3035 || defined(__AVR_ATmega256RFR2__) \
3036 || defined(__AVR_ATmega2564RFR2__) \
3037 || defined(__AVR_ATmega324A__) \
3038 || defined(__AVR_ATmega324P__) \
3039 || defined(__AVR_ATmega325__) \
3040 || defined(__AVR_ATmega325A__) \
3041 || defined(__AVR_ATmega325P__) \
3042 || defined(__AVR_ATmega325PA__) \
3043 || defined(__AVR_ATmega3250__) \
3044 || defined(__AVR_ATmega3250A__) \
3045 || defined(__AVR_ATmega3250P__) \
3046 || defined(__AVR_ATmega3250PA__) \
3047 || defined(__AVR_ATmega328__) \
3048 || defined(__AVR_ATmega328P__) \
3049 || defined(__AVR_ATmega329__) \
3050 || defined(__AVR_ATmega329A__) \
3051 || defined(__AVR_ATmega329P__) \
3052 || defined(__AVR_ATmega329PA__) \
3053 || defined(__AVR_ATmega3290__) \
3054 || defined(__AVR_ATmega3290A__) \
3055 || defined(__AVR_ATmega3290P__) \
3056 || defined(__AVR_ATmega3290PA__) \
3057 || defined(__AVR_ATmega32C1__) \
3058 || defined(__AVR_ATmega32M1__) \
3059 || defined(__AVR_ATmega32U2__) \
3060 || defined(__AVR_ATmega32U4__) \
3061 || defined(__AVR_ATmega32U6__) \
3062 || defined(__AVR_ATmega48__) \
3063 || defined(__AVR_ATmega48A__) \
3064 || defined(__AVR_ATmega48PA__) \
3065 || defined(__AVR_ATmega48P__) \
3066 || defined(__AVR_ATmega640__) \
3067 || defined(__AVR_ATmega649P__) \
3068 || defined(__AVR_ATmega644__) \
3069 || defined(__AVR_ATmega644A__) \
3070 || defined(__AVR_ATmega644P__) \
3071 || defined(__AVR_ATmega644PA__) \
3072 || defined(__AVR_ATmega645__) \
3073 || defined(__AVR_ATmega645A__) \
3074 || defined(__AVR_ATmega645P__) \
3075 || defined(__AVR_ATmega6450__) \
3076 || defined(__AVR_ATmega6450A__) \
3077 || defined(__AVR_ATmega6450P__) \
3078 || defined(__AVR_ATmega649__) \
3079 || defined(__AVR_ATmega649A__) \
3080 || defined(__AVR_ATmega64M1__) \
3081 || defined(__AVR_ATmega64C1__) \
3082 || defined(__AVR_ATmega88A__) \
3083 || defined(__AVR_ATmega88PA__) \
3084 || defined(__AVR_ATmega6490__) \
3085 || defined(__AVR_ATmega6490A__) \
3086 || defined(__AVR_ATmega6490P__) \
3087 || defined(__AVR_ATmega64RFR2__) \
3088 || defined(__AVR_ATmega644RFR2__) \
3089 || defined(__AVR_ATmega88__) \
3090 || defined(__AVR_ATmega88P__) \
3091 || defined(__AVR_ATmega8U2__) \
3092 || defined(__AVR_ATmega16U2__) \
3093 || defined(__AVR_ATmega32U2__) \
3094 || defined(__AVR_ATtiny48__) \
3095 || defined(__AVR_ATtiny88__) \
3096 || defined(__AVR_ATtiny87__) \
3097 || defined(__AVR_ATtiny167__) \
3098 || defined(__DOXYGEN__)
3165 #if defined(__AVR_ATmega128RFA1__) \
3166 || defined(__AVR_ATmega256RFR2__) \
3167 || defined(__AVR_ATmega2564RFR2__) \
3168 || defined(__AVR_ATmega128RFR2__) \
3169 || defined(__AVR_ATmega1284RFR2__) \
3170 || defined(__AVR_ATmega64RFR2__) \
3171 || defined(__AVR_ATmega644RFR2__)
3172 , clock_div_1_rc = 15
3177 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3191 void clock_prescale_set(clock_div_t __x)
3194 __asm__ __volatile__ (
3195 "in __tmp_reg__,__SREG__" "\n\t"
3199 "out __SREG__, __tmp_reg__"
3202 "M" (_SFR_MEM_ADDR(CLKPR)),
3216 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3218 #elif defined(__AVR_ATmega16HVB__) \
3219 || defined(__AVR_ATmega16HVBrevB__) \
3220 || defined(__AVR_ATmega64HVE__) \
3221 || defined(__AVR_ATmega32HVB__) \
3222 || defined(__AVR_ATmega32HVBrevB__) \
3223 || defined(__AVR_ATmega64HVE2__)
3233 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3235 void clock_prescale_set(clock_div_t __x)
3238 __asm__ __volatile__ (
3239 "in __tmp_reg__,__SREG__" "\n\t"
3243 "out __SREG__, __tmp_reg__"
3246 "M" (_SFR_MEM_ADDR(CLKPR)),
3251 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
3253 #elif defined(__AVR_ATA5790__) \
3254 || defined (__AVR_ATA5790N__) \
3255 || defined (__AVR_ATA5795__)
3269 static __inline__
void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3271 void system_clock_prescale_set(clock_div_t __x)
3274 __asm__ __volatile__ (
3275 "in __tmp_reg__,__SREG__" "\n\t"
3279 "out __SREG__, __tmp_reg__"
3282 "I" (_SFR_IO_ADDR(CLKPR)),
3287 #define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
3291 timer_clock_div_reset = 0,
3292 timer_clock_div_1 = 1,
3293 timer_clock_div_2 = 2,
3294 timer_clock_div_4 = 3,
3295 timer_clock_div_8 = 4,
3296 timer_clock_div_16 = 5,
3297 timer_clock_div_32 = 6,
3298 timer_clock_div_64 = 7
3299 } timer_clock_div_t;
3301 static __inline__
void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
3303 void timer_clock_prescale_set(timer_clock_div_t __x)
3306 __asm__ __volatile__ (
3307 "in __tmp_reg__,__SREG__" "\n\t"
3309 "in %[temp],%[clkpr]" "\n\t"
3310 "out %[clkpr],%[enable]" "\n\t"
3311 "andi %[temp],%[not_CLTPS]" "\n\t"
3312 "or %[temp], %[set_value]" "\n\t"
3313 "out %[clkpr],%[temp]" "\n\t"
3315 "out __SREG__,__tmp_reg__" "\n\t"
3318 [clkpr]
"I" (_SFR_IO_ADDR(CLKPR)),
3319 [enable]
"r" (
_BV(CLKPCE)),
3320 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
3321 [set_value]
"r" ((__x & 7) << 3)
3325 #define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
3327 #elif defined(__AVR_ATA6285__) \
3328 || defined(__AVR_ATA6286__) \
3329 || defined(__AVR_ATA6289__) \
3330 || defined(__AVR_ATA5702M322__) \
3331 || defined(__AVR_ATA5782__) \
3332 || defined(__AVR_ATA5831__)
3346 static __inline__
void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3348 void system_clock_prescale_set(clock_div_t __x)
3351 __asm__ __volatile__ (
3352 "in __tmp_reg__,__SREG__" "\n\t"
3354 "in %[temp],%[clpr]" "\n\t"
3355 "out %[clpr],%[enable]" "\n\t"
3356 "andi %[temp],%[not_CLKPS]" "\n\t"
3357 "or %[temp], %[set_value]" "\n\t"
3358 "out %[clpr],%[temp]" "\n\t"
3360 "out __SREG__,__tmp_reg__" "\n\t"
3363 #
if defined(__AVR_ATA6286__) \
3364 || defined(__AVR_ATA6285__) \
3365 || defined(__AVR_ATA6289__)
3366 [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
3367 #elif defined(__AVR_ATA5831__) \
3368 || defined(__AVR_ATA5702M322__) \
3369 || defined(__AVR_ATA5782__)
3370 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
3372 [enable]
"r" _BV(CLPCE),
3373 [not_CLKPS]
"M" (0xFF & (~ ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)))),
3374 [set_value]
"r" (__x & 7)
3378 #if defined(__AVR_ATA6286__) \
3379 || defined(__AVR_ATA6285__) \
3380 || defined(__AVR_ATA6289__)
3382 #define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
3384 #elif defined(__AVR_ATA5831__) \
3385 || defined(__AVR_ATA5702M322__) \
3386 || defined(__AVR_ATA5782__)
3388 #define system_clock_prescale_get() (clock_div_t)(CLPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
3394 timer_clock_div_reset = 0,
3395 timer_clock_div_1 = 1,
3396 timer_clock_div_2 = 2,
3397 timer_clock_div_4 = 3,
3398 timer_clock_div_8 = 4,
3399 timer_clock_div_16 = 5,
3400 timer_clock_div_32 = 6,
3401 timer_clock_div_64 = 7
3402 } timer_clock_div_t;
3404 static __inline__
void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
3406 void timer_clock_prescale_set(timer_clock_div_t __x)
3409 __asm__ __volatile__ (
3410 "in __tmp_reg__,__SREG__" "\n\t"
3412 "in %[temp],%[clpr]" "\n\t"
3413 "out %[clpr],%[enable]" "\n\t"
3414 "andi %[temp],%[not_CLTPS]" "\n\t"
3415 "or %[temp], %[set_value]" "\n\t"
3416 "out %[clpr],%[temp]" "\n\t"
3418 "out __SREG__,__tmp_reg__" "\n\t"
3421 #
if defined(__AVR_ATA6286__) \
3422 || defined(__AVR_ATA6285__) \
3423 || defined(__AVR_ATA6289__)
3424 [clpr]
"I" (_SFR_IO_ADDR(CLKPR)),
3425 #elif defined(__AVR_ATA5831__) \
3426 || defined(__AVR_ATA5702M322__) \
3427 || defined(__AVR_ATA5782__)
3428 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
3430 [enable]
"r" (
_BV(CLPCE)),
3431 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
3432 [set_value]
"r" ((__x & 7) << 3)
3436 #if defined(__AVR_ATA6286__) \
3437 || defined(__AVR_ATA6285__) \
3438 || defined(__AVR_ATA6289__)
3440 #define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
3442 #elif defined(__AVR_ATA5831__) \
3443 || defined(__AVR_ATA5702M322__) \
3444 || defined(__AVR_ATA5782__)
3446 #define timer_clock_prescale_get() (timer_clock_div_t)(CLPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
3449 #elif defined(__AVR_ATtiny24__) \
3450 || defined(__AVR_ATtiny24A__) \
3451 || defined(__AVR_ATtiny44__) \
3452 || defined(__AVR_ATtiny44A__) \
3453 || defined(__AVR_ATtiny84__) \
3454 || defined(__AVR_ATtiny84A__) \
3455 || defined(__AVR_ATtiny25__) \
3456 || defined(__AVR_ATtiny45__) \
3457 || defined(__AVR_ATtiny85__) \
3458 || defined(__AVR_ATtiny261A__) \
3459 || defined(__AVR_ATtiny261__) \
3460 || defined(__AVR_ATtiny461__) \
3461 || defined(__AVR_ATtiny461A__) \
3462 || defined(__AVR_ATtiny861__) \
3463 || defined(__AVR_ATtiny861A__) \
3464 || defined(__AVR_ATtiny2313__) \
3465 || defined(__AVR_ATtiny2313A__) \
3466 || defined(__AVR_ATtiny4313__) \
3467 || defined(__AVR_ATtiny13__) \
3468 || defined(__AVR_ATtiny13A__) \
3469 || defined(__AVR_ATtiny43U__) \
3484 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3486 void clock_prescale_set(clock_div_t __x)
3489 __asm__ __volatile__ (
3490 "in __tmp_reg__,__SREG__" "\n\t"
3494 "out __SREG__, __tmp_reg__"
3497 "I" (_SFR_IO_ADDR(CLKPR)),
3503 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3505 #elif defined(__AVR_ATtiny441__) \
3506 || defined(__AVR_ATtiny841__)
3521 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3523 void clock_prescale_set(clock_div_t __x)
3526 __asm__ __volatile__ (
3527 "in __tmp_reg__,__SREG__" "\n\t"
3531 "out __SREG__, __tmp_reg__"
3534 "M" (_SFR_MEM_ADDR(CLKPR)),
3535 "M" (_SFR_MEM_ADDR(CCP)),
3541 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3543 #elif defined(__AVR_ATtiny4__) \
3544 || defined(__AVR_ATtiny5__) \
3545 || defined(__AVR_ATtiny9__) \
3546 || defined(__AVR_ATtiny10__) \
3547 || defined(__AVR_ATtiny20__) \
3548 || defined(__AVR_ATtiny40__) \
3563 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3565 void clock_prescale_set(clock_div_t __x)
3568 __asm__ __volatile__ (
3569 "in __tmp_reg__,__SREG__" "\n\t"
3573 "out __SREG__, __tmp_reg__"
3576 "I" (_SFR_IO_ADDR(CCP)),
3577 "I" (_SFR_IO_ADDR(CLKPSR)),
3582 #define clock_prescale_get() (clock_div_t)(CLKPSR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3584 #elif defined(__AVR_ATmega64__) \
3585 || defined(__AVR_ATmega103__) \
3586 || defined(__AVR_ATmega128__)
3601 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3603 void clock_prescale_set(clock_div_t __x)
3605 if((__x <= 0) || (__x > 129))
3622 __asm__ __volatile__ (
3623 "in __tmp_reg__,__SREG__" "\n\t"
3625 "out %1, __zero_reg__" "\n\t"
3634 "cpi %0, 0x01" "\n\t"
3636 "ldi %2, 0x81" "\n\t"
3638 "ori %2, 0x80" "\n\t"
3648 "L_%=: " "out __SREG__, __tmp_reg__"
3651 "I" (_SFR_IO_ADDR(XDIV)),
3657 static __inline__ clock_div_t clock_prescale_get(
void) __attribute__((__always_inline__));
3659 clock_div_t clock_prescale_get(
void)
3667 return (clock_div_t)(129 - (XDIV & 0x7F));
#define bit_is_clear(sfr, bit)
Definition: sfr_defs.h:245
unsigned char uint8_t
Definition: stdint.h:79
#define _BV(bit)
Definition: sfr_defs.h:208