Помогите запихнуть скетч
- Войдите на сайт для отправки комментариев
Пт, 30/05/2014 - 01:46
void setup() { pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(16, OUTPUT); pinMode(13, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); Serial.begin(9600); } void loop() { unsigned short value,digit[3]; value=Serial.read(); digit[1]=value%10; digit[2]=value/10%10; digit[0]= value/10/10%10; for(unsigned short i=0;i<3;i++)clock_show_digit(digit[i], i); } void clock_all_off(void) { digitalWrite(11, LOW); digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(7, LOW); digitalWrite(16, LOW); digitalWrite(13, LOW); digitalWrite(2, LOW); digitalWrite(3, LOW); digitalWrite(4, LOW); digitalWrite(5, LOW); digitalWrite(6, LOW);} void clock_show_digit(unsigned short value,unsigned short i) { clock_all_off(); if (i==0)digitalWrite(9, HIGH); if (i==1){digitalWrite(10, HIGH); digitalWrite(7, HIGH);} if (i==2)digitalWrite(11, HIGH); if (value == 0 || value == 2 || value == 3 || value == 5 || value == 6 || value == 7 || value == 8 || value == 9) digitalWrite(16, HIGH); if (value == 1 || value == 2 || value == 3 || value == 4 || value == 7 || value == 8 || value == 9 || value == 0) digitalWrite(13, HIGH); if (value == 0 || value == 1 || value == 3 || value == 4 || value == 7 || value == 6 || value == 5 || value == 8 || value == 9) digitalWrite(2, HIGH); if (value == 2 || value == 3 || value == 5 || value == 6 || value == 0 || value == 8 || value == 9) digitalWrite(3, HIGH); if (value == 0 || value == 2 || value == 8 || value == 6) digitalWrite(4, HIGH); if (value == 0 || value == 4 || value == 5 || value == 6 || value == 8 || value == 9) digitalWrite(5, HIGH); if (value == 2 || value == 3 || value == 4 || value == 5 || value == 6 || value == 8 || value == 9) digitalWrite(6, HIGH); }
Собственно имеется attiny 2313
Читаем http://arduino.ru/Tutorial/Upravlenie_portami_cherez_registry и делаем...
Как раз с этим и не могу разобраться
ну зачем одну и туже тему 2 раза создавать
если в этой картинке соответствует вашему коду
https://lh4.googleusercontent.com/-v6ygYxQxYDc/TsjnkOjDh8I/AAAAAAAAAnc/0...
берите ее, а также пример как напрямую управлять портом. сначала порт надо настроить на выход, а потом уже управлять
http://arduino.ru/forum/programmirovanie/attiny13a-101-primenenie?page=6...
например 13 пин соответствует PORTB 4, или сокращенно PB4
настраиваем на выход
DDRB |= (1<<4); // DDRB потому что PORTB, для порта А было бы DDRA. сдвигаем 4 раза потому что у нас PB4
управляем пином
PORTB |= (1<<4); //так пишем на PB4 HIGH она же 1
PORTB &= ~(1<<4); //так пишем на PB4 LOW она же 0
кстати у вас ошибка в коде. вы 7 пин не указали на выход
Так ?
Схема :
На схеме подписаны порты относительно кода
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
pinMode(16, OUTPUT);
pinMode(13, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
http://avr-start.ru/?p=435
Всем спасибо ,скетч влез.
Теперь другая проблема я пишу в COM порт сегменты загораются на мгновение и гаснут , почему не горят ?