- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前正在做一项作业,当按下白板上的按钮时将调用一个电话号码。目前我的电话正在调用我选择的号码,但是他们是一个接一个地拨,而不是按下按钮时拨。我的循环中是否缺少一些真正基本的东西?
/*
* File: assignment5.c
*
*/
// CONFIG1
#pragma config FOSC = INTOSC // Oscillator Selection Bits (INTOSC oscillator: I/O function on CLKIN pin)
#pragma config WDTE = OFF // Watchdog Timer Enable (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable (PWRT disabled)
#pragma config MCLRE = ON // MCLR Pin Function Select (MCLR/VPP pin function is MCLR)
#pragma config CP = OFF // Flash Program Memory Code Protection (Program memory code protection is disabled)
#pragma config BOREN = ON // Brown-out Reset Enable (Brown-out Reset enabled)
#pragma config CLKOUTEN = OFF // Clock Out Enable (CLKOUT function is disabled. I/O or oscillator function on the CLKOUT pin)
#pragma config IESO = OFF // Internal/External Switchover Mode (Internal/External Switchover Mode is disabled)
#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enable (Fail-Safe Clock Monitor is disabled)
// CONFIG2
#pragma config WRT = ALL // Flash Memory Self-Write Protection (000h to 1FFFh write protected, no addresses may be modified by PMCON control)
#pragma config CPUDIV = CLKDIV6 // CPU System Clock Selection Bit (CPU system clock divided by 6)
#pragma config USBLSCLK = 48MHz // USB Low SPeed Clock Selection bit (System clock expects 48 MHz, FS/LS USB CLKENs divide-by is set to 8.)
#pragma config PLLMULT = 3x // PLL Multipler Selection Bit (3x Output Frequency Selected)
#pragma config PLLEN = DISABLED // PLL Enable Bit (3x or 4x PLL Disabled)
#pragma config STVREN = ON // Stack Overflow/Underflow Reset Enable (Stack Overflow or Underflow will cause a Reset)
#pragma config BORV = LO // Brown-out Reset Voltage Selection (Brown-out Reset Voltage (Vbor), low trip point selected.)
#pragma config LPBOR = OFF // Low-Power Brown Out Reset (Low-Power BOR is disabled)
#pragma config LVP = OFF // Low-Voltage Programming Enable (High-voltage on MCLR/VPP must be used for programming)
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#define _XTAL_FREQ 4000000
#include <stdio.h>
#include <stdlib.h>
/*
*
*/
void pulse(void){
RC6 = 0; //drop clock
__delay_us(5);
RC6 = 1;
__delay_us(5);
}
void tone_0(){
char i;
RC7 =0; //data low
pulse();
RC7 =1;
pulse();
RC7 =0;
pulse();
RC7 =1;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
// RC7 = 1;
//for (i = 0;i<5;i++)
// pulse();
//__delay_ms(195);
}
void tone_1(){
char i;
RC7 =1; //data low
pulse();
RC7 =0;
pulse();
RC7 =0;
pulse();
RC7 =0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
// RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_2(){
char i;
RC7 = 0; //data low
pulse();
RC7 = 1;
pulse();
RC7 =0;
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_3(){
char i;
RC7 =1; //data low
pulse();
RC7 =1;
pulse();
RC7 =0;
pulse();
RC7 =0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
// pulse();
//__delay_ms(195);
}
void tone_4(){
char i;
RC7 = 0; //data low
pulse();
RC7 =0;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
// RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_5(){
char i;
RC7 =1; //data low
pulse();
RC7 = 0;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
// pulse();
//__delay_ms(195);
}
void tone_6(){
char i;
RC7 = 0; //data low
pulse();
RC7 = 1;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_7(){
char i;
RC7 = 1; //data low
pulse();
RC7 = 1;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_8(){
char i;
RC7 = 0; //data low
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
void tone_9(){
char i;
RC7 = 1; //data low
pulse();
RC7 = 0;
pulse();
RC7 = 0;
pulse();
RC7 = 1;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
//RC7 = 1;
//for (i = 0;i<5;i++)
//pulse();
//__delay_ms(195);
}
char dial(char i)
{
if(i == 0)
{
tone_6();
}
if(i == 1)
{
tone_7();
}
if(i == 2)
{
tone_3();
}
if(i == 3)
{
tone_3();
}
if(i == 4)
{
tone_8();
}
if(i == 5)
{
tone_6();
}
if(i == 6)
{
tone_9();
}
i++;
if(i > 6)
i = 0;
return i;
}
void main(){
char i = 0;
char buttontoggle = 0;
char count = 0;
__delay_ms(190);
OSCCON =0b00110100;
TRISC = 0;
ANSELC = 0;
TRISA = 0b11111111;
WPUB6 = 1;
PORTC = 0b10000100; //clock high, data high, CE high
__delay_ms(10);
RC2 = 0; //turn it on.
__delay_ms(10);
while(1)
{
if(RB6 == 0 )
{
buttontoggle = 0;
}
if(RB6 == 1)
{
buttontoggle = 1;
}
if( buttontoggle == 1)
{
count = dial(count);
}
}
/*while (1){
RC2 = 0; //turn it on.
__delay_ms(50);
RC7 =1; //data low
pulse();
RC7 =0;
pulse();
RC7 =0;
pulse();
RC7 =1;
pulse();
RC7 = 0;
pulse();
__delay_ms(195);
RC7 = 1;
for (i = 0;i<5;i++) pulse();
__delay_ms(195);
RC2 =1;
}*/
}
最佳答案
也许您需要查看硬件。您尚未设置端口 B,但我们假设它是一个输入。 RB6 的值(value)会一直走低吗?
如果 RB6 设置正确,只要按下按钮,此代码就会连续调用您的号码(即没有退出)。
您的拨号例程(正在请求 case 语句!)也在自修改参数 i 并返回它,然后您将返回值分配给调用参数 (count)。这有点令人费解,可能会导致奇怪的行为。
关于c - PIC16F1459带DTMF芯片的电话拨号环路问题(C语言编写),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30133949/
我开发了 android 应用程序,可以在单击按钮时调用其他人,但现在我想在需要时将 dtmf 音调从应用程序发送到该呼出电话。那么该怎么做呢? 最佳答案 其实是可以的。它不是那么明显,也不是那么优雅
我有以下拨号方案: exten => 224,1,NoOp(IN CALL : ${CALLERID(num)} => ${EXTEN}) exten => 224,n,Dial(${
我想知道是否有人遇到过在 iPhone SDK 中生成铃声的方法。我正在尝试生成 DTMF 音调,但似乎找不到任何实质性内容。我还希望能够指定播放音调的时间(即模拟按住按钮而不是简单地按下按钮....
所以我打开了一个我在 audacity 中生成的 DTMF 音调的 .raw 文件。我抓取了一个类似于维基百科文章中的 jar 装 goertzel 算法。虽然它似乎没有解码正确的数字。 解码后的数字
我正在尝试为基于 WebRTC 的 Android/iOS 应用程序实现 DTMF。是否有适用于 Android 的 DTMF API?我试过调用以下内容: m_peerConnectionFacto
所以我打开了一个我在 audacity 中生成的 DTMF 音调的 .raw 文件。我抓取了一个类似于维基百科文章中的 jar 装 goertzel 算法。虽然它似乎没有解码正确的数字。 解码后的数字
我正在尝试为基于 WebRTC 的 Android/iOS 应用程序实现 DTMF。是否有适用于 Android 的 DTMF API?我试过调用以下内容: m_peerConnectionFacto
我需要在我的应用程序中开发拨号盘,就像原生 iPhone 手机应用程序拨号盘一样。我已将 .wav 文件添加到我的项目中,以便在单击数字按钮时播放声音,但它们太大声了。但 iPhone 手机应用程序拨
我正在尝试执行以下操作 我正在使用我的 java 应用程序给另一个人打电话(已经完成并且工作正常)。 然后我正在播放录音,例如“请按 1 以继续用英语”(已经完成并且工作正常)。 现在我想检测那个人按
我已经阅读了有关用于检测带内 dtmf 的 freeswitch 中的 start_dtmf 应用程序。 我已经测试过这个,但它没有检测到任何 DTMF。 请帮我。 最佳答案 老问题,但值得
我只需要一段 java 代码,它可以从麦克风中检测 DTMF,并将字符打印到 System.out。我一直在寻找,但找不到。 最佳答案 关于用 Java 捕获音频的 Oracle 文档: http:/
从此处找到的示例开始:https://trac.pjsip.org/repos/wiki/Getting-Started/Android ,我设法构建并运行了 pjsua2 示例应用程序。 问题是我无
有什么方法可以动态生成上行链路 DTMF 音(即接收器听到它)? 当我查看 android 源代码时,我看到了一个名为 startDTMF() 的函数,这正是我所需要的,但我找不到任何允许我访问该函数
我正在使用 android SIP(android.net.sip) 进行 VOIP 通话。正在尝试发送 DTMF。在SipAudioCall类的android中给出了两个方法 void sendDt
我想在接听电话后调用一个号码,这通常是通过通话中的拨号盘完成的。 我尝试了以下方法,但开始调用新电话(ACTION_VIEW 也是如此)。 Intent dial = new Intent(Inten
我正在调用一个带有号码的通话应用程序,然后通过 发送 dtmf 音 String number = "tel:+1234567,890#"; Intent c1 = new Intent(androi
Android 的新手。我有一个应用程序正在运行,我正在生成 DTMF 信号并解释微 Controller 生成的内容。我成功地生成了音调,但是音调是通过扬声器播放的,我想通过一个拼接的耳机插孔播放音
我有一个拨号方案,我想要的是,如果用户按任意键然后再次播放文件,但我不明白如何在拨号方案中获取dtmf 值。这是我的拨号方案: [callme] exten => s,1,Answer exten
我正在开展一个项目,该项目要求我的应用能够在通话期间以语音的上行链路频率发送 DTMF 音。 我的两个条件是: 我们不使用定制的 Android 平台 我们不需要root手机 我花了几天时间做功课,并
我正在将 CallKit 与 VOIP 应用集成。我能够拨入和拨出电话。我遵循了以下步骤: 配置 Audio Session 在(didActivate)中启动音频 在(didDeActivate)中
我是一名优秀的程序员,十分优秀!