Передавать нужно начиная с младшего бита. Регистры стоят 74HC595, судя по даташиту устанавливать данные, записывать в регистр и выводить информацию нужно по фронту если я правильно понял "LOW-to-HIGH transition". Вывод информации (третий вывод) нужно делать уже после записи всех битов тоесть в конце передачи.
Что ж вы ерундой маялись, сразу бы сказали, о чём речь. Я то подумал, что тут что-то не стандартное. Вопрос: как вы собирались запихать в бедный 8-битный регистр 32 бита? Функция для отправки на HC595 байта:
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
Никак не выходит загнать данные в четыре регистра hc595. Вот написал код для пробы и не выходит:
Код:
#include<mega16.h> #include<delay.h>
char hc595[8]={0,0,2,0,0,0,0,0}; // например нужно записать два в третий разряд
interrupt [TIM1_COMPA] voidtimer1_compa_isr(void) { // Place your code here char j,buf; signedchar i; for (i=7;i>=0;i--) {buf=hc595[i]; for (j=0;j<4;j++) {if(buf&0b00000001) PORTA.2=1; //проверяем флаг сдвига, если установлен, в DATA пишем 1 else PORTA.2=0; //иначе пишем 0 в DATA PORTA.1=1; //запись в регистр PORTA.1=0; buf=buf >> 1; // делаем логический сдвиг вправо } } PORTA.0=1; //строб PORTA.0=0; }
Вместо двойки в третем разряде записывается четвёрка в четвёртый разряд, если писать еденицу в третий разряд то пишется восемь в четвёртый разряд. Что я делаю не так?
С разрядами разобрался немножко не так разпаял нужно поменять местами 1-2, 3-4, 5-6, 7-8 потом исправлю, но цыфры, которые выводятся в разряды всёравно неправильные.
Вопрос снят. Исправил разряды а заодно и соединил так чтоб заганять начинать с старшего бита (благо выходы регистров на разёмах делал) подправил программу и всё заработало
Делаю проект считывание с датчика DS18B20 температуры микроконтроллером ATtiny2313 и вывод на LCD 16x2.
Вложение:
Комментарий к файлу: Схема в Proteus tiny2313 ds18b20.rar [14.8 KiB]
Скачиваний: 280
Код написал в CodeVisionAVR с помощью automatic program generator.
Вложение:
Комментарий к файлу: Программа в CodeVsion tiny2313.rar [72.74 KiB]
Скачиваний: 262
При компиляции выдает ошибку переполнения памяти контроллера.
Например, сдесь код писался в assembler AVR Studio http://radiokot.ru/circuit/digital/home/54/ так там и часы и календарь и термометр. Все влезло. А у меня даже температура не влазит.
собственно сам код... больше ничего все остальное CodeVisionAVR automatic program generator что получается свою программу вообще писать нельзя, что он сгенерировал то и оставлять
Скати, компилировал только генерированный код - пишет стек мал
Хочу к mega16 подключить ds1307 по I2C естественно. Как аппаратно управлять, может файл какой подключить короче с чего начать изучать I2C? Где можно примеры посмотреть с русскими коментами желательно?
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?! так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно. человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.
писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.
запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть
удачи, визардофилы и кодвижнолюбы
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Тут умные люди пишут, что генератором лучше не пользоваться. Надо свой код писать, а лучше в своей среде разработки, и компилировать своим компилятором. А CodeVisionAVR со своим генератором - кака. За что только деньги они берут, причем не малые.
ваша ирония понятна. она, видимо, зиждется на современной системе образования: я заплатил кому-то деньги, чтобы за меня сделали курсовик, сдали зачет/экзамен и т.д. - в итоге я "дипломированный специалист высокого класса" - но могу ли я сравниться по знаниям с теми, кто реально все это делал?! так и производители CVAVR - берут деньги, чтобы плодились лентяи и недоучки, ведь на них затем можно стричь купоны и дальше, пожизненно. человек, пробивающийся через тернии к знаниям, получает больше проблем, но и больше знаний. проблемы кончатся - а знания останутся.
писать программы и компилировать можно и в CVAVR - но от использования его Wizard-ов лучше отказаться по вышеназванным причинам. советы некоторых о том, что глядя на сгенерированный код можно чему-то научиться, я отметаю, как очередную блесну-замануху: ничему научиться нельзя, глядя на то, как этот самый "генератор" тупо обнуляет в начале main() все-все-все регистры и т.п., хотя после сброса МК все это уже 100% обнулено!!! научиться из этого можно только тупизне.
запомните одно: если кто-то впаривает вам что-то - это делается не от любви к вам, а исключительно из личной корысти. цепочка заинтересованности может быть длинной - но в ее истоке всегда корысть
удачи, визардофилы и кодвижнолюбы
согласен на 101% но в тоже время, не нужно заново придумывать велосипед.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения