Змінюй хід війни! Допомагай ЗСУ!
  • Знижка на баннерну рекламу 30%! Банер на всіх сторінках сайту, в мобільній та десктопній версії за 14 тис. грн на місяць. Статистика сайту. Контакт: [email protected]

Электрофлуд :)

  • Автор теми Автор теми RUH
  • Дата створення Дата створення
У космодромі пора вже кондери нормальні повісити, а то варяться там і дають не те, що треба. Вже 3 рази с початку літа.



***, скільки разів зарікався мати справу з тіньками. Так ні, знову, але кожен раз та сама ***ня - неправильно читаються, пишуться, не бачаться взагалі. А потім якось виліковуються. А потім знову задрачують.
Як же вони затрахали мене.
 
Останнє редагування:
***, скільки разів зарікався мати справу з тіньками. Так ні, знову, але кожен раз та сама ***ня - неправильно читаються, пишуться, не бачаться взагалі. А потім якось виліковуються. А потім знову задрачують.
Як же вони затрахали мене.

Может программатор поменять ? )
 
С 13-и были и у меня проблемы. Но то скорее из-за херового контакта. 26-я, 2313 никогда не подводили
 
Може і програматор, я хз. Але з мегами ніколи жодної проблеми не було, а тіньки мруть постійно. Жодного мого спілкування без проблем не пам'ятаю. Я зараз навіть дебажу програму для тіньки на мега8 - туди-сюди перевести код та дротиками поз'єднувати( маючи готову плату під тіньку:рл:) простіше, ніж 10 разів перепаювати мертві тіньки та їздити за ними у магаз.



А зараз я урочисто присягаю на вірність мегам та обіцяю слати *** будь-кого, хто запропонує мені попрацювати з тіні.
 
Останнє редагування:
Возьми AT90S2313 ;)
 
Не можу, сьогодні космодром не працює :D
 
А совсем мрут или не прошиваются в схеме?
Из-за низких требований к питанию бывает что уровни уплывают.
 
Подскажите плиз, где можно наиболее недорого купить в Харькове розетки/віключатели хорошего качества?
 
Фак, навіщо я цю ардуїну купив. Ще навіть поблимати світлодиодиком не встиг, а вже доля підігнала новий нереальний даугрейд.

Суть проблеми - треба видати на асинхронну шину інформацію, але на тому кінці висить набагато швидчий агрегат, а відповідно й таймінги у нього менші. Переналаштувати приймач неможливо, переробляти вже готовий пристрій не хочеться.
Загалом маю 10 тактів на біт. Формат - 2 одиниці-8 нулів / 8 одиниць-2 нулі. Хоча 3-7 напевно прокатить, як і незначне збільшення нуликів у кінці, навряд логіка приймача палить тривалість низького хвоста( ну я б не палив).

Передавати, слава Богу, небагато, тож у відсутності часу на будь-яку логіку я бачу це так:
-прочитати порт, де сидить нога шини.
-створити масив байтів розмірністю у кількість біт для передачі
-записати у кожен байт того масиву біт даних на місце відповідне піну шини
-копіювати дані з 0 регістру масиву у регістр порта аж до кінця реалізуючи таймінги не по часу, а по тактах

Ну і так як cvavr принаймі навіть без оптимізації PORT=*ptr робить чомусь явно не за один такт, то напевно прийдеться мені з асмом єбатись.
А це для мене біда - я ж з часів, коли він вже помер.

Пізніше хоч подивлюся асм, що компілятор генерить. Виявилось за останні кілька місяців після перевстановлення вінди я навіть авр дебагер не поставив ;)
 
Останнє редагування:
За один такт - то із регістра.
 
Ну і так як cvavr принаймі навіть без оптимізації PORT=*ptr робить чомусь явно не за один такт
А шо ты хотел? Указатель наверное лежит в регистровой паре типа R30-31. Надо положить туда адрес, потом через косвенную адресацию из ОЗУ вытащить в регистр байт, потом перегрузить в порт. За один такт даже на С51 не выйдет.

Пиши на Сях, но конкретно обмен можешь сделать в виде

void transmit_byte ( char data){
#asm
//Тут ****ячим на православном ассемблере
#endasm
};

Благо в хэлпе CVAVR отлично описано использование асма и механизм передачи/возврата данных при вызове асмовских функций. Я так бутлоадер писал, там без асма никак. Заебизь работает. Но подводные камни были, пришлось курить листинг сгенереный кодвижном.
 
Да звичайно ж так і робитиму - все ж готове, лише треба функцію видачі дати на шину написати.

Питання. А як воно повертає значення? Як грузить в регістри зі стеку бачу - а назад? Чи при виводі автоматом з якихось регістрів бере дату? ну тут я бачу 31, ну і 30 так як 2 байтовий інт.
Навіщо adc, якщо всеодно не палити перповнення?
int sum_abc(int a, int b, unsigned char c) {
#asm
ldd r30,y+3 ;R30=LSB a
ldd r31,y+4 ;R31=MSB a
ldd r26,y+1 ;R26=LSB b
ldd r27,y+2 ;R27=MSB b
add r30,r26 ;(R31,R30)=a+b
adc r31,r27
ld r26,y ;R26=c
clr r27 ;promote unsigned char c to int
add r30,r26 ;(R31,R30)=(R31,R30)+c
adc r31,r27
#endasm
}

Ох я і нубас:рл:
 
Останнє редагування:
Для тех кто не только в бронепоезде, но еще и на запасном пути :) :

The functions return their values in the registers (from LSB to MSB):
· R30 for char and unsigned char
· R30, R31 for int and unsigned int
· R30, R31, R22, R23 for long and unsigned long.

То есть если тебе надо вернуть назад char, пишешь
mov R30, че_тебе_там_надо_вернуть
и выходишь из функции.

Если данных вернуть нада много , пользуй директиву #regalloc. Можешь ею назначить физические регистры которым присваиваешь имена переменных, но то уже совсем накрайняк.



Навіщо adc, якщо всеодно не палити перповнення?
Почитай описание команд. Младшие регистры складываются командой ADD, в случае переполнения аппаратно взводится флаг переноса. Потом при сложении старших регистров, команда ADC складывает их с учетом флага переноса.
 
Останнє редагування:
Проблему вирішив - чесно зпиздив рішення.
Виявилось цей таск дуже затребуваний любителями поблимати чимось, а саме WS2812B, на простих аврках без кварців. По таймінгам акурат як у мене, тож навіть переробляти нічого не прийшлося. Передачу параметрів лише підправив бо gcc і cvavr їх, виявилось, по різному передають.
При чому реалізована повноцінна логіка - розбирає байти на біти та видає, а не як я збирався.

Ось така шняга на 1МГц, швидче міряти мій китайський аналізатор не вміє. На 8 буде акурат те, що мені треба.
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.



пс - а ще я зрозумів, що я не хочу досконально розбиратися як воно там працює. Я з СТМом вже не пам'ятаю коли опис регістрів периферії дивився, а тут така халепа.
 
Останнє редагування:
пицца, разливное темное и бредборд с кучкой механики, что ещё надо для счастья:D:пиво::клас::любов:
 
:рл: так чисто поржать
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.




коменты,кстати, добивают накал *****изма :D
 
Останнє редагування:
Требую продолжения багета... ну напишите хоть что-то, скууучно

кто угадает что это, тому, эээ, ничего не будет

P2130157.webp


своё что покажите



текучка, делаю сигнализацию протечки, на борде придумал штук 5 разных, от логического полевика и баззера, до логики.
В данный момент склепал 5 штук с "к элоизе", + ЗП-19, визжит шо ппц. Уши жалко, BT66, конечно, не может так громко как логика, но тоже гуд
Вот как то так.

1111.webp



2014-08-24_18-20-45_0006.webp


пока во такие заготовки, внутри CR1620, срок годности в автономе порядка 10 лет, визжит около 300 часов, хотя 500 если батарейки честные.
 
Останнє редагування:
Назад
Зверху Знизу