www.kn34pc.com

Форум на силистренските радиолюбители
Дата и час: 19 Юли 2019, 07:04

Часовете са според зоната UTC + 2 часа [ DST ]




Напиши нова тема Отговори на тема  [ 7 мнения ] 
Автор Съобщение
МнениеПубликувано на: 02 Сеп 2018, 19:14 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 972
Местоположение: Силистра
Статична променлива, използвана във функция:

static uint8_t m;

Нуждае ли се от първоначала инициализация (static uint8_t m = 0;)?
Виждам, че се инициализира в 0 при първото изпълнение на функцията и в последващите изпълнения "помни" предишната си стойност,
но не съм сигурен доколко е правилно да се надявам, че ще е първоначално винаги равна на 0?


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 13 Ное 2018, 11:17 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 972
Местоположение: Силистра
четно-нечетно:
Цитат:
if (a % 2)
{ четно }
else
{ нечетно }
//------------------
if (a & 0x1)
{ нечетно }
else
{ четно }


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 13 Ное 2018, 11:21 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 972
Местоположение: Силистра
LCD 16x1
С lcd.begin(16, 1); дисплеят показва първите 8 символа.

варианти: разбиване на части (два реда по 8 символа) и представяне като 16x2:
// http://forum.arduino.cc/index.php?topic ... msg3047069
Код за потвърждение:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 7, 6, 5, 4);
void setup() {
  lcd.begin(16, 2);
  lcd.print("First8ch");
  lcd.setCursor(40, 0);
  lcd.print("Last8ch.");
void loop() {
}

или като 8x2
Код за потвърждение:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 13, 7, 6, 5, 4);
void setup() {
  lcd.begin(8, 2);
  lcd.print("12345678");
  lcd.setCursor(0, 1);
  lcd.print("12345678");
void loop() {
}

неудобство: трябва "да раделям" надписа на 2 по 8 символа :smt069


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Юли 2019, 11:09 
Offline
Аватар

Регистриран на: 09 Юли 2017, 13:53
Мнения: 33
Местоположение: Благоевград
ATMEGA328P-AU има ли вграден boot-loader и може ли да се програмира чрез Arduino IDE ?
T.e. идеята е може ли да се направи платка, на която вместо готов ардуино-нано модул,
се сложи ATMEGA328P-AU + USB-uart +.... другите нужни неща от модула и да се използва с готов firmware за Ардуино-ИДЕ,
без програматор и други фокуси ?

Харесал съм UR5FFR NWT, Si5351 Network Analyzer ( http://dspview.com/viewforum.php?f=25 ).
Искам ми се да го пусна на собствена платка, без модули, всички компоненти на основната платка.
ATMEGA328P-AU и Si5351 захранени с 3.3V, отпадат преобразувателите на ниво по I2C.
керамични филтри ФП1П-023 (измерих 5-6, не са лоши, има ги налични по 50 стотинки)
NE602, AD8307 захранени от добре филтрирано с дросели и FB и кондензатори 5V от USB...
Голям хубав USB-B конектор .... BNC-та на платката.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Юли 2019, 14:41 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 972
Местоположение: Силистра
Няма вграден bootloader. С помощта на AVR програматор, с Arduino IDE из менютата му "наливаш" bootloader в новия микроконтролер и си готов с Arduino. Дори може да го програмираш с друго Arduino, играещо роля на програматор. След това контролерът ще е достъпен през RX/TX - с USB/TTL конвертор към компютърното USB.

С Arduino, захранено на 3,3 волта не съм правил опити. Fclk max ATMEGA328 за 3,3V е ~ 13,3 MHz. Arduino Nano/Pro Mini на 3,3V са с кварцов резонатор 8 MHz.
Прикачени файлове:
outlaw_d.jpg
outlaw_d.jpg [ 80.07 KiB | Прегледано 76 пъти ]

UR5FFR Si5351 Network Analyzer работи добре. При мен - с керамични филтри 455 kHz / 15 kHz от cordless телефони на 46/49 MHz.
За измервателни цели предпочитам SMA конектори.


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 08 Юли 2019, 15:17 
Offline
Аватар

Регистриран на: 09 Юли 2017, 13:53
Мнения: 33
Местоположение: Благоевград
Ясно. Благодаря.
Току що успях да достигна предела на ЛУТ и ецнах платчици за Si5351. 3 от 4 изглеждат годни.
Поръчах едно НАНО от OLX...


Върнете се в началото
 Профил  
 
МнениеПубликувано на: 10 Юли 2019, 21:15 
Offline
Аватар

Регистриран на: 07 Дек 2006, 18:24
Мнения: 972
Местоположение: Силистра
брояч от 0 до 7, зануляване, пак от 0 до 7 ...
data = 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, ...

Код за потвърждение:
if ((data + 1) > 7)
  data = 0;
else
  data++;

по-късо:
Код за потвърждение:
data++; 
data &= 0b00000111;


Прикачени файлове:
count_0_7.zip [468 Байта]
1 пъти
Върнете се в началото
 Профил  
 
Покажи мненията от миналия:  Сортирай по  
Напиши нова тема Отговори на тема  [ 7 мнения ] 

Часовете са според зоната UTC + 2 часа [ DST ]


Кой е на линия

Потребители, разглеждащи този форум: 0 регистрирани и 0 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Форумът се задвижва от phpBB® Forum Software © phpBB Group
Преведено от yarnaudov.com