极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14554|回复: 8

各位有帮我解答一下Arduino的一个Interrupt或者是Timer的代码的问题

[复制链接]
发表于 2014-2-22 00:38:32 | 显示全部楼层 |阅读模式
是Arduino Due
我的老师给了我一个超级难的代码(起码对于我来说是这样的),说这个对于我来说很难让我去网上论坛问网友的意见来回答问题(不要鄙视我,我发誓他真的是这样子对我说的)。
以下是代码(其实是他从一个Arduino的论坛上看到的):

===========================================

volatile boolean l;

//TC1 ch 0
void TC3_Handler()
{
        TC_GetStatus(TC1, 0);
        digitalWrite(13, l = !l);
}

void startTimer(Tc *tc, uint32_t channel, IRQn_Type irq, uint32_t frequency) {
        pmc_set_writeprotect(false);
        pmc_enable_periph_clk((uint32_t)irq);
        TC_Configure(tc, channel, TC_CMR_WAVE | TC_CMR_WAVSEL_UP_RC | TC_CMR_TCCLKS_TIMER_CLOCK4);
        uint32_t rc = VARIANT_MCK/128/frequency; //128 because we selected TIMER_CLOCK4 above
        TC_SetRA(tc, channel, rc/2); //50% high, 50% low
        TC_SetRC(tc, channel, rc);
        TC_Start(tc, channel);
        tc->TC_CHANNEL[channel].TC_IER=TC_IER_CPCS;
        tc->TC_CHANNEL[channel].TC_IDR=~TC_IER_CPCS;
        NVIC_EnableIRQ(irq);
}

void setup(){
        pinMode(13,OUTPUT);
        startTimer(TC1, 0, TC3_IRQn, 4); //TC1 channel 0, the IRQ for that channel and the desired frequency
}

void loop(){
}
======================================================


能行对行的跟我解释一下这个代码是怎么运作的吗,插上电路其实就是小灯儿1秒钟闪一次。

以下是我老师给我的问题,说要收集网友答案然后写进实验报告里:
1. How many interrupt levels are available in the Arduino Due? Why?
2.How many independent timers are available in the Arduino Due? Why?
3.How can the timers be connected to the interrupt levels? Why?
4.Can you vary the blinking frequency in this sketch? Why and How?
5.Can you use a different timer and channel? Why and How?
6.Explain, line by line, how this code works.
回复

使用道具 举报

发表于 2014-2-22 01:46:42 | 显示全部楼层
学生真苦逼啊,代码就不说了,下面问题还是英文的。诶。。。。  我是彻底不明白鸟
回复 支持 反对

使用道具 举报

发表于 2014-2-22 13:43:26 | 显示全部楼层
1.Arduino Due 的中斷等級有幾個? 為什麼?
2.Arduino Due 可以使用的獨立計時器有幾個? 為什麼?
3.如何將計時器連接到中斷等級? 為什麼?
4.你可以在sketch中改變閃爍頻率嗎? 為什麼,該如何做?
5.你可以使用不同的定時器和頻道嗎? 為什麼,該如何做?
6.解釋, 逐行下來, 這段程式是如何運作?
回复 支持 反对

使用道具 举报

发表于 2014-2-22 16:17:16 | 显示全部楼层
神问题,那些“为什么”问的很神,文档里都有答案,这问题就像“人有几只眼睛,为什么?”一样,翻下due主控制芯片的文档,里面都有答案,学习一块板子,首先要通读主芯片的文档,至少要了解片子上有什么资源,用的时候能参看对应章节。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-25 23:41:52 | 显示全部楼层
pathletboy 发表于 2014-2-22 16:17
神问题,那些“为什么”问的很神,文档里都有答案,这问题就像“人有几只眼睛,为什么?”一样,翻下due主控 ...

哈哈,看来我的问题太小白了。可能老师就是让我搜文档的吧?我之前没用这板子,这板子是学校的,有没有网上的资源链接之类的给一下我?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-25 23:42:34 | 显示全部楼层
ethan42411 发表于 2014-2-22 13:43
1.Arduino Due 的中斷等級有幾個? 為什麼?
2.Arduino Due 可以使用的獨立計時器有幾個? 為什麼?
3.如何將 ...

谢谢大哥不光帮我翻译出来,而且还是翻译成繁体,太谢谢了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-25 23:42:56 | 显示全部楼层
shihaipeng04 发表于 2014-2-22 01:46
学生真苦逼啊,代码就不说了,下面问题还是英文的。诶。。。。  我是彻底不明白鸟

大伙说让我查文档
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-26 00:57:40 | 显示全部楼层
en17909729 发表于 2014-2-25 23:42
大伙说让我查文档

不是啊。我都还没加群呢。群号是多少?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-26 00:58:14 | 显示全部楼层
pathletboy 发表于 2014-2-22 16:17
神问题,那些“为什么”问的很神,文档里都有答案,这问题就像“人有几只眼睛,为什么?”一样,翻下due主控 ...

大神能不能帮我点一下我的问题答案在哪里牙。。英文不是很看得懂啊。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-13 20:07 , Processed in 0.036006 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表