int main(void) { initial_p(); lcd_init(); lcd_pgm_print("NOKIA 5110 LCD"); lcd_scursor_xy(0, 1); lcd_pgm_print("1234567890-W*h"); while(1) { ON(LED); _delay_ms(1000); OFF(LED); _delay_ms(2000); } }
//------------------------------------------------------------------------------ // void gosFX::ParticleCloud::CreateNewParticle( unsigned index, Stuff::Point3D *translation ) { Check_Object(this); // //---------------------------------------------------- // Figure out the age and age rate of the new particle //---------------------------------------------------- // Specification *spec = GetSpecification(); Check_Object(spec); Particle *particle = GetParticle(index); Check_Object(particle); particle->m_age = 0.0f; Stuff::Scalar min_seed = spec->m_minimumChildSeed.ComputeValue(m_age, m_seed); Stuff::Scalar seed_range = spec->m_maximumChildSeed.ComputeValue(m_age, m_seed) - min_seed; Stuff::Scalar seed = Stuff::Random::GetFraction()*seed_range + min_seed; Clamp(seed, 0.0f, 1.0f); particle->m_seed = seed; Stuff::Scalar lifetime = spec->m_pLifeSpan.ComputeValue(m_age, seed); Min_Clamp(lifetime, 0.0333333f); particle->m_ageRate = 1.0f / lifetime; // //-------------------------------- // Figure out the initial position //-------------------------------- // Stuff::YawPitchRange initial_p( Stuff::Random::GetFraction() * Stuff::Two_Pi, Stuff::Random::GetFraction() * Stuff::Pi - Stuff::Pi_Over_2, Stuff::Random::GetFraction() ); Stuff::Vector3D position(initial_p); translation->x = position.x * spec->m_emitterSizeX.ComputeValue(m_age, seed); translation->y = position.y * spec->m_emitterSizeY.ComputeValue(m_age, seed); translation->z = position.z * spec->m_emitterSizeZ.ComputeValue(m_age, seed); // //-------------------------------- // Figure out the initial velocity //-------------------------------- // Stuff::Scalar pitch_min = spec->m_minimumDeviation.ComputeValue(m_age, seed); Stuff::Scalar pitch_range = spec->m_maximumDeviation.ComputeValue(m_age, seed) - pitch_min; if (pitch_range < 0.0f) pitch_range = 0.0f; pitch_min += pitch_range * Stuff::Random::GetFraction() - Stuff::Pi_Over_2; Stuff::YawPitchRange initial_v( Stuff::Random::GetFraction() * Stuff::Two_Pi, pitch_min, spec->m_startingSpeed.ComputeValue(m_age, seed) ); particle->m_localLinearVelocity = initial_v; }