Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <compiler.h>
- #include <sysclk.h>
- #include <board.h>
- #include <gpio.h>
- #include <delay.h>
- #include <pwm.h>
- void boardLED() {
- int frequency = 10;
- float duty = 0.1;
- int state = 0;
- while(true) {
- gpio_toggle_pin(LED0);
- delay_ms(duty*frequency);
- gpio_toggle_pin(LED0);
- delay_ms(frequency-(duty*frequency));
- if(state == 0) {
- duty+=0.1;
- if(duty >= 1) {
- duty = 1;
- state = 1;
- }
- } else {
- duty-=0.1;
- if(duty <= 0) {
- duty = 0;
- state = 0;
- }
- }
- }
- }
- void PWMLED() {
- struct pwm_config pwmc[1];
- pwm_init(&pwmc[0], PWM_TCC0, PWM_CH_A, 500);
- pwm_start(&pwmc[0], 50);
- int state = 0;
- int duty = 0;
- while(true) {
- if(state == 0) {
- duty++;
- pwm_start(&pwmc[0], duty);
- if(duty == 100) {
- state = 1;
- }
- } else {
- duty--;
- pwm_start(&pwmc[0], duty);
- if(duty == 0) {
- state = 0;
- }
- }
- delay_ms(5);
- };
- }
- int main(void)
- {
- sysclk_init();
- board_init();
- OSC.CTRL |= OSC_RC32MEN_bm; // Change to RC32KEN_bm or RC2MEN_bm
- while (!(OSC.STATUS & OSC_RC32MRDY_bm)); // Change to RC32KRDY_bm or RC2MRDY_bm
- DFLLRC32M.CTRL = DFLL_ENABLE_bm;
- CCP = CCP_IOREG_gc;
- CLK.CTRL = CLK_SCLKSEL_RC32M_gc; // Change to RC32K_gc or RC2M_gc
- OSC.CTRL &= ~OSC_RC2MEN_bm;
- PWMLED(); // Output PWM signal to external LED
- //boardLED(); // Output PWM using delay to on-board LED
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement