32 #define _AVR_POWER_H_ 1
1215 #if defined(__AVR_ATxmega16A4__) \
1216 || defined(__AVR_ATxmega16A4U__) \
1217 || defined(__AVR_ATxmega32A4U__) \
1218 || defined(__AVR_ATxmega32A4__) \
1219 || defined(__AVR_ATxmega64A1__) \
1220 || defined(__AVR_ATxmega64A1U__) \
1221 || defined(__AVR_ATxmega64A3__) \
1222 || defined(__AVR_ATxmega64A3U__) \
1223 || defined(__AVR_ATxmega64A4U__) \
1224 || defined(__AVR_ATxmega128A1__) \
1225 || defined(__AVR_ATxmega128A1U__) \
1226 || defined(__AVR_ATxmega128A3__) \
1227 || defined(__AVR_ATxmega128A3U__) \
1228 || defined(__AVR_ATxmega128A4U__) \
1229 || defined(__AVR_ATxmega192A3__) \
1230 || defined(__AVR_ATxmega192A3U__) \
1231 || defined(__AVR_ATxmega256A3__) \
1232 || defined(__AVR_ATxmega256A3U__) \
1233 || defined(__AVR_ATxmega256A3B__) \
1234 || defined(__AVR_ATxmega256A3BU__) \
1235 || defined(__AVR_ATxmega384C3__)
1238 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1239 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1241 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
1242 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
1244 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1245 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1247 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
1248 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
1249 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
1250 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
1252 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1253 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1254 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1255 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1256 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1257 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1258 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1259 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1261 #if defined(__AVR_ATxmega384C3__) \
1262 || defined(__AVR_ATxmega256A3BU__) \
1263 || defined(__AVR_ATxmega16A4U__) \
1264 || defined(__AVR_ATxmega32A4U__) \
1265 || defined(__AVR_ATxmega64A3U__) \
1266 || defined(__AVR_ATxmega64A4U__) \
1267 || defined(__AVR_ATxmega128A3U__) \
1268 || defined(__AVR_ATxmega128A4U__) \
1269 || defined(__AVR_ATxmega192A3U__) \
1270 || defined(__AVR_ATxmega256A3U__)
1272 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1273 #define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1275 #define power_all_enable() \
1277 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1278 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1279 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1280 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); \
1281 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); \
1282 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); \
1283 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); \
1286 #define power_all_disable() \
1288 PR_PRGEN |= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm|PR_USB_bm); \
1289 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1290 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1291 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); \
1292 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); \
1293 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); \
1294 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); \
1299 #define power_all_enable() \
1301 PR_PRGEN &= (uint8_t)~(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1302 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1303 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1304 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); \
1305 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); \
1306 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); \
1307 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); \
1311 #define power_all_disable() \
1313 PR_PRGEN|= (uint8_t)(PR_AES_bm|PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1314 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1315 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1316 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); \
1317 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); \
1318 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); \
1319 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); \
1325 #if defined(__AVR_ATxmega16C4__) \
1326 || defined(__AVR_ATxmega32C4__) \
1327 || defined(__AVR_ATxmega64C3__) \
1328 || defined(__AVR_ATxmega128C3__) \
1329 || defined(__AVR_ATxmega192C3__) \
1330 || defined(__AVR_ATxmega256C3__)
1332 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1333 #define power_usb_disable() (PR_PRGEN &= (uint8_t)(PR_USB_bm))
1335 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1336 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1338 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1339 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1341 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1342 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1344 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1345 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1347 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1348 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1350 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1351 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1353 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1354 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1355 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1356 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1358 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1359 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1361 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1362 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1363 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1364 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1365 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1366 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1367 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1368 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1370 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1371 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1372 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1373 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1375 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1376 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1378 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1379 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1381 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1382 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1383 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1384 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1385 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1386 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1387 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1388 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1390 #define power_all_enable() \
1392 PR_PRGEN &= (uint8_t)~(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1393 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1394 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); \
1395 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1396 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1397 PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1400 #define power_all_disable() \
1402 PR_PRGEN |= (uint8_t)(PR_USB_bm|PR_AES_bm|PR_DMA_bm|PR_RTC_bm|PR_EVSYS_bm); \
1403 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1404 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); \
1405 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1406 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1407 PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1412 #if defined(__AVR_ATxmega16A4__) \
1413 || defined(__AVR_ATxmega16A4U__) \
1414 || defined(__AVR_ATxmega16D4__) \
1415 || defined(__AVR_ATxmega32A4__) \
1416 || defined(__AVR_ATxmega32A4U__) \
1417 || defined(__AVR_ATxmega32D4__) \
1418 || defined(__AVR_ATxmega64A1__) \
1419 || defined(__AVR_ATxmega64A1U__) \
1420 || defined(__AVR_ATxmega64A3__) \
1421 || defined(__AVR_ATxmega64A3U__) \
1422 || defined(__AVR_ATxmega64A4U__) \
1423 || defined(__AVR_ATxmega64D3__) \
1424 || defined(__AVR_ATxmega128A1__) \
1425 || defined(__AVR_ATxmega128A1U__) \
1426 || defined(__AVR_ATxmega128A3__) \
1427 || defined(__AVR_ATxmega128A3U__) \
1428 || defined(__AVR_ATxmega128A4U__) \
1429 || defined(__AVR_ATxmega128D3__) \
1430 || defined(__AVR_ATxmega192A3__) \
1431 || defined(__AVR_ATxmega192A3U__) \
1432 || defined(__AVR_ATxmega192D3__) \
1433 || defined(__AVR_ATxmega256A3__) \
1434 || defined(__AVR_ATxmega256A3U__) \
1435 || defined(__AVR_ATxmega256A3B__) \
1436 || defined(__AVR_ATxmega256A3BU__) \
1437 || defined(__AVR_ATxmega384C3__)
1440 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1441 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1443 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1444 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1446 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1447 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1448 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
1449 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
1451 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1452 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1453 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
1454 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
1456 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1457 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1458 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1459 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1460 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1461 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1462 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1463 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1465 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1466 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1467 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1468 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1469 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1470 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1471 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1472 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1474 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1475 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1476 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1477 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1478 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1479 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1480 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1481 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1483 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1484 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1485 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
1486 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
1487 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1488 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1489 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1490 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1492 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1493 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1494 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
1495 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
1496 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1497 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1498 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1499 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1501 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1502 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1503 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1504 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1505 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1506 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1507 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1508 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1512 #if defined(__AVR_ATxmega64D4__) \
1513 || defined(__AVR_ATxmega128D4__)
1515 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1516 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1518 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1519 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1521 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1522 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1524 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1525 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1527 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1528 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1529 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1530 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1532 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1533 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1534 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1535 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1536 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1537 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1538 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1539 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1541 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1542 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1543 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1544 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1546 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1547 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1549 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1550 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1552 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1553 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1554 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1555 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1556 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1557 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1558 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1559 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1561 #define power_all_enable() \
1563 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
1564 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1565 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1566 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1567 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1568 PR_PRPF &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1571 #define power_all_disable() \
1573 PR_PRGEN |= (uint8_t)(PR_RTC_bm|PR_EVSYS_bm); \
1574 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1575 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1576 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_SPI_bm|PR_TC0_bm); \
1577 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_TC0_bm); \
1578 PR_PRPF |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1583 #if defined(__AVR_ATxmega16D4__) \
1584 || defined(__AVR_ATxmega32D4__) \
1585 || defined(__AVR_ATxmega64D3__) \
1586 || defined(__AVR_ATxmega128D3__) \
1587 || defined(__AVR_ATxmega192D3__)
1589 #define power_all_enable() \
1591 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm); \
1592 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1593 PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1594 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1595 PR_PRPD &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1596 PR_PRPE &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1597 PR_PRPF &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1601 #define power_all_disable() \
1603 PR_PRGEN|= (uint8_t)(PR_EBI_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1604 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1605 PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1606 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1607 PR_PRPD |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1608 PR_PRPE |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1609 PR_PRPF |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1613 #elif defined(__AVR_ATxmega32E5__)
1615 #define power_cpld_enable() (PR_PRGEN &= (uint8_t)~(PR_CPLD_bm))
1616 #define power_cpld_disable() (PR_PRGEN |= (uint8_t)PR_CPLD_bm)
1618 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1619 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1621 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1622 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1624 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1625 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1627 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
1628 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
1630 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1631 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1633 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1634 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1636 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1637 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1639 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1640 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1642 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1643 #define power_spic_disalbe() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1645 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1646 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1648 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1649 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1651 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1652 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1654 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1655 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1657 #define power_tc1d_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1658 #define power_tc1d_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1660 #define power_all_enable() \
1662 PR_PRGEN &= (uint8_t)~(PR_RTC_bm|PR_EVSYS_bm|PR_CPLD_bm|PR_DMA_bm); \
1663 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm|PR_DAC_bm); \
1664 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1665 PR_PRPD &= (uint8_t)~(PR_USART0_bm|PR_TC1_bm); \
1669 #define power_all_disable() \
1671 PR_PRGEN|= (uint8_t)(PR_CPLD_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1672 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm|PR_DAC_bm); \
1673 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1674 PR_PRPD |= (uint8_t)(PR_USART0_bm|PR_TC1_bm); \
1678 #elif defined (__AVR_ATxmega64B1__) \
1679 || defined (__AVR_ATxmega64B3__) \
1680 || defined (__AVR_ATxmega128B1__) \
1681 || defined (__AVR_ATxmega128B3__)
1682 #define power_lcd_enable() (PR_PRGEN &= (uint8_t)~(PR_LCD_bm))
1683 #define power_lcd_disable() (PR_PRGEN |= (uint8_t)PR_LCD_bm)
1685 #define power_usb_enable() (PR_PRGEN &= (uint8_t)~(PR_USB_bm))
1686 #define power_usb_disable() (PR_PRGEN |= (uint8_t)PR_USB_bm)
1688 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1689 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1691 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1692 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1694 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1695 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1697 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1698 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1700 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1701 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1702 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
1703 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
1705 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1706 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1707 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
1708 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
1710 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1711 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1713 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1714 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1715 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1716 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1718 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1719 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1721 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1722 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1724 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1725 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1727 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1728 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1729 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1730 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1732 #define power_all_enable() \
1734 PR_PRGEN &= (uint8_t)~(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1735 PR_PRPA &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1736 PR_PRPB &= (uint8_t)~(PR_ADC_bm|PR_AC_bm); \
1737 PR_PRPC &= (uint8_t)~(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1738 PR_PRPE &= (uint8_t)~(PR_USART0_bm|PR_TC0_bm); \
1741 #define power_all_disable() \
1743 PR_PRGEN |= (uint8_t)(PR_LCD_bm|PR_USB_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1744 PR_PRPA |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1745 PR_PRPB |= (uint8_t)(PR_ADC_bm|PR_AC_bm); \
1746 PR_PRPC |= (uint8_t)(PR_TWI_bm|PR_USART0_bm|PR_SPI_bm|PR_HIRES_bm|PR_TC1_bm|PR_TC0_bm); \
1747 PR_PRPE |= (uint8_t)(PR_USART0_bm|PR_TC0_bm); \
1750 #elif defined (__AVR_ATMXT112SL__) \
1751 || defined (__AVR_ATMXT224__) \
1752 || defined (__AVR_ATMXT224E__) \
1753 || defined (__AVR_ATMXT336S__) \
1754 || defined (__AVR_ATMXT540S__) \
1755 || defined (__AVR_ATMXT540SREVA__)
1757 #define power_ctm_enable() (PR_PRGEN &= (uint8_t)~(PR_CTM_bm))
1758 #define power_ctm_disable() (PR_PRGEN |= (uint8_t)PR_CTM_bm)
1760 #define power_aes_enable() (PR_PRGEN &= (uint8_t)~(PR_AES_bm))
1761 #define power_aes_disable() (PR_PRGEN |= (uint8_t)PR_AES_bm)
1763 #define power_ebi_enable() (PR_PRGEN &= (uint8_t)~(PR_EBI_bm))
1764 #define power_ebi_disable() (PR_PRGEN |= (uint8_t)PR_EBI_bm)
1766 #define power_rtc_enable() (PR_PRGEN &= (uint8_t)~(PR_RTC_bm))
1767 #define power_rtc_disable() (PR_PRGEN |= (uint8_t)PR_RTC_bm)
1769 #define power_evsys_enable() (PR_PRGEN &= (uint8_t)~(PR_EVSYS_bm))
1770 #define power_evsys_disable() (PR_PRGEN |= (uint8_t)PR_EVSYS_bm)
1772 #define power_dma_enable() (PR_PRGEN &= (uint8_t)~(PR_DMA_bm))
1773 #define power_dma_disable() (PR_PRGEN |= (uint8_t)PR_DMA_bm)
1775 #define power_daca_enable() (PR_PRPA &= (uint8_t)~(PR_DAC_bm))
1776 #define power_daca_disable() (PR_PRPA |= (uint8_t)PR_DAC_bm)
1777 #define power_dacb_enable() (PR_PRPB &= (uint8_t)~(PR_DAC_bm))
1778 #define power_dacb_disable() (PR_PRPB |= (uint8_t)PR_DAC_bm)
1780 #define power_adca_enable() (PR_PRPA &= (uint8_t)~(PR_ADC_bm))
1781 #define power_adca_disable() (PR_PRPA |= (uint8_t)PR_ADC_bm)
1782 #define power_adcb_enable() (PR_PRPB &= (uint8_t)~(PR_ADC_bm))
1783 #define power_adcb_disable() (PR_PRPB |= (uint8_t)PR_ADC_bm)
1785 #define power_aca_enable() (PR_PRPA &= (uint8_t)~(PR_AC_bm))
1786 #define power_aca_disable() (PR_PRPA |= (uint8_t)PR_AC_bm)
1787 #define power_acb_enable() (PR_PRPB &= (uint8_t)~(PR_AC_bm))
1788 #define power_acb_disable() (PR_PRPB |= (uint8_t)PR_AC_bm)
1790 #define power_twic_enable() (PR_PRPC &= (uint8_t)~(PR_TWI_bm))
1791 #define power_twic_disable() (PR_PRPC |= (uint8_t)PR_TWI_bm)
1792 #define power_twid_enable() (PR_PRPD &= (uint8_t)~(PR_TWI_bm))
1793 #define power_twid_disable() (PR_PRPD |= (uint8_t)PR_TWI_bm)
1794 #define power_twie_enable() (PR_PRPE &= (uint8_t)~(PR_TWI_bm))
1795 #define power_twie_disable() (PR_PRPE |= (uint8_t)PR_TWI_bm)
1796 #define power_twif_enable() (PR_PRPF &= (uint8_t)~(PR_TWI_bm))
1797 #define power_twif_disable() (PR_PRPF |= (uint8_t)PR_TWI_bm)
1799 #define power_usartc1_enable() (PR_PRPC &= (uint8_t)~(PR_USART1_bm))
1800 #define power_usartc1_disable() (PR_PRPC |= (uint8_t)PR_USART1_bm)
1801 #define power_usartd1_enable() (PR_PRPD &= (uint8_t)~(PR_USART1_bm))
1802 #define power_usartd1_disable() (PR_PRPD |= (uint8_t)PR_USART1_bm)
1803 #define power_usarte1_enable() (PR_PRPE &= (uint8_t)~(PR_USART1_bm))
1804 #define power_usarte1_disable() (PR_PRPE |= (uint8_t)PR_USART1_bm)
1805 #define power_usartf1_enable() (PR_PRPF &= (uint8_t)~(PR_USART1_bm))
1806 #define power_usartf1_disable() (PR_PRPF |= (uint8_t)PR_USART1_bm)
1808 #define power_usartc0_enable() (PR_PRPC &= (uint8_t)~(PR_USART0_bm))
1809 #define power_usartc0_disable() (PR_PRPC |= (uint8_t)PR_USART0_bm)
1810 #define power_usartd0_enable() (PR_PRPD &= (uint8_t)~(PR_USART0_bm))
1811 #define power_usartd0_disable() (PR_PRPD |= (uint8_t)PR_USART0_bm)
1812 #define power_usarte0_enable() (PR_PRPE &= (uint8_t)~(PR_USART0_bm))
1813 #define power_usarte0_disable() (PR_PRPE |= (uint8_t)PR_USART0_bm)
1814 #define power_usartf0_enable() (PR_PRPF &= (uint8_t)~(PR_USART0_bm))
1815 #define power_usartf0_disable() (PR_PRPF |= (uint8_t)PR_USART0_bm)
1817 #define power_spic_enable() (PR_PRPC &= (uint8_t)~(PR_SPI_bm))
1818 #define power_spic_disable() (PR_PRPC |= (uint8_t)PR_SPI_bm)
1819 #define power_spid_enable() (PR_PRPD &= (uint8_t)~(PR_SPI_bm))
1820 #define power_spid_disable() (PR_PRPD |= (uint8_t)PR_SPI_bm)
1821 #define power_spie_enable() (PR_PRPE &= (uint8_t)~(PR_SPI_bm))
1822 #define power_spie_disable() (PR_PRPE |= (uint8_t)PR_SPI_bm)
1823 #define power_spif_enable() (PR_PRPF &= (uint8_t)~(PR_SPI_bm))
1824 #define power_spif_disable() (PR_PRPF |= (uint8_t)PR_SPI_bm)
1826 #define power_hiresc_enable() (PR_PRPC &= (uint8_t)~(PR_HIRES_bm))
1827 #define power_hiresc_disable() (PR_PRPC |= (uint8_t)PR_HIRES_bm)
1828 #define power_hiresd_enable() (PR_PRPD &= (uint8_t)~(PR_HIRES_bm))
1829 #define power_hiresd_disable() (PR_PRPD |= (uint8_t)PR_HIRES_bm)
1830 #define power_hirese_enable() (PR_PRPE &= (uint8_t)~(PR_HIRES_bm))
1831 #define power_hirese_disable() (PR_PRPE |= (uint8_t)PR_HIRES_bm)
1832 #define power_hiresf_enable() (PR_PRPF &= (uint8_t)~(PR_HIRES_bm))
1833 #define power_hiresf_disable() (PR_PRPF |= (uint8_t)PR_HIRES_bm)
1835 #define power_tc1c_enable() (PR_PRPC &= (uint8_t)~(PR_TC1_bm))
1836 #define power_tc1c_disable() (PR_PRPC |= (uint8_t)PR_TC1_bm)
1837 #define power_tc1d_enable() (PR_PRPD &= (uint8_t)~(PR_TC1_bm))
1838 #define power_tc1d_disable() (PR_PRPD |= (uint8_t)PR_TC1_bm)
1839 #define power_tc1e_enable() (PR_PRPE &= (uint8_t)~(PR_TC1_bm))
1840 #define power_tc1e_disable() (PR_PRPE |= (uint8_t)PR_TC1_bm)
1841 #define power_tc1f_enable() (PR_PRPF &= (uint8_t)~(PR_TC1_bm))
1842 #define power_tc1f_disable() (PR_PRPF |= (uint8_t)PR_TC1_bm)
1844 #define power_tc0c_enable() (PR_PRPC &= (uint8_t)~(PR_TC0_bm))
1845 #define power_tc0c_disable() (PR_PRPC |= (uint8_t)PR_TC0_bm)
1846 #define power_tc0d_enable() (PR_PRPD &= (uint8_t)~(PR_TC0_bm))
1847 #define power_tc0d_disable() (PR_PRPD |= (uint8_t)PR_TC0_bm)
1848 #define power_tc0e_enable() (PR_PRPE &= (uint8_t)~(PR_TC0_bm))
1849 #define power_tc0e_disable() (PR_PRPE |= (uint8_t)PR_TC0_bm)
1850 #define power_tc0f_enable() (PR_PRPF &= (uint8_t)~(PR_TC0_bm))
1851 #define power_tc0f_disable() (PR_PRPF |= (uint8_t)PR_TC0_bm)
1853 #define power_all_enable() \
1855 PR_PRGEN &= (uint8_t)~(PR_CTM_bm|PR_EBI_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1856 PR_PRPA &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1857 PR_PRPB &= (uint8_t)~(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1858 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); \
1859 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); \
1860 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); \
1861 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); \
1864 #define power_all_disable() \
1866 PR_PRGEN |= (uint8_t)(PR_CTM_bm|PR_EBI_bm|PR_AES_bm|PR_RTC_bm|PR_EVSYS_bm|PR_DMA_bm); \
1867 PR_PRPA |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1868 PR_PRPB |= (uint8_t)(PR_DAC_bm|PR_ADC_bm|PR_AC_bm); \
1869 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); \
1870 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); \
1871 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); \
1872 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); \
1875 #elif defined(__AVR_ATmega640__) \
1876 || defined(__AVR_ATmega1280__) \
1877 || defined(__AVR_ATmega1281__) \
1878 || defined(__AVR_ATmega2560__) \
1879 || defined(__AVR_ATmega2561__)
1881 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1882 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1884 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1885 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1887 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1888 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1890 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1891 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1893 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1894 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1896 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1897 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1899 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1900 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1902 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
1903 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
1905 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
1906 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
1908 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1909 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1911 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1912 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1914 #define power_usart2_enable() (PRR1 &= (uint8_t)~(1 << PRUSART2))
1915 #define power_usart2_disable() (PRR1 |= (uint8_t)(1 << PRUSART2))
1917 #define power_usart3_enable() (PRR1 &= (uint8_t)~(1 << PRUSART3))
1918 #define power_usart3_disable() (PRR1 |= (uint8_t)(1 << PRUSART3))
1920 #define power_all_enable() \
1922 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1923 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
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<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)|(1<<PRUSART2)|(1<<PRUSART3)); \
1933 #elif defined(__AVR_ATmega128RFA1__)
1935 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1936 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1938 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1939 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1941 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
1942 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
1944 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
1945 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
1947 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1948 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1950 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
1951 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
1953 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
1954 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
1956 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
1957 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
1959 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
1960 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
1962 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1963 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1965 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
1966 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
1968 #define power_all_enable() \
1970 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1971 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
1974 #define power_all_disable() \
1976 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
1977 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTIM5)|(1<<PRUSART1)); \
1980 #elif defined(__AVR_ATmega256RFR2__) \
1981 || defined(__AVR_ATmega128RFR2__) \
1982 || defined(__AVR_ATmega64RFR2__) \
1983 || defined(__AVR_ATmega256RFA2__) \
1984 || defined(__AVR_ATmega128RFA2__) \
1985 || defined(__AVR_ATmega64RFA2__)
1987 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
1988 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
1990 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
1991 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
1993 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
1994 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
1996 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
1997 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
1999 #define power_pga_enable() (PRR0 &= (uint8_t)~(1 << PRPGA))
2000 #define power_pga_disable() (PRR0 |= (uint8_t)(1 << PRPGA))
2002 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2003 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2005 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2006 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2008 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2009 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2011 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2012 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2014 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2015 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2017 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRTIM4))
2018 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRTIM4))
2020 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRTIM5))
2021 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRTIM5))
2023 #define power_transceiver_enable() (PRR1 &= (uint8_t)~(1 << PRTRX24))
2024 #define power_transceiver_disable() (PRR1 |= (uint8_t)(1 << PRTRX24))
2026 #define power_ram0_enable() (PRR2 &= (uint8_t)~(1 << PRRAM0))
2027 #define power_ram0_disable() (PRR2 |= (uint8_t)(1 << PRRAM0))
2029 #define power_ram1_enable() (PRR2 &= (uint8_t)~(1 << PRRAM1))
2030 #define power_ram1_disable() (PRR2 |= (uint8_t)(1 << PRRAM1))
2032 #define power_ram2_enable() (PRR2 &= (uint8_t)~(1 << PRRAM2))
2033 #define power_ram2_disable() (PRR2 |= (uint8_t)(1 << PRRAM2))
2035 #define power_ram3_enable() (PRR2 &= (uint8_t)~(1 << PRRAM3))
2036 #define power_ram3_disable() (PRR2 |= (uint8_t)(1 << PRRAM3))
2038 #define power_all_enable() \
2040 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2041 PRR1 &= (uint8_t)~((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
2042 PRR2 &= (uint8_t)~((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
2045 #define power_all_disable() \
2047 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2048 PRR1 |= (uint8_t)((1<<PRUSART1)|(1<<PRTIM3)|(1<<PRTIM4)|(1<<PRTIM5)|(1<<PRTRX24)); \
2049 PRR2 |= (uint8_t)((1<<PRRAM0)|(1<<PRRAM1)|(1<<PRRAM2)|(1<<PRRAM3)); \
2052 #elif defined(__AVR_AT90USB646__) \
2053 || defined(__AVR_AT90USB647__) \
2054 || defined(__AVR_AT90USB1286__) \
2055 || defined(__AVR_AT90USB1287__)
2057 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2058 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2060 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2061 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2063 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2064 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2066 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2067 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2069 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2070 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2072 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2073 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2075 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2076 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2078 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2079 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2081 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2082 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2084 #define power_all_enable() \
2086 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2087 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2090 #define power_all_disable() \
2092 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2093 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2097 #elif defined(__AVR_ATmega32U4__) \
2098 || defined(__AVR_ATmega16U4__)
2101 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2102 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2104 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2105 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2107 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2108 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2110 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2111 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2113 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2114 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2116 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2117 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2119 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2120 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2122 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2123 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2125 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2126 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2128 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2129 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2131 #define power_all_enable() \
2133 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2134 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2137 #define power_all_disable() \
2139 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRUSART0)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2140 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2144 #elif defined(__AVR_ATmega32U6__)
2147 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2148 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2150 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2151 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2153 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2154 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2156 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2157 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2159 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2160 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2162 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2163 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2165 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2166 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2168 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2169 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2171 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2172 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2174 #define power_all_enable() \
2176 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2177 PRR1 &= (uint8_t)~((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2180 #define power_all_disable() \
2182 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)); \
2183 PRR1 |= (uint8_t)((1<<PRTIM3)|(1<<PRUSART1)|(1<<PRUSB)); \
2187 #elif defined(__AVR_AT90PWM1__)
2189 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2190 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2192 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2193 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2195 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2196 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2198 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2199 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2202 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
2203 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
2206 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
2207 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
2210 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2211 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2213 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2214 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2217 #elif defined(__AVR_AT90PWM2__) \
2218 || defined(__AVR_AT90PWM2B__) \
2219 || defined(__AVR_AT90PWM3__) \
2220 || defined(__AVR_AT90PWM3B__) \
2221 || defined(__AVR_AT90PWM216__) \
2222 || defined(__AVR_AT90PWM316__)
2224 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2225 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2227 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2228 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2230 #if defined(__AVR_AT90PWM216__) || defined(__AVR_AT90PWM316__)
2232 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART))
2233 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART))
2237 #define power_usart_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2238 #define power_usart_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2242 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2243 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2245 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2246 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2249 #define power_psc0_enable() (PRR &= (uint8_t)~(1 << PRPSC0))
2250 #define power_psc0_disable() (PRR |= (uint8_t)(1 << PRPSC0))
2253 #define power_psc1_enable() (PRR &= (uint8_t)~(1 << PRPSC1))
2254 #define power_psc1_disable() (PRR |= (uint8_t)(1 << PRPSC1))
2257 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2258 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2260 #if defined(__AVR_AT90PWM216__) || defined(__AVR_AT90PWM316__)
2262 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2263 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2267 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2268 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC0)|(1<<PRPSC1)|(1<<PRPSC2)))
2273 #elif defined(__AVR_AT90PWM81__) \
2274 || defined(__AVR_AT90PWM161__)
2276 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2277 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2279 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2280 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2282 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2283 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2286 #define power_pscr_enable() (PRR &= (uint8_t)~(1 << PRPSCR))
2287 #define power_pscr_disable() (PRR |= (uint8_t)(1 << PRPSCR))
2290 #define power_psc2_enable() (PRR &= (uint8_t)~(1 << PRPSC2))
2291 #define power_psc2_disable() (PRR |= (uint8_t)(1 << PRPSC2))
2293 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
2294 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRPSCR)|(1<<PRPSC2)))
2297 #elif defined(__AVR_ATmega165__) \
2298 || defined(__AVR_ATmega165A__) \
2299 || defined(__AVR_ATmega165P__) \
2300 || defined(__AVR_ATmega165PA__) \
2301 || defined(__AVR_ATmega325__) \
2302 || defined(__AVR_ATmega325A__) \
2303 || defined(__AVR_ATmega325P__) \
2304 || defined(__AVR_ATmega325PA__) \
2305 || defined(__AVR_ATmega3250__) \
2306 || defined(__AVR_ATmega3250A__) \
2307 || defined(__AVR_ATmega3250P__) \
2308 || defined(__AVR_ATmega3250PA__) \
2309 || defined(__AVR_ATmega645__) \
2310 || defined(__AVR_ATmega645A__) \
2311 || defined(__AVR_ATmega645P__) \
2312 || defined(__AVR_ATmega6450__) \
2313 || defined(__AVR_ATmega6450A__) \
2314 || defined(__AVR_ATmega6450P__)
2316 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2317 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2319 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2320 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2322 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2323 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2325 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2326 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2328 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
2329 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)))
2332 #elif defined(__AVR_ATmega169__) \
2333 || defined(__AVR_ATmega169A__) \
2334 || defined(__AVR_ATmega169P__) \
2335 || defined(__AVR_ATmega169PA__) \
2336 || defined(__AVR_ATmega329__) \
2337 || defined(__AVR_ATmega329A__) \
2338 || defined(__AVR_ATmega329P__) \
2339 || defined(__AVR_ATmega329PA__) \
2340 || defined(__AVR_ATmega3290__) \
2341 || defined(__AVR_ATmega3290A__) \
2342 || defined(__AVR_ATmega3290P__) \
2343 || defined(__AVR_ATmega3290PA__) \
2344 || defined(__AVR_ATmega649__) \
2345 || defined(__AVR_ATmega649A__) \
2346 || defined(__AVR_ATmega649P__) \
2347 || defined(__AVR_ATmega6490__) \
2348 || defined(__AVR_ATmega6490A__) \
2349 || defined(__AVR_ATmega6490P__)
2351 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2352 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2354 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2355 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2357 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2358 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2360 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2361 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2363 #define power_lcd_enable() (PRR &= (uint8_t)~(1 << PRLCD))
2364 #define power_lcd_disable() (PRR |= (uint8_t)(1 << PRLCD))
2366 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
2367 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM1)|(1<<PRLCD)))
2370 #elif defined(__AVR_ATmega164A__) \
2371 || defined(__AVR_ATmega164P__) \
2372 || defined(__AVR_ATmega324A__) \
2373 || defined(__AVR_ATmega324P__) \
2374 || defined(__AVR_ATmega324PA__) \
2375 || defined(__AVR_ATmega644P__) \
2376 || defined(__AVR_ATmega644A__) \
2377 || defined(__AVR_ATmega644PA__)
2379 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2380 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2382 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2383 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2385 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2386 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2388 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
2389 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
2391 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2392 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2394 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2395 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2397 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2398 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2400 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2401 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2403 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2404 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2407 #elif defined(__AVR_ATmega644__) \
2408 || defined(__AVR_ATmega164PA__)
2410 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2411 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2413 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2414 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2416 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2417 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2419 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2420 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2422 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2423 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2425 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2426 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2428 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2429 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2431 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2432 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2435 #elif defined(__AVR_ATmega406__)
2437 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2438 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2440 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2441 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2443 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2444 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2447 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
2448 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
2450 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
2451 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)))
2454 #elif defined(__AVR_ATmega48__) \
2455 || defined(__AVR_ATmega48A__) \
2456 || defined(__AVR_ATmega48PA__) \
2457 || defined(__AVR_ATmega48P__) \
2458 || defined(__AVR_ATmega88__) \
2459 || defined(__AVR_ATmega88A__) \
2460 || defined(__AVR_ATmega88P__) \
2461 || defined(__AVR_ATmega88PA__) \
2462 || defined(__AVR_ATmega168__) \
2463 || defined(__AVR_ATmega168A__) \
2464 || defined(__AVR_ATmega168P__) \
2465 || defined(__AVR_ATmega168PA__) \
2466 || defined(__AVR_ATmega328__) \
2467 || defined(__AVR_ATmega328P__) \
2468 || defined(__AVR_ATtiny828__) \
2469 || defined(__AVR_ATtiny841__)
2471 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2472 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2474 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2475 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2477 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2478 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2480 #if defined(__AVR_ATtiny841__)
2482 #define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
2483 #define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
2487 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2488 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2490 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2491 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2493 #if !defined(__AVR_ATtiny828__)
2495 #define power_timer2_enable() (PRR &= (uint8_t)~(1 << PRTIM2))
2496 #define power_timer2_disable() (PRR |= (uint8_t)(1 << PRTIM2))
2500 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2501 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2503 #if defined(__AVR_ATtiny828__)
2505 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2506 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2508 #elif defined(__AVR_ATtiny841__)
2510 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2511 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRUSART1)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2515 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2516 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRUSART0)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRTWI)))
2520 #elif defined(__AVR_ATtiny48__) \
2521 || defined(__AVR_ATtiny88__)
2523 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2524 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2526 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2527 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2529 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2530 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2532 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2533 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2535 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2536 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2538 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2539 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTWI)))
2542 #elif defined(__AVR_ATtiny24__) \
2543 || defined(__AVR_ATtiny24A__) \
2544 || defined(__AVR_ATtiny44__) \
2545 || defined(__AVR_ATtiny44A__) \
2546 || defined(__AVR_ATtiny84__) \
2547 || defined(__AVR_ATtiny84A__) \
2548 || defined(__AVR_ATtiny25__) \
2549 || defined(__AVR_ATtiny45__) \
2550 || defined(__AVR_ATtiny85__) \
2551 || defined(__AVR_ATtiny261__) \
2552 || defined(__AVR_ATtiny261A__) \
2553 || defined(__AVR_ATtiny461__) \
2554 || defined(__AVR_ATtiny461A__) \
2555 || defined(__AVR_ATtiny861__) \
2556 || defined(__AVR_ATtiny861A__) \
2557 || defined(__AVR_ATtiny43U__)
2559 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2560 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2562 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2563 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2565 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2566 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2569 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2570 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2572 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2573 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRUSI)))
2575 #elif defined(__AVR_ATmega1284__)
2577 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2578 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2580 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2581 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2583 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2584 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2586 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2587 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2589 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2590 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2592 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2593 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2595 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2596 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2598 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2599 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2601 #define power_all_enable() \
2603 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2604 PRR1 &= (uint8_t)~(1<<PRTIM3); \
2607 #define power_all_disable() \
2609 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)); \
2610 PRR1 |= (uint8_t)(1<<PRTIM3); \
2613 #elif defined(__AVR_ATmega1284P__)
2616 #define power_adc_enable() (PRR0 &= (uint8_t)~(1 << PRADC))
2617 #define power_adc_disable() (PRR0 |= (uint8_t)(1 << PRADC))
2619 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2620 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2622 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2623 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2625 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2626 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2628 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2629 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2631 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2632 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2634 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRTIM3))
2635 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRTIM3))
2637 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2638 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2640 #define power_usart1_enable() (PRR0 &= (uint8_t)~(1 << PRUSART1))
2641 #define power_usart1_disable() (PRR0 |= (uint8_t)(1 << PRUSART1))
2643 #define power_all_enable() \
2645 PRR0 &= (uint8_t)~((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
2646 PRR1 &= (uint8_t)~(1<<PRTIM3); \
2649 #define power_all_disable() \
2651 PRR0 |= (uint8_t)((1<<PRADC)|(1<<PRSPI)|(1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRTIM2)|(1<<PRUSART0)|(1<<PRUSART1)); \
2652 PRR1 |= (uint8_t)(1<<PRTIM3); \
2656 #elif defined(__AVR_ATmega32HVB__) \
2657 || defined(__AVR_ATmega32HVBREVB__) \
2658 || defined(__AVR_ATmega16HVB__) \
2659 || defined(__AVR_ATmega16HVBREVB__) \
2660 || defined(__AVR_ATmega26HVG__) \
2661 || defined(__AVR_ATmega48HVF__)
2664 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2665 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2667 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2668 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2670 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2671 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2674 #define power_vadc_enable() (PRR0 &= (uint8_t)~(1 << PRVADC))
2675 #define power_vadc_disable() (PRR0 |= (uint8_t)(1 << PRVADC))
2677 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2678 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2680 #define power_vrm_enable() (PRR0 &= (uint8_t)~(1 << PRVRM))
2681 #define power_vrm_disable() (PRR0 |= (uint8_t)(1 << PRVRM))
2683 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
2684 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRTWI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRVADC)|(1<<PRSPI)|(1<<PRVRM)))
2687 #elif defined (__AVR_ATA5790__) \
2688 || defined (__AVR_ATA5790N__) \
2689 || defined (__AVR_ATA5795__)
2692 #define power_vmonitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
2693 #define power_vmonitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
2695 #define power_irdriver_enable() (PRR0 &= (uint8_t)~(1 << PRDS))
2696 #define power_irdriver_disable() (PRR0 |= (uint8_t)(1 << PRDS))
2698 #define power_crypto_enable() (PRR0 &= (uint8_t)~(1 << PRCU))
2699 #define power_crypto_disable() (PRR0 |= (uint8_t)(1 << PRCU))
2701 #define power_timermodulator_enable() (PRR0 &= (uint8_t)~(1 << PRTM))
2702 #define power_timermodulator_disable() (PRR0 |= (uint8_t)(1 << PRTM))
2704 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRT1))
2705 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRT1))
2707 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRT2))
2708 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRT2))
2710 #define power_timer3_enable() (PRR0 &= (uint8_t)~(1 << PRT3))
2711 #define power_timer3_disable() (PRR0 |= (uint8_t)(1 << PRT3))
2713 #define power_spi_enable() (PRR1 &= (uint8_t)~(1 << PRSPI))
2714 #define power_spi_disable() (PRR1 |= (uint8_t)(1 << PRSPI))
2716 #define power_cinterface_enable() (PRR1 &= (uint8_t)~(1 << PRCI))
2717 #define power_cinterface_disable() (PRR1 |= (uint8_t)(1 << PRCI))
2719 #if defined(__AVR_ATA5790__) \
2720 || defined(__AVR_ATA5790N__)
2722 #define power_lfreceiver_enable() (PRR0 &= (uint8_t)~(1 << PRLFR))
2723 #define power_lfreceiver_disable() (PRR0 |= (uint8_t)(1 << PRLFR))
2725 #define power_all_enable() \
2727 PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2728 PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2731 #define power_all_disable() \
2733 PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)|(1<<PRLFR)); \
2734 PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2737 #elif defined(__AVR_ATA5795__)
2739 #define power_all_enable() \
2741 PRR0 &= (uint8_t)~((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2742 PRR1 &= (uint8_t)~((1<<PRSPI)|(1<<PRCI)); \
2745 #define power_all_disable() \
2747 PRR0 |= (uint8_t)((1<<PRVM)|(1<<PRDS)|(1<<PRCU)|(1<<PRTM)|(1<<PRT3)|(1<<PRT2)|(1<<PRT1)); \
2748 PRR1 |= (uint8_t)((1<<PRSPI)|(1<<PRCI)); \
2753 #elif defined(__AVR_ATA5831__)
2755 #define power_clock_output_enable() (PRR0 &= (uint8_t)~(1 << PRCO))
2756 #define power_clock_output_disable() (PRR0 |= (uint8_t)(1 << PRCO))
2758 #define power_voltage_monitor_enable() (PRR0 &= (uint8_t)~(1 << PRVM))
2759 #define power_voltage_monitor_disable() (PRR0 |= (uint8_t)(1 << PRVM))
2761 #define power_crc_enable() (PRR0 &= (uint8_t)~(1 << PRCRC))
2762 #define power_crc_disable() (PRR0 |= (uint8_t)(1 << PRCRC))
2764 #define power_transmit_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRTXDC))
2765 #define power_transmit_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRTXDC))
2767 #define power_receive_dsp_control_enable() (PRR0 &= (uint8_t)~(1 << PRRXDC))
2768 #define power_receive_dsp_control_disable() (PRR0 |= (uint8_t)(1 << PRRXDC))
2770 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2771 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2773 #define power_timer1_enable() (PRR1 &= (uint8_t)~(1 << PRT1))
2774 #define power_timer1_disable() (PRR1 |= (uint8_t)(1 << PRT1))
2776 #define power_timer2_enable() (PRR1 &= (uint8_t)~(1 << PRT2))
2777 #define power_timer2_disable() (PRR1 |= (uint8_t)(1 << PRT2))
2779 #define power_timer3_enable() (PRR1 &= (uint8_t)~(1 << PRT3))
2780 #define power_timer3_disable() (PRR1 |= (uint8_t)(1 << PRT3))
2782 #define power_timer4_enable() (PRR1 &= (uint8_t)~(1 << PRT4))
2783 #define power_timer4_disable() (PRR1 |= (uint8_t)(1 << PRT4))
2785 #define power_timer5_enable() (PRR1 &= (uint8_t)~(1 << PRT5))
2786 #define power_timer5_disable() (PRR1 |= (uint8_t)(1 << PRT5))
2788 #define power_sequencer_state_machine_enable() (PRR2 &= (uint8_t)~(1 << PRSSM))
2789 #define power_sequencer_state_machine_disable() (PRR2 |= (uint8_t)(1 << PRSSM))
2791 #define power_tx_modulator_enable() (PRR2 &= (uint8_t)~(1 << PRTM))
2792 #define power_tx_modulator_disable() (PRR2 |= (uint8_t)(1 << PRTM))
2794 #define power_rssi_buffer_enable() (PRR2 &= (uint8_t)~(1 << PRRS))
2795 #define power_rssi_buffer_disable() (PRR2 |= (uint8_t)(1 << PRRS))
2797 #define power_id_scan_enable() (PRR2 &= (uint8_t)~(1 << PRIDS))
2798 #define power_id_scan_disable() (PRR2 |= (uint8_t)(1 << PRIDS))
2800 #define power_data_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRDF))
2801 #define power_data_fifo_disable() (PRR2 |= (uint8_t)(1 << PRDF))
2803 #define power_preamble_rssi_fifo_enable() (PRR2 &= (uint8_t)~(1 << PRSF))
2804 #define power_preamble_rssi_fifo_disable() (PRR2 |= (uint8_t)(1 << PRSF))
2806 #define power_rx_buffer_A_enable() (PRR2 &= (uint8_t)~(1 << PRXA))
2807 #define power_rx_buffer_A_disable() (PRR2 |= (uint8_t)(1 << PRXA))
2809 #define power_rx_buffer_B_enable() (PRR2 &= (uint8_t)~(1 << PRXB))
2810 #define power_rx_buffer_B_disable() (PRR2 |= (uint8_t)(1 << PRXB))
2812 #define power_all_enable() \
2814 PRR0 &= (uint8_t)~((1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRRXDC) | (1 << PRSPI)); \
2815 PRR1 &= (uint8_t)~((1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2816 PRR2 &= (uint8_t)~((1 << PRSSM) | (1 << PRTM) | (1 << PRRS) | (1 << PRIDS) | (1 << PRDF) | (1 << PRSF) | (1 << PRXA) | (1 << PRXB)); \
2819 #define power_all_disable() \
2821 PRR0 |= (uint8_t)((1 << PRCO) | (1 << PRVM) | (1 << PRCRC) | (1 << PRTXDC) | (1 << PRRXDC) | (1 << PRSPI)); \
2822 PRR1 |= (uint8_t)((1 << PRT1) | (1 << PRT2) | (1 << PRT3) | (1 << PRT4) | (1 << PRT5)); \
2823 PRR2 |= (uint8_t)((1 << PRSSM) | (1 << PRTM) | (1 << PRRS) | (1 << PRIDS) | (1 << PRDF) | (1 << PRSF) | (1 << PRXA) | (1 << PRXB)); \
2826 #elif defined(__AVR_ATmega64HVE__)
2829 #define power_lin_enable() (PRR0 &= (uint8_t)~(1 << PRLIN))
2830 #define power_lin_disable() (PRR0 |= (uint8_t)(1 << PRLIN))
2832 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2833 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2835 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2836 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2838 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2839 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2841 #define power_all_enable() (PRR0 &= (uint8_t)~((1<<PRLIN)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)))
2842 #define power_all_disable() (PRR0 |= (uint8_t)((1<<PRLIN)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)))
2844 #elif defined(__AVR_ATmega16M1__) \
2845 || defined(__AVR_ATmega32C1__) \
2846 || defined(__AVR_ATmega32M1__) \
2847 || defined(__AVR_ATmega64C1__) \
2848 || defined(__AVR_ATmega64M1__)
2850 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2851 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2853 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
2854 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
2856 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2857 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2859 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2860 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2862 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2863 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2865 #define power_psc_enable() (PRR &= (uint8_t)~(1 << PRPSC))
2866 #define power_psc_disable() (PRR |= (uint8_t)(1 << PRPSC))
2868 #define power_can_enable() (PRR &= (uint8_t)~(1 << PRCAN))
2869 #define power_can_disable() (PRR |= (uint8_t)(1 << PRCAN))
2871 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
2872 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRLIN)|(1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRPSC)|(1<<PRCAN)))
2875 #elif defined(__AVR_ATtiny167__) \
2876 || defined(__AVR_ATtiny87__) \
2877 || defined(__AVR_ATA5505__) \
2878 || defined(__AVR_ATA5272__)
2880 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2881 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2883 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2884 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2886 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2887 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2889 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2890 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2892 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
2893 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
2895 #define power_lin_enable() (PRR &= (uint8_t)~(1 << PRLIN))
2896 #define power_lin_disable() (PRR |= (uint8_t)(1 << PRLIN))
2898 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
2899 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRUSI)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRLIN)))
2902 #elif defined(__AVR_ATtiny1634__)
2904 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
2905 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
2907 #define power_usart0_enable() (PRR &= (uint8_t)~(1 << PRUSART0))
2908 #define power_usart0_disable() (PRR |= (uint8_t)(1 << PRUSART0))
2910 #define power_usart1_enable() (PRR &= (uint8_t)~(1 << PRUSART1))
2911 #define power_usart1_disable() (PRR |= (uint8_t)(1 << PRUSART1))
2913 #define power_usi_enable() (PRR &= (uint8_t)~(1 << PRUSI))
2914 #define power_usi_disable() (PRR |= (uint8_t)(1 << PRUSI))
2916 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
2917 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
2919 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
2920 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
2922 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
2923 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
2925 #define power_all_enable() (PRR &= (uint8_t)~((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2926 #define power_all_disable() (PRR |= (uint8_t)((1 << PRTWI)|(1 << PRUSI)|(1 << PRTIM0)|(1 << PRTIM1)|(1 << PRUSART0)|(1 << PRUSART1)|(1 << PRADC)))
2929 #elif defined(__AVR_AT90USB82__) \
2930 || defined(__AVR_AT90USB162__) \
2931 || defined(__AVR_ATmega8U2__) \
2932 || defined(__AVR_ATmega16U2__) \
2933 || defined(__AVR_ATmega32U2__)
2935 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2936 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2938 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2939 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2941 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2942 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2944 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2945 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2947 #define power_usart1_enable() (PRR1 &= (uint8_t)~(1 << PRUSART1))
2948 #define power_usart1_disable() (PRR1 |= (uint8_t)(1 << PRUSART1))
2950 #define power_all_enable() \
2952 PRR0 &= (uint8_t)~((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
2953 PRR1 &= (uint8_t)~((1<<PRUSB)|(1<<PRUSART1)); \
2956 #define power_all_disable() \
2958 PRR0 |= (uint8_t)((1<<PRSPI)|(1<<PRTIM0)|(1<<PRTIM1)); \
2959 PRR1 |= (uint8_t)((1<<PRUSB)|(1<<PRUSART1)); \
2963 #elif defined(__AVR_AT90SCR100__)
2965 #define power_usart0_enable() (PRR0 &= (uint8_t)~(1 << PRUSART0))
2966 #define power_usart0_disable() (PRR0 |= (uint8_t)(1 << PRUSART0))
2968 #define power_spi_enable() (PRR0 &= (uint8_t)~(1 << PRSPI))
2969 #define power_spi_disable() (PRR0 |= (uint8_t)(1 << PRSPI))
2971 #define power_timer1_enable() (PRR0 &= (uint8_t)~(1 << PRTIM1))
2972 #define power_timer1_disable() (PRR0 |= (uint8_t)(1 << PRTIM1))
2974 #define power_timer0_enable() (PRR0 &= (uint8_t)~(1 << PRTIM0))
2975 #define power_timer0_disable() (PRR0 |= (uint8_t)(1 << PRTIM0))
2977 #define power_timer2_enable() (PRR0 &= (uint8_t)~(1 << PRTIM2))
2978 #define power_timer2_disable() (PRR0 |= (uint8_t)(1 << PRTIM2))
2980 #define power_twi_enable() (PRR0 &= (uint8_t)~(1 << PRTWI))
2981 #define power_twi_disable() (PRR0 |= (uint8_t)(1 << PRTWI))
2983 #define power_usbh_enable() (PRR1 &= (uint8_t)~(1 << PRUSBH))
2984 #define power_usbh_disable() (PRR1 |= (uint8_t)(1 << PRUSBH))
2986 #define power_usb_enable() (PRR1 &= (uint8_t)~(1 << PRUSB))
2987 #define power_usb_disable() (PRR1 |= (uint8_t)(1 << PRUSB))
2989 #define power_hsspi_enable() (PRR1 &= (uint8_t)~(1 << PRHSSPI))
2990 #define power_hsspi_disable() (PRR1 |= (uint8_t)(1 << PRHSSPI))
2992 #define power_sci_enable() (PRR1 &= (uint8_t)~(1 << PRSCI))
2993 #define power_sci_disable() (PRR1 |= (uint8_t)(1 << PRSCI))
2995 #define power_aes_enable() (PRR1 &= (uint8_t)~(1 << PRAES))
2996 #define power_aes_disable() (PRR1 |= (uint8_t)(1 << PRAES))
2998 #define power_kb_enable() (PRR1 &= (uint8_t)~(1 << PRKB))
2999 #define power_kb_disable() (PRR1 |= (uint8_t)(1 << PRKB))
3001 #define power_all_enable() \
3003 PRR0 &= (uint8_t)~((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
3004 PRR1 &= (uint8_t)~((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
3007 #define power_all_disable() \
3009 PRR0 |= (uint8_t)((1<<PRUSART0)|(1<<PRSPI)|(1<<PRTIM1)|(1<<PRTIM0)|(1<<PRTIM2)|(1<<PRTWI)); \
3010 PRR1 |= (uint8_t)((1<<PRUSBH)|(1<<PRUSB)|(1<<PRHSSPI)|(1<<PRSCI)|(1<<PRAES)|(1<<PRKB)); \
3014 #elif defined(__AVR_ATtiny4__) \
3015 || defined(__AVR_ATtiny5__) \
3016 || defined(__AVR_ATtiny9__) \
3017 || defined(__AVR_ATtiny10__) \
3018 || defined(__AVR_ATtiny13A__) \
3020 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
3021 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
3023 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
3024 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
3026 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)))
3027 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)))
3030 #elif defined(__AVR_ATtiny20__) \
3031 || defined(__AVR_ATtiny40__)
3033 #define power_adc_enable() (PRR &= (uint8_t)~(1 << PRADC))
3034 #define power_adc_disable() (PRR |= (uint8_t)(1 << PRADC))
3036 #define power_timer0_enable() (PRR &= (uint8_t)~(1 << PRTIM0))
3037 #define power_timer0_disable() (PRR |= (uint8_t)(1 << PRTIM0))
3039 #define power_timer1_enable() (PRR &= (uint8_t)~(1 << PRTIM1))
3040 #define power_timer1_disable() (PRR |= (uint8_t)(1 << PRTIM1))
3042 #define power_spi_enable() (PRR &= (uint8_t)~(1 << PRSPI))
3043 #define power_spi_disable() (PRR |= (uint8_t)(1 << PRSPI))
3045 #define power_twi_enable() (PRR &= (uint8_t)~(1 << PRTWI))
3046 #define power_twi_disable() (PRR |= (uint8_t)(1 << PRTWI))
3048 #define power_all_enable() (PRR &= (uint8_t)~((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
3049 #define power_all_disable() (PRR |= (uint8_t)((1<<PRADC)|(1<<PRTIM0)|(1<<PRTIM1)|(1<<PRSPI)|(1<<PRTWI)))
3054 #if defined(__AVR_AT90CAN32__) \
3055 || defined(__AVR_AT90CAN64__) \
3056 || defined(__AVR_AT90CAN128__) \
3057 || defined(__AVR_AT90PWM1__) \
3058 || defined(__AVR_AT90PWM2__) \
3059 || defined(__AVR_AT90PWM2B__) \
3060 || defined(__AVR_AT90PWM3__) \
3061 || defined(__AVR_AT90PWM3B__) \
3062 || defined(__AVR_AT90PWM81__) \
3063 || defined(__AVR_AT90PWM161__) \
3064 || defined(__AVR_AT90PWM216__) \
3065 || defined(__AVR_AT90PWM316__) \
3066 || defined(__AVR_AT90SCR100__) \
3067 || defined(__AVR_AT90USB646__) \
3068 || defined(__AVR_AT90USB647__) \
3069 || defined(__AVR_AT90USB82__) \
3070 || defined(__AVR_AT90USB1286__) \
3071 || defined(__AVR_AT90USB1287__) \
3072 || defined(__AVR_AT90USB162__) \
3073 || defined(__AVR_ATA5505__) \
3074 || defined(__AVR_ATA5272__) \
3075 || defined(__AVR_ATmega1280__) \
3076 || defined(__AVR_ATmega1281__) \
3077 || defined(__AVR_ATmega1284__) \
3078 || defined(__AVR_ATmega128RFA1__) \
3079 || defined(__AVR_ATmega128RFA2__) \
3080 || defined(__AVR_ATmega128RFR2__) \
3081 || defined(__AVR_ATmega1284P__) \
3082 || defined(__AVR_ATmega162__) \
3083 || defined(__AVR_ATmega164A__) \
3084 || defined(__AVR_ATmega164P__) \
3085 || defined(__AVR_ATmega164PA__) \
3086 || defined(__AVR_ATmega165__) \
3087 || defined(__AVR_ATmega165A__) \
3088 || defined(__AVR_ATmega165P__) \
3089 || defined(__AVR_ATmega165PA__) \
3090 || defined(__AVR_ATmega168__) \
3091 || defined(__AVR_ATmega168A__) \
3092 || defined(__AVR_ATmega168P__) \
3093 || defined(__AVR_ATmega168PA__) \
3094 || defined(__AVR_ATmega169__) \
3095 || defined(__AVR_ATmega169A__) \
3096 || defined(__AVR_ATmega169P__) \
3097 || defined(__AVR_ATmega169PA__) \
3098 || defined(__AVR_ATmega16M1__) \
3099 || defined(__AVR_ATmega16U2__) \
3100 || defined(__AVR_ATmega324PA__) \
3101 || defined(__AVR_ATmega16U4__) \
3102 || defined(__AVR_ATmega2560__) \
3103 || defined(__AVR_ATmega2561__) \
3104 || defined(__AVR_ATmega256RFA2__) \
3105 || defined(__AVR_ATmega256RFR2__) \
3106 || defined(__AVR_ATmega324A__) \
3107 || defined(__AVR_ATmega324P__) \
3108 || defined(__AVR_ATmega325__) \
3109 || defined(__AVR_ATmega325A__) \
3110 || defined(__AVR_ATmega325P__) \
3111 || defined(__AVR_ATmega325PA__) \
3112 || defined(__AVR_ATmega3250__) \
3113 || defined(__AVR_ATmega3250A__) \
3114 || defined(__AVR_ATmega3250P__) \
3115 || defined(__AVR_ATmega3250PA__) \
3116 || defined(__AVR_ATmega328__) \
3117 || defined(__AVR_ATmega328P__) \
3118 || defined(__AVR_ATmega329__) \
3119 || defined(__AVR_ATmega329A__) \
3120 || defined(__AVR_ATmega329P__) \
3121 || defined(__AVR_ATmega329PA__) \
3122 || defined(__AVR_ATmega3290__) \
3123 || defined(__AVR_ATmega3290A__) \
3124 || defined(__AVR_ATmega3290P__) \
3125 || defined(__AVR_ATmega3290PA__) \
3126 || defined(__AVR_ATmega32C1__) \
3127 || defined(__AVR_ATmega32M1__) \
3128 || defined(__AVR_ATmega32U2__) \
3129 || defined(__AVR_ATmega32U4__) \
3130 || defined(__AVR_ATmega32U6__) \
3131 || defined(__AVR_ATmega48__) \
3132 || defined(__AVR_ATmega48A__) \
3133 || defined(__AVR_ATmega48PA__) \
3134 || defined(__AVR_ATmega48P__) \
3135 || defined(__AVR_ATmega640__) \
3136 || defined(__AVR_ATmega649P__) \
3137 || defined(__AVR_ATmega644__) \
3138 || defined(__AVR_ATmega644A__) \
3139 || defined(__AVR_ATmega644P__) \
3140 || defined(__AVR_ATmega644PA__) \
3141 || defined(__AVR_ATmega645__) \
3142 || defined(__AVR_ATmega645A__) \
3143 || defined(__AVR_ATmega645P__) \
3144 || defined(__AVR_ATmega6450__) \
3145 || defined(__AVR_ATmega6450A__) \
3146 || defined(__AVR_ATmega6450P__) \
3147 || defined(__AVR_ATmega649__) \
3148 || defined(__AVR_ATmega649A__) \
3149 || defined(__AVR_ATmega64M1__) \
3150 || defined(__AVR_ATmega64C1__) \
3151 || defined(__AVR_ATmega88A__) \
3152 || defined(__AVR_ATmega88PA__) \
3153 || defined(__AVR_ATmega6490__) \
3154 || defined(__AVR_ATmega6490A__) \
3155 || defined(__AVR_ATmega6490P__) \
3156 || defined(__AVR_ATmega64RFA2__) \
3157 || defined(__AVR_ATmega64RFR2__) \
3158 || defined(__AVR_ATmega88__) \
3159 || defined(__AVR_ATmega88P__) \
3160 || defined(__AVR_ATmega8U2__) \
3161 || defined(__AVR_ATmega16U2__) \
3162 || defined(__AVR_ATmega32U2__) \
3163 || defined(__AVR_ATtiny48__) \
3164 || defined(__AVR_ATtiny88__) \
3165 || defined(__AVR_ATtiny87__) \
3166 || defined(__AVR_ATtiny167__) \
3167 || defined(__DOXYGEN__)
3212 #if defined(__AVR_ATmega128RFA1__) \
3213 || defined(__AVR_ATmega256RFA2__) \
3214 || defined(__AVR_ATmega128RFA2__) \
3215 || defined(__AVR_ATmega64RFA2__) \
3216 || defined(__AVR_ATmega256RFR2__) \
3217 || defined(__AVR_ATmega128RFR2__) \
3218 || defined(__AVR_ATmega64RFR2__)
3219 , clock_div_1_rc = 15
3224 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)),
3256 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3258 #elif defined(__AVR_ATmega48HVF__) \
3259 || defined(__AVR_ATmega26HVG__) \
3260 || defined(__AVR_ATmega16HVB__) \
3261 || defined(__AVR_ATmega16HVBREVB__) \
3262 || defined(__AVR_ATmega64HVE__) \
3263 || defined(__AVR_ATmega32HVB__) \
3264 || defined(__AVR_ATmega32HVBREVB__)
3274 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3276 void clock_prescale_set(clock_div_t __x)
3279 __asm__ __volatile__ (
3280 "in __tmp_reg__,__SREG__" "\n\t"
3284 "out __SREG__, __tmp_reg__"
3287 "M" (_SFR_MEM_ADDR(CLKPR)),
3292 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)))
3294 #elif defined(__AVR_ATA5790__) \
3295 || defined (__AVR_ATA5790N__) \
3296 || defined (__AVR_ATA5795__)
3310 static __inline__
void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3312 void system_clock_prescale_set(clock_div_t __x)
3315 __asm__ __volatile__ (
3316 "in __tmp_reg__,__SREG__" "\n\t"
3320 "out __SREG__, __tmp_reg__"
3323 "I" (_SFR_IO_ADDR(CLKPR)),
3328 #define system_clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
3332 timer_clock_div_reset = 0,
3333 timer_clock_div_1 = 1,
3334 timer_clock_div_2 = 2,
3335 timer_clock_div_4 = 3,
3336 timer_clock_div_8 = 4,
3337 timer_clock_div_16 = 5,
3338 timer_clock_div_32 = 6,
3339 timer_clock_div_64 = 7
3340 } timer_clock_div_t;
3342 static __inline__
void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
3344 void timer_clock_prescale_set(timer_clock_div_t __x)
3347 __asm__ __volatile__ (
3348 "in __tmp_reg__,__SREG__" "\n\t"
3350 "in %[temp],%[clkpr]" "\n\t"
3351 "out %[clkpr],%[enable]" "\n\t"
3352 "andi %[temp],%[not_CLTPS]" "\n\t"
3353 "or %[temp], %[set_value]" "\n\t"
3354 "out %[clkpr],%[temp]" "\n\t"
3356 "out __SREG__,__tmp_reg__" "\n\t"
3359 [clkpr]
"I" (_SFR_IO_ADDR(CLKPR)),
3360 [enable]
"r" (
_BV(CLKPCE)),
3361 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
3362 [set_value]
"r" ((__x & 7) << 3)
3366 #define timer_clock_prescale_get() (timer_clock_div_t)(CLKPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
3368 #elif defined(__AVR_ATA5831__)
3382 static __inline__
void system_clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3384 void system_clock_prescale_set(clock_div_t __x)
3387 __asm__ __volatile__ (
3388 "in __tmp_reg__,__SREG__" "\n\t"
3390 "in %[temp],%[clpr]" "\n\t"
3391 "out %[clpr],%[enable]" "\n\t"
3392 "andi %[temp],%[not_CLKPS]" "\n\t"
3393 "or %[temp], %[set_value]" "\n\t"
3394 "out %[clpr],%[temp]" "\n\t"
3396 "out __SREG__,__tmp_reg__" "\n\t"
3399 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
3400 [enable]
"r" _BV(CLPCE),
3401 [not_CLKPS]
"M" (0xFF & (~ ((1 << CLKPS2) | (1 << CLKPS1) | (1 << CLKPS0)))),
3402 [set_value]
"r" (__x & 7)
3406 #define system_clock_prescale_get() (clock_div_t)(CLPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)))
3410 timer_clock_div_reset = 0,
3411 timer_clock_div_1 = 1,
3412 timer_clock_div_2 = 2,
3413 timer_clock_div_4 = 3,
3414 timer_clock_div_8 = 4,
3415 timer_clock_div_16 = 5,
3416 timer_clock_div_32 = 6,
3417 timer_clock_div_64 = 7
3418 } timer_clock_div_t;
3420 static __inline__
void timer_clock_prescale_set(timer_clock_div_t) __attribute__((__always_inline__));
3422 void timer_clock_prescale_set(timer_clock_div_t __x)
3425 __asm__ __volatile__ (
3426 "in __tmp_reg__,__SREG__" "\n\t"
3428 "in %[temp],%[clpr]" "\n\t"
3429 "out %[clpr],%[enable]" "\n\t"
3430 "andi %[temp],%[not_CLTPS]" "\n\t"
3431 "or %[temp], %[set_value]" "\n\t"
3432 "out %[clpr],%[temp]" "\n\t"
3434 "out __SREG__,__tmp_reg__" "\n\t"
3437 [clpr]
"I" (_SFR_IO_ADDR(CLPR)),
3438 [enable]
"r" (
_BV(CLPCE)),
3439 [not_CLTPS]
"M" (0xFF & (~ ((1 << CLTPS2) | (1 << CLTPS1) | (1 << CLTPS0)))),
3440 [set_value]
"r" ((__x & 7) << 3)
3444 #define timer_clock_prescale_get() (timer_clock_div_t)(CLPR & (uint8_t)((1<<CLTPS0)|(1<<CLTPS1)|(1<<CLTPS2)))
3446 #elif defined(__AVR_ATtiny24__) \
3447 || defined(__AVR_ATtiny24A__) \
3448 || defined(__AVR_ATtiny44__) \
3449 || defined(__AVR_ATtiny44A__) \
3450 || defined(__AVR_ATtiny84__) \
3451 || defined(__AVR_ATtiny84A__) \
3452 || defined(__AVR_ATtiny25__) \
3453 || defined(__AVR_ATtiny45__) \
3454 || defined(__AVR_ATtiny85__) \
3455 || defined(__AVR_ATtiny261A__) \
3456 || defined(__AVR_ATtiny261__) \
3457 || defined(__AVR_ATtiny461__) \
3458 || defined(__AVR_ATtiny461A__) \
3459 || defined(__AVR_ATtiny861__) \
3460 || defined(__AVR_ATtiny861A__) \
3461 || defined(__AVR_ATtiny2313__) \
3462 || defined(__AVR_ATtiny2313A__) \
3463 || defined(__AVR_ATtiny4313__) \
3464 || defined(__AVR_ATtiny13__) \
3465 || defined(__AVR_ATtiny13A__) \
3466 || defined(__AVR_ATtiny43U__) \
3481 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3483 void clock_prescale_set(clock_div_t __x)
3486 __asm__ __volatile__ (
3487 "in __tmp_reg__,__SREG__" "\n\t"
3491 "out __SREG__, __tmp_reg__"
3494 "I" (_SFR_IO_ADDR(CLKPR)),
3500 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3502 #elif defined(__AVR_ATtiny841__)
3517 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3519 void clock_prescale_set(clock_div_t __x)
3522 __asm__ __volatile__ (
3523 "in __tmp_reg__,__SREG__" "\n\t"
3527 "out __SREG__, __tmp_reg__"
3530 "M" (_SFR_MEM_ADDR(CLKPR)),
3531 "M" (_SFR_MEM_ADDR(CCP)),
3537 #define clock_prescale_get() (clock_div_t)(CLKPR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))
3539 #elif defined(__AVR_ATtiny4__) \
3540 || defined(__AVR_ATtiny5__) \
3541 || defined(__AVR_ATtiny9__) \
3542 || defined(__AVR_ATtiny10__) \
3543 || defined(__AVR_ATtiny20__) \
3544 || defined(__AVR_ATtiny40__) \
3559 static __inline__
void clock_prescale_set(clock_div_t) __attribute__((__always_inline__));
3561 void clock_prescale_set(clock_div_t __x)
3564 __asm__ __volatile__ (
3565 "in __tmp_reg__,__SREG__" "\n\t"
3569 "out __SREG__, __tmp_reg__"
3572 "I" (_SFR_IO_ADDR(CCP)),
3573 "I" (_SFR_IO_ADDR(CLKPSR)),
3578 #define clock_prescale_get() (clock_div_t)(CLKPSR & (uint8_t)((1<<CLKPS0)|(1<<CLKPS1)|(1<<CLKPS2)|(1<<CLKPS3)))