Jump to content

На чем писать  

560 members have voted

  1. 1. Что чаще используете в разработках?

    • Assembler
      156
    • C
      282
    • Что-то еще
      61


Recommended Posts

А что вы скажете про возможности программы алгоритм билдер? Те же возможности, что и в асме, но наглядность на порядок выше.Правда библиотек не очень то.

Share this post


Link to post
Share on other sites

Она мутная... и отладчика нет. Все равно что в супер-блокноте программу писать.

Я так и не понял как в ней писать программу, чтобы было хотябы похоже на FlowCode.

Ну, единственное отличие от блокнота - может вставлять куски кода настройки периферии где конфигурацию выбираешь через меню. Ну это как-то мелочи.... такую программу можно и отдельно сделать, в помощь к АврСтудии. Фактически то что, как правило конфигурация выбирается один раз в начале программы, ну съекономит немного времени на заглядывание в даташит - так ведь при работе с периферией всеравно придется туда заглядывать.

Share this post


Link to post
Share on other sites

Да я не про заглядывание в даташит, а про ускоренную по сравнению с обычным ассемблером разработку.

Если ассемблер и его методы знаешь,то вообще легко писать коды.

Как вы его сравнили с супер блокнотом то не забудьте вспомнить супер блокнот от winavr меня чуть не стошнило- ну привык я сразу к хорошему rolleyes.gif

Про Flowcode первый раз узнал.

Edited by vitalik_1984

Share this post


Link to post
Share on other sites

Конденсаторы Panasonic. Часть 4. Полимеры – номенклатура

В заключительной, четвертой статье из цикла «Конденсаторы Panasonic» рассматриваются основные достоинства и особенности использования конденсаторов этого японского производителя на основе полимерной технологии. Главной конструктивной особенностью таких конденсаторов является полимерный материал, используемый в качестве проводящего слоя. Полимер обеспечивает конденсаторам высокую электрическую проводимость и пониженное эквивалентное сопротивление (ESR). Номинальная емкость и ESR отличается в данном случае высокой стабильностью во всем рабочем диапазоне температур. А повышенная емкость при низком ESR идеальна для решения задач шумоподавления и ограничения токовых паразитных импульсов в широком частотном диапазоне.

Читать статью

Ничего мутного в АлгоритмБилдере я не увидел есть в нем и отладчик и симулятор! и писать одно удовольствие жаль только поддержки далее нет но кристалов там вполне хватает!

в отличии от обычного асемблера! очень легко разобратся в ранее написанном проекте если его открыл хоть через год! даже если размер кода 64к. да и скорость написания на порядок выыше!

Недавно задавал вопрос автору АВ о дальнейшей судьбе данной программы кому интересно ответ такой:

Некоторое время продукт находился в некоторой неопределенности,

поскольку дальнейшая поддержка AVR уже не имела смысла. В данное время

активно разрабатывается подобная среда для ARM Cotrex-M3. Для начала

это будет STM32. В качестве адаптера программирования и отладки -

OpenOCD.

С уважением, Геннадий Громов.

Так что все еще впереди!

Share this post


Link to post
Share on other sites

Хорошо, в программе реализовано следующее:

Используется ATtiny2313.

На входы компаратора подаётся входное напряжение и опорное напряжение.

Два вывода используются как дискретные входы для задания режимов подачей 0 или 1 с помощью перемычек.

Один вывод выход для управления светодиодом, включение нулём.

Алгоритм работы:

Если вх.напряжение превышает опорное, то ничего не делаем.

Если входное напряжение ниже опорного, то начинаем отсчитывать 1 минуту.

Если в процессе отсчёта ситуация изменилась(напряжение стало выше опорного), то отсчитанное время начинаем считать в обратную сторону, но только до нуля.

Если досчитали до 1-й минуты, то начинаем мигать светодиодом 2 раза в секунду.

Если после этого напряжение станет выше опорного, то мигать не прекращаем, а просто ведём отсчёт в обратную сторону и прекращаем мигать только после достижения нуля.

То есть направление отсчёта времени зависит от состояния компаратора, а переключения мигает/немигает осуществляется в крайних положениях.

состояния перемычек

1, 1 выдержка 1 минута

1,0 выдержка 30 секунд

0,х выдержки нет, реакция мгновенная.

Ну раз пошла такая пьянка, вставлю и я свои пять копеек. Лично я против си и асемблера ничего плохого не имею и вообще считаю глупо спорить какой язык лучше. Каждый язык по своему интересен. Я например пишу на бэйсике(Bascom-AVR)и пока доволен, иногда поверхностно касаюсь си и асемблера, но считаю что без знания архетектуры контроллера ничего хорошего не получиться. Кто считает что Bascom для начинающих, несоглашусь, в нём можно писать и серьёзные проекты. Недавно занимался проектом в котором победила дружба, в устройстве было три микроконтроллера, две штуки Attiny2313A в одной программа была написана на асемблере, в другой на си, а третий Atmtga8A программа написана в Bascome, причём Atmtga8A общается с одой Attiny2313A по USART и всё прекрасно работает.Bascom к тому же позволяет и асемблеровские вставки писать. Вообще есть большое желание изучить и си и асемблер, но как обычно не хватает времени, а для этого как известно времени нужно много.

Ну и в заключении, вот набросал програмку к вашей задачи. В пол часа конечно не уложился, вместе со схемкой гдето часа 1,5 ушло. В протеусе работает как часы.

Единственное отступление, что светодиод включается не нулём, а еденицей. Ну не привык я так светодиоды подключать.

$regfile = "attiny2313.dat"
$crystal = 8000000

Ddrb.7 = 1
Ddrd.5 = 0
Ddrd.6 = 0

Dim A As Bit
Dim Puls As Bit
Dim Tim As Byte
Dim Time_sec As Byte

Config Timer1 = Timer , Prescale = 256
Stop Timer1

Do

If Pind.5 = 0 Then
Tim = 0
Else
 If Pind.6 = 0 Then Tim = 30
 If Pind.6 = 1 Then Tim = 60
End If

If Acsr.5 = 1 Then Start Timer1

If Tim = 0 Then
 If Acsr.5 = 0 Then
   Portb.7 = 0
     Else
      Portb.7 = Puls
 End If
End If

If Timer1 > 15624 Then Puls = 1

If Timer1 > 31249 Then
 Timer1 = 0
 Puls = 0
 If Acsr.5 = 1 Then Incr Time_sec
 If Acsr.5 = 0 Then Decr Time_sec
End If

If Time_sec >= Tim Then
 Time_sec = Tim
 If Tim <> 0 Then A = 1
   Else
     If Time_sec = 0 Then
       Stop Timer1
       A = 0
       Portb.7 = 0
     End If
End If

If A = 1 Then Portb.7 = Puls

Loop

End

post-158878-0-34526500-1337238765_thumb.jpg

Share this post


Link to post
Share on other sites
                     

STM32G0 - средства противодействия угрозам безопасности

Результатом выполнения требований безопасности всегда является усложнение разрабатываемой системы. Особенно чувствительными эти расходы стали теперь, в процессе массового внедрения IoT. Обладая мощным набором инструментов информационной безопасности, микроконтроллеры STM32G0 производства STMicroelectronics, объединив в себе невысокую цену, энергоэффективность и расширенный арсенал встроенных аппаратных инструментов, способны обеспечить полную безопасность разрабатываемого устройства.

Подробнее...

А этот компилятор с Бейсика бесплатный? Интересно заиметь такой. Иногда попадаются интересные исходники которые хочется поправить под свои нужды. Если не сложно, напишите в личку.

Share this post


Link to post
Share on other sites

Только начинаю изучать микроконтроллеры. Знаю только бейсик. Было уже расстроился что никто не пишет на бейсике, а оказывается, что пишут. А хватит ли мне бейсика на первых порах?

Share this post


Link to post
Share on other sites

Не знаю насколько бейсик продвинулся, вообще мне си больше понравился, хоть и с бейсиком знаком немного.

Share this post


Link to post
Share on other sites

Забыли ардуино и бейсик добавить в голосование.

Зачем тут ардуино? это железяка, ей пофиг, на чём писать прогу. Хоть на платформе .NET и C# :crazy: ...

Edited by hd44780

Share this post


Link to post
Share on other sites

насколько я понял -ардуино это целый проект,включая и программное обеспечение.в том числе и подобие языка, поэтому и назвал.

честно не в курсе,может и не в тему.

видел исходники для ардуино.ничего знакомого не нашел :rolleyes:

Share this post


Link to post
Share on other sites

насколько я понял -ардуино это целый проект,включая и..

Это проект-диагноз... :D

Share this post


Link to post
Share on other sites

Си подобный язык содержащийся в родной оболочке для Arduino имеет отличия от стандартного Си. И несколько похож на С++ или Java.

Однако я не стал бы позиционировать его как некий самостоятельный язык.Потому, что нет большой концептуальной разницы между ним и С++.

Share this post


Link to post
Share on other sites
Guest

Только начинаю изучать микроконтроллеры. Знаю только бейсик. Было уже расстроился что никто не пишет на бейсике, а оказывается, что пишут. А хватит ли мне бейсика на первых порах?

Бейсик - это язык

но всё зависит от компилятора языка

Пишу на двух "бейсиках" - Bascom и FastAVR (второй круче, но не поддерживается)

мне хватает

Share this post


Link to post
Share on other sites

нужно написать простую программу, желательно на bascom

суть в следующем.

к мк подключается микрофон и датчик света, фоторезистор к примеру.

если хлопнуть ладонью то нагрузка включается на скакжем 15 сек и затем отключается.

фотодатчик не дает нагрузке включаться при свете, т.е. схема будет работать только в темноте.

кто поможет ? если кто напишет всю программу, могу отблагодарить вебмани)

Share this post


Link to post
Share on other sites

нужно написать простую программу, желательно на bascom ...

...могу отблагодарить вебмани)...

Могу на Си написать с комментариями для начинающих.

Только сначала схему покажите.

Share this post


Link to post
Share on other sites

желательно на баскоме, чтобы затем без проблем можно было бы ввести корректировки...

ну, схему думаю сможете представить

сигнал с микрофона усиливается с помощью например двух трех транзисторов или ОУ (не суть важно) и выход с него подается на порт мк, на другом порту сидит фоторезистор, который блокирует включение реле при дневном свете (если в помещении шумно)

и нужен порт, на который через транзистор будет цеплятся релюшка (которая будет срабатывать и удерживаться определенное количество времени, время задаем в программе, выводить переключатели не нужно) релюшка срабатывает только в том случае если в помещении шумно и только если темно.

я сам примерно представляю программу, даже пытался ее написать, но опыта мало...

Edited by Адвансед

Share this post


Link to post
Share on other sites

А зачем для этого контроллер? Все делается на логике, причем если с ходу не ошибаюсь одного корпуса 561ЛА7 хватит.

Share this post


Link to post
Share on other sites

у меня такая же мысль промелькнула.зачем контроллер?просто фоторезистор блокирует через логику вход с микрофона.

соответственно микрофон и фоторезистор имеют свои пороги срабатывания .все просто.

там уже конкретно можно подумать что как сделать.

Share this post


Link to post
Share on other sites

и 15 минут обеспечивать на логике... это как минимум нужен триггер шмидта а не любой рядовой логический элемент. И очень хороший конденсатор, с маленьким током утечки. Емкость времязадающего конденстаора надо подбирать, рассчитать будет нереально. Плату экранировать от пыли и влаги, иначе будут действовать на работоспособность схемы. Схема же на микроконтроллере настройки не требует. Сопротивление фоторезистора при нужной яркости можно измерить один раз, дальше все довольно легко рассчитывается и вносятся константы в программу раз и навсегда и работает независимо от погоды.

Share this post


Link to post
Share on other sites
ардуино это целый проект,включая и программное обеспечение.в том числе и подобие языка
дык это и есть С++, компилируется avr-gcc.

Не пойму зачем было лепить свой велосипед - берите AVR-GCC, Eclipse, пишите библиотеки на стандартном С/С++. Нет, обязательно нужно вы"бнуться и писать свое, ни счем не совместимое, с убогим редактором и уродскими либами...

Edited by qwer

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Вячеслав_НС
      Здравствуйте ! подскажите , какую лучше библиотеку использовать (и где ее взять) для управления i2c atmega8 в atmel studio 7  .  задача - управлять atmega8 по i2c ,  цап  PCF8591T .
      понимаю , в интернете много примеров и библиотек , но хотелось бы пример максимально простой и точно рабочий . т.к. пока что все мои попытки не привели к успеху ... то Atmel Studio 7 при компиляции ругается на несуществующий файл ( к примеру - "stream.h") при использовании библиотеки i2c , то еще какие то грабли .
    • By Антон Плюшкин
      В общем есть небольшая тривиальная задача - сделать свитюльку. Контроллер управляет светодиодиками, цвета меняются, людишки довольны.
      Схема проста: Attiny44a -> 2n3904 x3 -> RGB-светодиод.
      Собрал, протестил, всё норм, но!
      Как только в коде я использую функцию задержки - _delay_ms (util/delay.h) - контроллер повисает!
      #define F_CPU 16000000UL #include <avr/io.h> #include <util/delay.h> int main(void) { // Input/Output Ports initialization // Port A initialization // Function: Bit7=Out Bit6=Out Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In DDRA=(1<<DDA7) | (1<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0); // State: Bit7=0 Bit6=0 Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0); // Port B initialization // Function: Bit3=In Bit2=Out Bit1=In Bit0=In DDRB=(0<<DDB3) | (1<<DDB2) | (0<<DDB1) | (0<<DDB0); // State: Bit3=T Bit2=0 Bit1=T Bit0=T PORTB=(0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Phase correct PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Non-Inverted PWM // Timer Period: 0,031875 ms // Output Pulse(s): // OC0A Period: 0,031875 ms Width: 0 us // OC0B Period: 0,031875 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: 16000,000 kHz // Mode: Ph. correct PWM top=0x00FF // OC1A output: Non-Inverted PWM // OC1B output: Disconnected // Noise Canceler: Off // Input Capture on Falling Edge // Timer Period: 0,031875 ms // Output Pulse(s): // OC1A Period: 0,031875 ms Width: 0 us // Timer1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=(1<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (1<<WGM10); TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (1<<CS10); TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 0 Interrupt(s) initialization TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0); // Timer/Counter 1 Interrupt(s) initialization TIMSK1=(0<<ICIE1) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1); // External Interrupt(s) initialization // INT0: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-11: Off MCUCR=(0<<ISC01) | (0<<ISC00); GIMSK=(0<<INT0) | (0<<PCIE1) | (0<<PCIE0); // USI initialization // Mode: Disabled // Clock source: Register & Counter=no clk. // USI Counter Overflow Interrupt: Off USICR=(0<<USISIE) | (0<<USIOIE) | (0<<USIWM1) | (0<<USIWM0) | (0<<USICS1) | (0<<USICS0) | (0<<USICLK) | (0<<USITC); // Analog Comparator initialization // Analog Comparator: Off // The Analog Comparator's positive input is // connected to the AIN0 pin // The Analog Comparator's negative input is // connected to the AIN1 pin ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0); ADCSRB=(0<<ACME); // Digital input buffer on AIN0: On // Digital input buffer on AIN1: On DIDR0=(0<<ADC1D) | (0<<ADC2D); // ADC initialization // ADC disabled ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0); unsigned char VL_OCR0A = 0, VL_OCR0B = 0, VL_OCR1A = 0; OCR0A = 0; OCR0B = 0; OCR1A = 0; while(1) { _delay_ms( 100 ); VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } } Т.е. если указать задержку в начале цикла, то светодиод не светится вообще.
      Если задержку убрать - светодиод немного подсвечивает всеми цветами.
      while(1) { _delay_ms( 100 ); // <--- ЗАДЕРЖКА --- VL_OCR0A = VL_OCR0A + 1; VL_OCR0B = VL_OCR0B + 1; VL_OCR1A = VL_OCR1A + 1; if( VL_OCR0A >= 250 ){ VL_OCR0A = 0; } if( VL_OCR0B >= 250 ){ VL_OCR0B = 0; } if( VL_OCR1A >= 250 ){ VL_OCR1A = 0; } OCR0A = VL_OCR0A; OCR0B = VL_OCR0B; OCR1A = VL_OCR1A; } Где я накосячил?
      З.Ы.: Замечаний по поводу оптимизации кода, излишних переменных и п.р. прошу не писать - изощряюсь как могу ибо не пойму почему не работает
    • By LegionKC
      Добрый день.
      Экспериментирую с платой TP4056 и MK ATmega8, конкретнее - пытаюсь собрать простенькое зарядное устройство с выводом параметров при зарядке/разрядке на АЦП МК. Для измерения тока нашел ACS712. Думаю, что получится выводить ток при зарядке (т.е. когда идет питание на TP4056 и нагрузка отключена) и при разрядке (питание выключено, нагрузка подключена). Нагрузка - резистор. Возникла проблема с измерением напряжения на АКБ. Вернее, проблема с отсутствием идей как это сделать. Может какую-нибудь схему делителя напряжения нужно сделать? Прошу помочь советом. Схему из пэинта прилагаю.
      Спасибо.
       

    • By Cheshire Cat
      Здравствуйте, только начинаю изучать программирование мк. Я уже задавал этот вопрос в моих прошлых схемах мне отвечали что-то типа "любой стабилизрованый источник постоянного напряжения", или кидали схему такого источника. Можно назвать мне конкретное устройство? В общем то что я смогу забить в гугл и приписать купить. 

      Я уже больше двух месяцев жду пока мне придут с aliexpress детали для маленького лабараторного блока, но этот вариант может разбиться о кривизну моих рук.  Хочу просто купить такой источник и наконец заняться непосредственно МК. 
    • By Cheshire Cat
      Здравствуйте, только начал изучать программирование микроконтроллеров. В учебнике есть схема, но она не учитывает питание и землю. Скажите правильно ли я её дополнил.
      И еще дополнительный вопрос. Что можно использовать как источник постоянного питания на 5В? Из не дорогого и того, что можно купить в Казани. Знаю, что лучший вариант - лабораторный БП, но они дорогие.

  • Сообщения

    • Привет. Да, клиент)) То что дома завалялось.  Малая часть того что насобиралось за 12 лет ремонтов))
    • Я не сомневаюсь, тем более сами творец "своего счастья".  
    • @SymbiSoft А может лучше создать СВОЮ тему. Расположиться в важных темах хорошая идея, но вроде как тема чужая.  
    • Вы знаете, я сделал практическое заключение. Чем выше сопротивление наушников, тем более мягкий и сбалансированный звук. Но тут, другой нюанс, чтобы их раскачать до такой громкости как более низкоомные нужен более мощный выход. А вообще, в проф. линейке есть экземпляры 100 и даже 200 Омные. Цены на них конечно гораздо выше. А так, если учесть критерий цена-качество то предложенная выше модель где-то с 1984 года держит первенство популярности и до сих пор выпускается. За особо дешёвыми моделями не гонитель. Это выброшенные деньги. 
    • Но стабилитрон внешний ставь, всяко может быть
    • Все Решил попробовать перепроверить идею пережечь какую то хрень внутри мс. Эта мысль мной изложена была выше и тогда же писал что одна мс каким то образом заработала нормально. На регулируемом блоке питания выставил 13,8 вольт и ограничение 0,3 ампер. Прямо на плате блока питания (на котором присланные мс не запускались)  подавал кратковременно, буквально касанием щупа на 1-й вывод . На регулируемом блоке в этот момент включался режим ограничения тока. После 2-3 касаний ограничение тока прекращалось. Проверка осциллографом и светодиодной моргалкой показывала работоспособность мс. С некоторой опаской включил блок питания с "восстановленной" мс в сеть и ... блок работает, выходное напряжение есть. Таким образом "пережог" все полученные мс IR2153 и кроме 1 штуки заработали. В сетевом блоке мс проверил выборочно, работают. Некоторым мс понадобилось до 5-6 подключений внешнего напряжения. Сдохшая мс вот так долго не "пережигалась", пока не сдохла окончательно. Для информации - напряжение старт стоп не изменилось (с учетом разброса), внутренний стабилитрон похоже также не пострадал - примерно 15,5 вольт. Ток потребления также не изменился. Теперь мс у меня есть  
    • Вот то что мне нужно! Уважаемый @x-revers  не могли бы вы пояснить какие именно стоят у вас на схеме диоды и конденсаторы? И какую функцию они выполняют?
  • Покупай!

×
×
  • Create New...