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