小编Bre*_*man的帖子

C - AVR - 简单的PORTB,DDRB,PINB说明

我正在研究学校项目,需要使用AVR atmega控制器学习C语言的基础知识.

我不明白一切都是如何建立的.例如PORTB,PORTD,DDRB; DDRD,PINB,PIND等等.我不知道if语句,while循环等是如何工作的.

有人可以给我一个简短的解释吗?

我有一些代码行......

DDRB = 0b00000011; // I know that here DDRB is set to input/output
Run Code Online (Sandbox Code Playgroud)

并且if语句:

if (PINB & (1 << PINB0)){
    A = true;
}
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这个"if语句"是如何工作的吗?为什么PINB & (1<< PINB0))

谢谢

c avr atmega

14
推荐指数
4
解决办法
5万
查看次数

为什么 cland 看不到我的自定义库位置

问题陈述:

我在自定义位置安装了一个库,编译和链接工作正常,但 clangd 报告与自定义库相关的各种错误。

我的 Makefile 有以下标志:

CFLAGS += -I/usr/local/share/mylib                             
LDFLAGS += -lmylib -L/usr/local/lib/
...
<snip>
Run Code Online (Sandbox Code Playgroud)

但是,clangd 不知道如何查找头文件,因此我的编辑器显示如下错误,但没有帮助:

#include <mylibheader.h>    'mylibheader.h' file not found

mylib_type1_t foo                     unknown type name 'mylib_type1_t'

...
<snip>
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索错误和关键字clangd, clangd config,clangd .clang-format未能在 SO 或其他地方产生任何有用的东西(因此这个问题)。

问题是:

如何告诉 clangd 我的非标准标头在哪里,以便它不会显示虚假的“文件未找到”警告?

c linux makefile language-server-protocol clangd

5
推荐指数
1
解决办法
4840
查看次数

电子邮件大量文本:"参数列表太长"

我的问题是通过gmail在电子邮件中发送大量文本.

我正在开发一个简单的应用程序,它需要能够执行HTTP GET请求,并使用gmail帐户将收到的HTML作为文本发送.我相信我正在使用SSMTTP通过gmail发送文本,我使用perl LWP::UserAgent来执行GET请求.当我执行我的perl代码时,由于发送了大量文本,我收到以下错误:

不能执行"/ bin/sh":参数列表太长

我的互联网搜索找到了这些来源:

这让我更好地理解了约束,但由于以下原因,它并没有真正解决我的问题:

  • 我无法重新编译内核
  • 我不能使用find或我自己的bash功能等将其"分解成小块" .

我试图让这个按照大量文本的要求工作.

这是我的perl代码的摘录:

    # Uses ssmtp to send an email
    sub sendEmail{

     my ($destination, $subject, $body) = @_;

     #say $destination; say $subject;say $body;

     # Create the bash command
     my $command="echo \'$body\' | mail -s \'$subject\' $destination";

     say "\nExecuting shell command: $command";
     my $output = qx($command);
    }
Run Code Online (Sandbox Code Playgroud)

请不要试图说服我不应该发送带有HTML文本的电子邮件.这就是我被要求做的事情,所以我试图按要求做.

编辑: 感谢您的评论和帮助.这是一个很大的帮助.我正在轻松进入bash和perl脚本编写,所以如果这是一个过于无知的问题我会道歉,但希望这些答案有助于像我这样的未来新手.对于downvotes,评论解释真的很感激.谢谢!

linux bash shell perl

-1
推荐指数
1
解决办法
328
查看次数

标签 统计

c ×2

linux ×2

atmega ×1

avr ×1

bash ×1

clangd ×1

language-server-protocol ×1

makefile ×1

perl ×1

shell ×1