Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
Другие темы раздела
ATmega AVR itoa() не работает с шестизначными числами https://www.cyberforum.ru/ avr/ thread3008535.html
int32_t var9 = 209144; itoa(var9, Height_diff, 10); Вместо 209144 выводит 12536 ultoa(var9, Height_diff, 10); С ultoa выводит 209144 Получается, если больше 5 цифр в числе, то itoa неправильная работает. Так и должно быть? И нужно использовать тогда ultoa?
ATmega AVR Запись отрицательного числа в EEPROM
Пробую записать с помощью eeprom_write_dword, но сохраняется как положительное число. Как сохранить отрицательное число?
ATmega AVR Фузы ATmega328PB Добрый день. Совсем запутался с галочками фузов в программаторе Atmel Studio 7, да еще свои фузы у ATmega328PB, подскажите/просветите. https://www.cyberforum.ru/ avr/ thread3007446.html ATmega AVR Проблема с таймер/счётчиком 0 на Attiny13A https://www.cyberforum.ru/ avr/ thread3005939.html
Возникла проблема при изучении работы таймер/счетчика 0. Камень должен мигать светодиодами каждую секунду, но вместо этого не происходит вообще ничего. Я пробовал менять регистр OCR0, менять вектор прерывания. Ничего не изменилось, абсолютно ничего, светодиоды просто не горят (светодиоды исправны, я проверил) #define F_CPU 9600000UL #include <avr/io.h> #include <util/delay.h> #include...
Опрос матричной клавиатуры. Подтверждение отправки ATmega AVR
Здравствуйте. К своему проекту хотел подключить автомат опроса клавиатуры Павла Бобкова. Связаться с автором не удалось по этому надеюсь на помощь форумчан. Автомат работает без проблем, но мне нужно немного дополнить её. В частности, мне не удаётся сделать отправку набранного кода по нажатию кнопки * и сделать сброс по нажатию кнопки #. Может кто сможет помочь? Файлы исходника в winavr...
ATmega AVR Предупреждение AVG-GCC Прошу помочь/подсказать. Осваиваю avr-gcc. Простая функция и все работает = // Готовность UART приемника , если = 0 ТО Не ГОТОВ !! если <> 0 ТО ГОТОВ !! uint8_t Uart0_readyRXC() { uint8_t mb; #if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega328__) mb = UCSR0A & 0b10000000; #endif https://www.cyberforum.ru/ avr/ thread3002994.html
ATmega AVR Выбор типа переменных Добрый вечер. Я не силен в СИ и поэтому есть вопрос никогда не работал с дробными числами, а в проекте мне нужно оперировать(/,*) с числами в диапазоне от 0.0208 до 15000 в результате, допустим, деления целого числа на дробное частное от деления мне нужно округлить/взять целую часть и представить результат как 2_Х байтное число. Вот и вопрос об оптимальном выборе типа... https://www.cyberforum.ru/ avr/ thread3002288.html Atmega328 rs485 на прерываниях ATmega AVR
Всем привет. Пытаюсь реализовать прием и передачу по rs485 на прерываниях. Тоесть с компьютера отправить массив из 14 байт и получить его обратно. Все это работает но не долго. В какой то момент ножка направления передачи остается поднятой и все встает колом. Такое ощущение что прерывание по отправке не всегда срабатывает и не скидывает ножку направления. ISR(USART_TX_vect) // прерывание по...
ATmega AVR Искажаются данные в структуре https://www.cyberforum.ru/ avr/ thread3000899.html
Здравтсвуйте. Контроллер atmega328. Среда Microchip studio. Написал класс протокола общения между газовым котлом и мк. Все как бы работает нормально, но раз за пару суток температура, принимаемая от котла, оказывается больше 78 градусов и котел отключается. Данный механизм реализован в основном цикле для защиты, на всякий случай. Ошибка не из-за неправильной приема-передачи, так как пробовал...
ATmega AVR Можно ли создать массив в прерывании? https://www.cyberforum.ru/ avr/ thread3000807.html
В прерывании одновременно считывается АЦП и создается массив. Или лучше вынести формирование массива в main? ISR (TIMER1_COMPA_vect) { float a = ADC_read(); for (i=0; i<size; i++) { arr=a; } i==0; }
ATmega AVR Как найти максимальное значение АЦП за секунду?
Без использования массива
ATmega AVR Отладка Intel HEX файла, предназначенного для AtMega8A https://www.cyberforum.ru/ avr/ thread3000715.html
Здравствуйте. Подскажите пожалуйста, чем и как можно отладить имеющий .HEX файл (формата Intel HEX)?
0 / 0 / 0
Регистрация: 16.05.2022
Сообщений: 18
0

Весы на atmega8 - ATmega AVR - Ответ 16377529

29.07.2022, 22:45. Показов 1489. Ответов 8
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Делаю весы на atmega8. Использую плату АЦП hx711 и 4 тензодатчика полумост до 50 кг.
Подключаю их по схеме в закрепе.
Также вот ссылки на проект в протеус https://drive.google.com/file/... sp=sharing
Ссылка на исходник из Microchip Studio https://drive.google.com/file/... sp=sharing
Для платы hx711 использую библиотеку
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "hx711.h"
 
#define HX_PORT PORTB
#define HX_DDR  DDRB
#define HX_PIN  PINB
 
#define data 5
#define sck 4
 
void HX711_Init(void)
{   
    //sck выход, data - вход
    HX_DDR |= (1<<sck);
    HX_DDR &= ~(1<<data);
    
    //подтягиваем data к питанию, на sck устанавливаем лог.единицу
    HX_PORT |= (1<<data);
    HX_PORT &= ~(1<<sck);
}
 
uint32_t Weighing(void)
{
    //результат взвешивания
    uint32_t adc_value = 0;
    
    uint8_t i = 0;
    adc_value = 0;
 
    HX_PORT &= ~(1<<sck);
    //ждём пока закончится преобразование
    while((HX_PIN & (1<<data)));
    
    for(i=0; i<24; i++)
    {
        //поднимаем строб
        HX_PORT |= (1<<sck);
        //сдвигаем значение АЦП влево, теперь значение АЦП выглядит так .......0
        adc_value <<= 1;
        //опускаем строб
        HX_PORT &= ~(1<<sck);
        //проверяем, что на выводе data, если ноль то самый правый символ так и останется ноль .......0
        //если 1, то самый правый символ будет один .......1
        if(HX_PIN & (1<<data))
        {
            adc_value++;
        }   
    }
 
    //выборки будем брать с канала А, с коэф.усиления 128
    //поэтому стробируем еще один раз
    HX_PORT |= (1<<sck);
    HX_PORT &= ~(1<<sck);
    
    return adc_value;
}
Так вот, в протеус все работает, а в железе нет. В железе с нагрузкой и без выводит 8388607. Спаяно все вроде правильно.
В чем ошибка? В программе? Или в пайке?

Вернуться к обсуждению:
Весы на atmega8 ATmega AVR
Миниатюры
Весы на atmega8  
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2022, 22:45
Готовые ответы и решения:

Разница между ATMEGA8-16AI и ATMEGA8-16AU
Кто подскажет, в чем разница между ATMEGA8-16AI и ATMEGA8-16AU. Смотрю в Платане цены между ними...

Напольные весы на ATmega8
У меня курсовой проект по микропроцессорам на тему электронные напольные весы с индикатором с...

Весы
Имеются чашечные весы и гири с массами равными степенями двойки. На левую чашу весов помещается...

Весы
Помогите решить задачу. Имя входного файла: sum.dat Имя выходного файла: sum.sol Ограничение...

8
29.07.2022, 22:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2022, 22:45
Помогаю со студенческими работами здесь

Весы
Помогите закончить программу. Имя входного файла: sum.dat Имя выходного файла: sum.sol...

Весы
Есть Вот такая задача. Условие во вложении. Не понимаю, как к ней подступиться со стороны жадного...

Весы
Напишите класс Balance для описания весов с двумя чашами. На левую и правую чашу объекта будут...

Электронные весы
Неплохие задачи по С++! Подзабыл его( выручайте, буду очень благодарен 4. Ваша задача - грамотно...

Падение на весы
Здравствуйте уважаемые форумчане. Планета Земля. Ускорение свободного падения и прочие...

Задача: Весы
После того, как Урфин Джюс овладел Изумрудным городом, у него появилось любимое занятие —...

Нарисовать весы
помогите нарисовать! вообще не умею и не понимаю как это делать( рисунок не идеальный но...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru