Why is no PWM signal generated using Timer 2?












1















I managed to work with timer 0 and 1 but am unable to generate a PWM with timer 2 in my atmega328p.



This is the code:



#include <avr/io.h>

int main(void)
{
/* PD6 output */
DDRD |= (1 << DDD6);

/* 50% duty cycle */
OCR2A = 128;

/* fast PWM */
TCCR2A |= (1 << WGM21) | (1 << WGM20);

/* prescaler = 8 */
TCCR2B |= (1 << CS21);

while (1);

}


Could someone explain what the issue is and why I am not seeing a pwm signal on pin 6 of my arduino uno board?



Thanks










share|improve this question









New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1





    The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

    – MichaelT
    2 hours ago













  • I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

    – VE7JRO
    2 hours ago
















1















I managed to work with timer 0 and 1 but am unable to generate a PWM with timer 2 in my atmega328p.



This is the code:



#include <avr/io.h>

int main(void)
{
/* PD6 output */
DDRD |= (1 << DDD6);

/* 50% duty cycle */
OCR2A = 128;

/* fast PWM */
TCCR2A |= (1 << WGM21) | (1 << WGM20);

/* prescaler = 8 */
TCCR2B |= (1 << CS21);

while (1);

}


Could someone explain what the issue is and why I am not seeing a pwm signal on pin 6 of my arduino uno board?



Thanks










share|improve this question









New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
















  • 1





    The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

    – MichaelT
    2 hours ago













  • I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

    – VE7JRO
    2 hours ago














1












1








1








I managed to work with timer 0 and 1 but am unable to generate a PWM with timer 2 in my atmega328p.



This is the code:



#include <avr/io.h>

int main(void)
{
/* PD6 output */
DDRD |= (1 << DDD6);

/* 50% duty cycle */
OCR2A = 128;

/* fast PWM */
TCCR2A |= (1 << WGM21) | (1 << WGM20);

/* prescaler = 8 */
TCCR2B |= (1 << CS21);

while (1);

}


Could someone explain what the issue is and why I am not seeing a pwm signal on pin 6 of my arduino uno board?



Thanks










share|improve this question









New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I managed to work with timer 0 and 1 but am unable to generate a PWM with timer 2 in my atmega328p.



This is the code:



#include <avr/io.h>

int main(void)
{
/* PD6 output */
DDRD |= (1 << DDD6);

/* 50% duty cycle */
OCR2A = 128;

/* fast PWM */
TCCR2A |= (1 << WGM21) | (1 << WGM20);

/* prescaler = 8 */
TCCR2B |= (1 << CS21);

while (1);

}


Could someone explain what the issue is and why I am not seeing a pwm signal on pin 6 of my arduino uno board?



Thanks







timers






share|improve this question









New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question









New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question








edited 12 hours ago









Duncan C

1,9801618




1,9801618






New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 13 hours ago









traduceradtraducerad

1062




1062




New contributor




traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






traducerad is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.








  • 1





    The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

    – MichaelT
    2 hours ago













  • I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

    – VE7JRO
    2 hours ago














  • 1





    The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

    – MichaelT
    2 hours ago













  • I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

    – VE7JRO
    2 hours ago








1




1





The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

– MichaelT
2 hours ago







The post is definitely on topic. I don't understand why it has attracted a vote to be closed.

– MichaelT
2 hours ago















I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

– VE7JRO
2 hours ago





I am the one who up-voted the question, one of the three up-votes for the answer, and just up-voted your comment :)

– VE7JRO
2 hours ago










1 Answer
1






active

oldest

votes


















3














The output compare unit of timer 2 is connected to pins PB3 (OC2A) and PD3 (OC2B). So you have to configure those as outputs.
Keep in mind that you can't choose any pin when using hardware pwm, this hardware feature is linked to specific pins.



You also have to set COM2A1 in TCCR2A. Otherwise OC2A is disconnected from the output compare unit (ref: Table 17-3 in datasheet).
The effect of COM2A0/1 depends on the configuration in WGM20-WGM22.
The same applies to OC2B respectively.






share|improve this answer


























  • I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

    – traducerad
    7 hours ago











  • I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

    – Sim Son
    6 hours ago














Your Answer






StackExchange.ifUsing("editor", function () {
return StackExchange.using("schematics", function () {
StackExchange.schematics.init();
});
}, "cicuitlab");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "540"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






traducerad is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f63230%2fwhy-is-no-pwm-signal-generated-using-timer-2%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









3














The output compare unit of timer 2 is connected to pins PB3 (OC2A) and PD3 (OC2B). So you have to configure those as outputs.
Keep in mind that you can't choose any pin when using hardware pwm, this hardware feature is linked to specific pins.



You also have to set COM2A1 in TCCR2A. Otherwise OC2A is disconnected from the output compare unit (ref: Table 17-3 in datasheet).
The effect of COM2A0/1 depends on the configuration in WGM20-WGM22.
The same applies to OC2B respectively.






share|improve this answer


























  • I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

    – traducerad
    7 hours ago











  • I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

    – Sim Son
    6 hours ago


















3














The output compare unit of timer 2 is connected to pins PB3 (OC2A) and PD3 (OC2B). So you have to configure those as outputs.
Keep in mind that you can't choose any pin when using hardware pwm, this hardware feature is linked to specific pins.



You also have to set COM2A1 in TCCR2A. Otherwise OC2A is disconnected from the output compare unit (ref: Table 17-3 in datasheet).
The effect of COM2A0/1 depends on the configuration in WGM20-WGM22.
The same applies to OC2B respectively.






share|improve this answer


























  • I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

    – traducerad
    7 hours ago











  • I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

    – Sim Son
    6 hours ago
















3












3








3







The output compare unit of timer 2 is connected to pins PB3 (OC2A) and PD3 (OC2B). So you have to configure those as outputs.
Keep in mind that you can't choose any pin when using hardware pwm, this hardware feature is linked to specific pins.



You also have to set COM2A1 in TCCR2A. Otherwise OC2A is disconnected from the output compare unit (ref: Table 17-3 in datasheet).
The effect of COM2A0/1 depends on the configuration in WGM20-WGM22.
The same applies to OC2B respectively.






share|improve this answer















The output compare unit of timer 2 is connected to pins PB3 (OC2A) and PD3 (OC2B). So you have to configure those as outputs.
Keep in mind that you can't choose any pin when using hardware pwm, this hardware feature is linked to specific pins.



You also have to set COM2A1 in TCCR2A. Otherwise OC2A is disconnected from the output compare unit (ref: Table 17-3 in datasheet).
The effect of COM2A0/1 depends on the configuration in WGM20-WGM22.
The same applies to OC2B respectively.







share|improve this answer














share|improve this answer



share|improve this answer








edited 2 hours ago

























answered 13 hours ago









Sim SonSim Son

966




966













  • I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

    – traducerad
    7 hours ago











  • I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

    – Sim Son
    6 hours ago





















  • I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

    – traducerad
    7 hours ago











  • I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

    – Sim Son
    6 hours ago



















I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

– traducerad
7 hours ago





I tried what you suggested, but that doesn't seem to work: paste.ubuntu.com/p/K8KmKnqyvV Any suggestions?

– traducerad
7 hours ago













I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

– Sim Son
6 hours ago







I compiled/flashed your code and I found that in TCCR2A you have to set COM2A1 (see my edit).

– Sim Son
6 hours ago












traducerad is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















traducerad is a new contributor. Be nice, and check out our Code of Conduct.













traducerad is a new contributor. Be nice, and check out our Code of Conduct.












traducerad is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Arduino Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2farduino.stackexchange.com%2fquestions%2f63230%2fwhy-is-no-pwm-signal-generated-using-timer-2%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Contact image not getting when fetch all contact list from iPhone by CNContact

count number of partitions of a set with n elements into k subsets

A CLEAN and SIMPLE way to add appendices to Table of Contents and bookmarks